ACECODER: Dominando Coder RL a través de la Síntesis Automatizada de Casos de Prueba
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
Resumen
La mayoría del progreso en los modelos de codificador recientes ha sido impulsado por el ajuste fino supervisado (SFT), mientras que el potencial del aprendizaje por refuerzo (RL) sigue siendo en gran medida inexplorado, principalmente debido a la falta de datos/modelo de recompensa confiable en el dominio del código. En este documento, abordamos este desafío aprovechando la síntesis automatizada de casos de prueba a gran escala para mejorar el entrenamiento del modelo de código. Específicamente, diseñamos un flujo de trabajo que genera extensas parejas (pregunta, casos de prueba) a partir de datos de código existentes. Utilizando estos casos de prueba, construimos parejas de preferencia basadas en las tasas de aprobación sobre programas muestreados para entrenar modelos de recompensa con pérdida de Bradley-Terry. Se muestra una mejora promedio de 10 puntos para Llama-3.1-8B-Ins y una mejora de 5 puntos para Qwen2.5-Coder-7B-Ins a través de la mejor de 32 muestreos, situando al modelo 7B al nivel de DeepSeek-V2.5 de 236B. Además, realizamos aprendizaje por refuerzo con ambos modelos de recompensa y recompensas de aprobación de casos de prueba, lo que conlleva mejoras consistentes en HumanEval, MBPP, BigCodeBench y LiveCodeBench (V4). Especialmente, seguimos el entrenamiento de estilo R1 para comenzar directamente desde Qwen2.5-Coder-base y demostramos que nuestro entrenamiento de RL puede mejorar el modelo en HumanEval-plus en más del 25\% y en MBPP-plus en un 6\% con tan solo 80 pasos de optimización. Creemos que nuestros resultados resaltan el enorme potencial del aprendizaje por refuerzo en los modelos de codificador.
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