ACECODER: Dominando o Aprendizado por Reforço do Programador através da Síntese Automatizada de Casos de Teste
ACECODER: Acing Coder RL via Automated Test-Case Synthesis
February 3, 2025
Autores: Huaye Zeng, Dongfu Jiang, Haozhe Wang, Ping Nie, Xiaotong Chen, Wenhu Chen
cs.AI
Resumo
A maioria dos avanços nos modelos de codificadores recentes tem sido impulsionada pelo ajuste fino supervisionado (SFT), enquanto o potencial do aprendizado por reforço (RL) permanece amplamente inexplorado, principalmente devido à falta de dados/modelo de recompensa confiáveis no domínio do código. Neste artigo, abordamos esse desafio aproveitando a síntese automatizada em larga escala de casos de teste para aprimorar o treinamento do modelo de código. Especificamente, projetamos um pipeline que gera extensos pares (pergunta, casos de teste) a partir de dados de código existentes. Usando esses casos de teste, construímos pares de preferência com base nas taxas de aprovação em programas amostrados para treinar modelos de recompensa com perda de Bradley-Terry. Isso mostra uma melhoria média de 10 pontos para Llama-3.1-8B-Ins e 5 pontos para Qwen2.5-Coder-7B-Ins por meio da melhor seleção de 32, tornando o modelo 7B equivalente ao DeepSeek-V2.5 de 236B. Além disso, realizamos aprendizado por reforço com ambos os modelos de recompensa e recompensas de aprovação de casos de teste, resultando em melhorias consistentes em HumanEval, MBPP, BigCodeBench e LiveCodeBench (V4). Notavelmente, seguimos o treinamento no estilo R1 para começar diretamente do Qwen2.5-Coder-base e demonstramos que nosso treinamento de RL pode melhorar o modelo em HumanEval-plus em mais de 25\% e em MBPP-plus em 6\% em apenas 80 etapas de otimização. Acreditamos que nossos resultados destacam o enorme potencial do aprendizado por reforço em modelos de codificadores.
English
Most progress in recent coder models has been driven by supervised
fine-tuning (SFT), while the potential of reinforcement learning (RL) remains
largely unexplored, primarily due to the lack of reliable reward data/model in
the code domain. In this paper, we address this challenge by leveraging
automated large-scale test-case synthesis to enhance code model training.
Specifically, we design a pipeline that generates extensive (question,
test-cases) pairs from existing code data. Using these test cases, we construct
preference pairs based on pass rates over sampled programs to train reward
models with Bradley-Terry loss. It shows an average of 10-point improvement for
Llama-3.1-8B-Ins and 5-point improvement for Qwen2.5-Coder-7B-Ins through
best-of-32 sampling, making the 7B model on par with 236B DeepSeek-V2.5.
Furthermore, we conduct reinforcement learning with both reward models and
test-case pass rewards, leading to consistent improvements across HumanEval,
MBPP, BigCodeBench, and LiveCodeBench (V4). Notably, we follow the R1-style
training to start from Qwen2.5-Coder-base directly and show that our RL
training can improve model on HumanEval-plus by over 25\% and MBPP-plus by 6\%
for merely 80 optimization steps. We believe our results highlight the huge
potential of reinforcement learning in coder models.Summary
AI-Generated Summary