ChatPaper.aiChatPaper

ReCode: Atualizando o Conhecimento de APIs de Código com Aprendizado por Reforço

ReCode: Updating Code API Knowledge with Reinforcement Learning

June 25, 2025
Autores: Haoze Wu, Yunzhi Yao, Wenhao Yu, Huajun Chen, Ningyu Zhang
cs.AI

Resumo

Os Modelos de Linguagem de Grande Escala (LLMs) exibem capacidades impressionantes de geração de código, mas enfrentam dificuldades ao se adaptar a atualizações frequentes em APIs de bibliotecas externas. Essa limitação crítica, decorrente da dependência de conhecimentos desatualizados de APIs presentes em seus dados de treinamento, mesmo com acesso à documentação atual, prejudica a geração confiável de código em ambientes dinâmicos. Para abordar esse problema, propomos o ReCode (Reinforcement Learning Baseado em Regras para Atualização de Código), uma estrutura inovadora que imita a adaptação de programadores humanos a mudanças em APIs. Especificamente, construímos um conjunto de dados com aproximadamente 2.000 entradas para treinar os LLMs a realizar migrações de versão com base em informações atualizadas. Em seguida, introduzimos uma métrica de similaridade de strings modificada para avaliação de código como recompensa para o aprendizado por reforço. Nossos experimentos demonstram que o ReCode melhora substancialmente o desempenho de geração de código dos LLMs em cenários de APIs dinâmicas, especialmente na tarefa inédita CodeUpdateArena. Crucialmente, em comparação com o ajuste fino supervisionado, o ReCode tem menos impacto nas habilidades gerais de geração de código dos LLMs. Aplicamos o ReCode em vários LLMs e algoritmos de aprendizado por reforço (GRPO e DAPO), todos alcançando melhorias consistentes. Notavelmente, após o treinamento, o Qwen2.5-Coder-7B supera o modelo de 32B parâmetros ajustado para instruções de código e o modelo de raciocínio com a mesma arquitetura. O código está disponível em https://github.com/zjunlp/ReCode.
English
Large Language Models (LLMs) exhibit remarkable code generation capabilities but falter when adapting to frequent updates in external library APIs. This critical limitation, stemming from reliance on outdated API knowledge from their training data, even with access to current documentation, impedes reliable code generation in dynamic environments. To tackle this issue, we propose ReCode (rule-based Reinforcement learning for Code Update), a novel framework that mimics human programmer adaptation to API changes. Specifically, we construct a dataset of approximately 2,000 data entries to train the LLMs to perform version migration based on updated information. Then, we introduce a modified string similarity metric for code evaluation as the reward for reinforcement learning. Our experiments demonstrate that ReCode substantially boosts LLMs' code generation performance in dynamic API scenarios, especially on the unseen CodeUpdateArena task. Crucially, compared to supervised fine-tuning, ReCode has less impact on LLMs' general code generation abilities. We apply ReCode on various LLMs and reinforcement learning algorithms (GRPO and DAPO), all achieving consistent improvements. Notably, after training, Qwen2.5-Coder-7B outperforms that of the 32B parameter code instruction-tuned model and the reasoning model with the same architecture. Code is available at https://github.com/zjunlp/ReCode.
PDF81June 26, 2025