Итеративное самообучение для генерации кода с использованием усиленного переранжирования
Iterative Self-Training for Code Generation via Reinforced Re-Ranking
April 13, 2025
Авторы: Nikita Sorokin, Ivan Sedykh, Valentin Malykh
cs.AI
Аннотация
Генерация высококачественного кода, решающего сложные программные задачи, является сложной задачей, особенно с использованием современных декодерных моделей, которые производят высокостохастические выходные данные. В генерации кода даже незначительные ошибки могут легко нарушить работоспособность всего решения. Использование множества сэмплированных решений может значительно повысить общее качество выходных данных.
Одним из эффективных способов улучшения генерации кода является сочетание модели генерации кода с моделью ранжирования, которая выбирает лучшее решение из сгенерированных образцов. Мы предлагаем новый итеративный подход к самообучению моделей ранжирования с использованием оптимизации проксимальной политики (PPO), направленный на улучшение как точности ранжирования, так и всего процесса генерации кода. В отличие от традиционных подходов PPO, где основное внимание уделяется оптимизации генеративной модели с помощью модели вознаграждения, наш подход делает акцент на разработке устойчивой модели вознаграждения/ранжирования. Эта модель повышает качество генерируемого кода через ранжирование и устраняет проблемы и ошибки, которые модель вознаграждения может упустить в процессе согласования PPO с моделью ранжирования. Наш метод итеративно улучшает обучающий набор данных путем переоценки выходных данных, выявления высоко оцененных негативных примеров и их включения в обучающий цикл, что повышает производительность модели.
Наша оценка на наборе данных MultiPL-E демонстрирует, что наша модель с 13,4 миллиардами параметров превосходит модель с 33 миллиардами параметров по качеству генерации кода, при этом работая в три раза быстрее. Более того, она достигает производительности, сопоставимой с GPT-4, и превосходит её в одном из языков программирования.
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