Auto-formation itérative pour la génération de code via un ré-ordonnancement renforcé
Iterative Self-Training for Code Generation via Reinforced Re-Ranking
April 13, 2025
Auteurs: Nikita Sorokin, Ivan Sedykh, Valentin Malykh
cs.AI
Résumé
Générer du code de haute qualité capable de résoudre des tâches de programmation complexes est un défi, en particulier avec les modèles basés sur des décodeurs actuels qui produisent des sorties fortement stochastiques. Dans la génération de code, même des erreurs mineures peuvent facilement compromettre l'ensemble de la solution. Exploiter plusieurs solutions échantillonnées peut considérablement améliorer la qualité globale de la sortie.
Une méthode efficace pour améliorer la génération de code consiste à associer un modèle de génération de code à un modèle de reranking, qui sélectionne la meilleure solution parmi les échantillons générés. Nous proposons une nouvelle approche d'auto-apprentissage itératif pour entraîner des modèles de reranking en utilisant l'Optimisation de Politique Proximale (PPO), visant à améliorer à la fois la précision du reranking et le processus global de génération de code. Contrairement aux approches traditionnelles de PPO, où l'accent est mis sur l'optimisation d'un modèle génératif avec un modèle de récompense, notre approche met l'accent sur le développement d'un modèle robuste de récompense/reranking. Ce modèle améliore la qualité du code généré grâce au reranking et traite les problèmes et erreurs que le modèle de récompense pourrait négliger lors de l'alignement PPO avec le reranker. Notre méthode affine itérativement l'ensemble de données d'entraînement en réévaluant les sorties, en identifiant des exemples négatifs à score élevé, et en les intégrant dans la boucle d'entraînement, ce qui améliore les performances du modèle.
Notre évaluation sur le jeu de données MultiPL-E démontre que notre modèle de 13,4 milliards de paramètres surpasse un modèle de 33 milliards en termes de qualité de génération de code tout en étant trois fois plus rapide. De plus, il atteint des performances comparables à GPT-4 et les dépasse dans un langage de programmation.
English
Generating high-quality code that solves complex programming tasks is
challenging, especially with current decoder-based models that produce highly
stochastic outputs. In code generation, even minor errors can easily break the
entire solution. Leveraging multiple sampled solutions can significantly
improve the overall output quality.
One effective way to enhance code generation is by pairing a code generation
model with a reranker model, which selects the best solution from the generated
samples. We propose a novel iterative self-training approach for self-training
reranker models using Proximal Policy Optimization (PPO), aimed at improving
both reranking accuracy and the overall code generation process. Unlike
traditional PPO approaches, where the focus is on optimizing a generative model
with a reward model, our approach emphasizes the development of a robust
reward/reranking model. This model improves the quality of generated code
through reranking and addresses problems and errors that the reward model might
overlook during PPO alignment with the reranker. Our method iteratively refines
the training dataset by re-evaluating outputs, identifying high-scoring
negative examples, and incorporating them into the training loop, that boosting
model performance.
Our evaluation on the MultiPL-E dataset demonstrates that our 13.4B parameter
model outperforms a 33B model in code generation quality while being three
times faster. Moreover, it achieves performance comparable to GPT-4 and
surpasses it in one programming language.Summary
AI-Generated Summary