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.