Entrenamiento Autosupervisado Iterativo para Generación de Código mediante Reordenación Reforzada
Iterative Self-Training for Code Generation via Reinforced Re-Ranking
April 13, 2025
Autores: Nikita Sorokin, Ivan Sedykh, Valentin Malykh
cs.AI
Resumen
Generar código de alta calidad que resuelva tareas de programación complejas es un desafío, especialmente con los modelos basados en decodificadores actuales que producen salidas altamente estocásticas. En la generación de código, incluso errores menores pueden romper fácilmente la solución completa. Aprovechar múltiples soluciones muestreadas puede mejorar significativamente la calidad general de la salida.
Una forma efectiva de mejorar la generación de código es combinar un modelo de generación de código con un modelo de reranking, que selecciona la mejor solución entre las muestras generadas. Proponemos un enfoque novedoso de autoentrenamiento iterativo para entrenar modelos de reranking utilizando Optimización de Política Proximal (PPO), con el objetivo de mejorar tanto la precisión del reranking como el proceso general de generación de código. A diferencia de los enfoques tradicionales de PPO, donde el enfoque está en optimizar un modelo generativo con un modelo de recompensa, nuestro método enfatiza el desarrollo de un modelo robusto de recompensa/reranking. Este modelo mejora la calidad del código generado mediante el reranking y aborda problemas y errores que el modelo de recompensa podría pasar por alto durante la alineación de PPO con el reranker. Nuestro método refina iterativamente el conjunto de entrenamiento reevaluando las salidas, identificando ejemplos negativos de alta puntuación e incorporándolos en el ciclo de entrenamiento, lo que impulsa el rendimiento del modelo.
Nuestra evaluación en el conjunto de datos MultiPL-E demuestra que nuestro modelo de 13.4 mil millones de parámetros supera en calidad de generación de código a un modelo de 33 mil millones, siendo tres veces más rápido. Además, logra un rendimiento comparable a GPT-4 y lo supera en un lenguaje de programación.
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