StepCoder: Verbesserung der Code-Generierung durch Reinforcement Learning mit Compiler-Feedback

StepCoder: Improve Code Generation with Reinforcement Learning from Compiler Feedback

February 2, 2024
Autoren: 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

Zusammenfassung

Die Fortschritte bei großen Sprachmodellen (LLMs) haben das Feld der Codegenerierung erheblich vorangetrieben. Frühere Arbeiten integrierten Reinforcement Learning (RL) mit Compiler-Feedback, um den Ausgaberaum von LLMs zu erkunden und die Qualität der Codegenerierung zu verbessern. Allerdings stellt die lange Codegenerierung durch LLMs als Reaktion auf komplexe menschliche Anforderungen eine Herausforderung für die RL-Exploration dar. Da zudem die Unit-Tests den komplizierten Code möglicherweise nicht abdecken, ist die Optimierung von LLMs durch die Verwendung dieser nicht ausgeführten Code-Snippets ineffektiv. Um diese Herausforderungen zu bewältigen, stellen wir StepCoder vor, ein neuartiges RL-Framework für die Codegenerierung, das aus zwei Hauptkomponenten besteht: CCCS adressiert die Explorationsherausforderung, indem es die Aufgabe der langen Codegenerierung in einen Lehrplan von Code-Vervollständigungsunteraufgaben (Curriculum of Code Completion Subtasks) unterteilt, während FGO das Modell optimiert, indem es die nicht ausgeführten Code-Segmente maskiert, um eine fein abgestimmte Optimierung (Fine-Grained Optimization) zu ermöglichen. Darüber hinaus konstruieren wir den APPS+-Datensatz für das RL-Training, der manuell überprüft wurde, um die Korrektheit der Unit-Tests sicherzustellen. Experimentelle Ergebnisse zeigen, dass unsere Methode die Fähigkeit zur Erkundung des Ausgaberaums verbessert und state-of-the-art Ansätze in entsprechenden Benchmarks übertrifft.
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.

Summary

AI-Generated Summary

PDF443December 15, 2024