ReCode: Aggiornamento delle Conoscenze delle API di Codice con Apprendimento per Rinforzo
ReCode: Updating Code API Knowledge with Reinforcement Learning
June 25, 2025
Autori: Haoze Wu, Yunzhi Yao, Wenhao Yu, Huajun Chen, Ningyu Zhang
cs.AI
Abstract
I Large Language Model (LLM) dimostrano notevoli capacità di generazione di codice, ma incontrano difficoltà nell'adattarsi agli aggiornamenti frequenti delle API di librerie esterne. Questa limitazione critica, derivante dalla dipendenza da conoscenze obsolete delle API presenti nei loro dati di addestramento, persino con accesso alla documentazione corrente, ostacola la generazione affidabile di codice in ambienti dinamici. Per affrontare questo problema, proponiamo ReCode (Reinforcement learning basato su regole per l'Aggiornamento del Codice), un framework innovativo che imita l'adattamento dei programmatori umani ai cambiamenti delle API. Nello specifico, costruiamo un dataset di circa 2.000 voci per addestrare i LLM a eseguire la migrazione di versione basata su informazioni aggiornate. Successivamente, introduciamo una metrica modificata di similarità delle stringhe per la valutazione del codice come ricompensa per l'apprendimento per rinforzo. I nostri esperimenti dimostrano che ReCode migliora significativamente le prestazioni di generazione del codice dei LLM in scenari di API dinamiche, in particolare nel task non visto CodeUpdateArena. In modo cruciale, rispetto al fine-tuning supervisionato, ReCode ha un impatto minore sulle capacità generali di generazione del codice dei LLM. Applichiamo ReCode su vari LLM e algoritmi di apprendimento per rinforzo (GRPO e DAPO), ottenendo miglioramenti consistenti in tutti i casi. Degno di nota, dopo l'addestramento, Qwen2.5-Coder-7B supera il modello di codice con 32B parametri ottimizzato per istruzioni e il modello di ragionamento con la stessa architettura. Il codice è disponibile all'indirizzo 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.