ChatPaper.aiChatPaper

StepCoder: Verbeter Codegeneratie met Reinforcement Learning op basis van Compilerfeedback

StepCoder: Improve Code Generation with Reinforcement Learning from Compiler Feedback

February 2, 2024
Auteurs: Shihan Dou, Yan Liu, Haoxiang Jia, Limao Xiong, Enyu Zhou, Junjie Shan, Caishuang Huang, Wei Shen, Xiaoran Fan, Zhiheng Xi, Yuhao Zhou, Tao Ji, Rui Zheng, Qi Zhang, Xuanjing Huang, Tao Gui
cs.AI

Samenvatting

De vooruitgang van grote taalmodellen (LLMs) heeft het vakgebied van codegeneratie aanzienlijk vooruitgestuwd. Eerder werk integreerde reinforcement learning (RL) met compilerfeedback om de uitvoerruimte van LLMs te verkennen en zo de kwaliteit van codegeneratie te verbeteren. Echter, maakt de lange code die door LLMs wordt gegenereerd als reactie op complexe menselijke vereisten, RL-verkenning tot een uitdaging. Bovendien, aangezien de unittests de ingewikkelde code mogelijk niet dekken, is het optimaliseren van LLMs met behulp van deze niet-uitgevoerde codesegmenten niet effectief. Om deze uitdagingen aan te pakken, introduceren we StepCoder, een nieuw RL-framework voor codegeneratie, bestaande uit twee hoofdcomponenten: CCCS behandelt de verkenninguitdaging door de taak van het genereren van lange codereeksen op te splitsen in een Curriculum van Code Completion Subtaken, terwijl FGO het model alleen optimaliseert door de niet-uitgevoerde codesegmenten te maskeren om Fine-Grained Optimization te bieden. Daarnaast construeren we verder het APPS+-dataset voor RL-training, dat handmatig is geverifieerd om de juistheid van de unittests te waarborgen. Experimentele resultaten tonen aan dat onze methode het vermogen om de uitvoerruimte te verkennen verbetert en state-of-the-art benaderingen overtreft in de corresponderende benchmarks.
English
The advancement of large language models (LLMs) has significantly propelled the field of code generation. Previous work integrated reinforcement learning (RL) with compiler feedback for exploring the output space of LLMs to enhance code generation quality. However, the lengthy code generated by LLMs in response to complex human requirements makes RL exploration a challenge. Also, since the unit tests may not cover the complicated code, optimizing LLMs by using these unexecuted code snippets is ineffective. To tackle these challenges, we introduce StepCoder, a novel RL framework for code generation, consisting of two main components: CCCS addresses the exploration challenge by breaking the long sequences code generation task into a Curriculum of Code Completion Subtasks, while FGO only optimizes the model by masking the unexecuted code segments to provide Fine-Grained Optimization. In addition, we furthermore construct the APPS+ dataset for RL training, which is manually verified to ensure the correctness of unit tests. Experimental results show that our method improves the ability to explore the output space and outperforms state-of-the-art approaches in corresponding benchmarks.
PDF433December 15, 2024