IterPref: Apprendimento delle Preferenze Focalizzato per la Generazione di Codice tramite Debug Iterativo
IterPref: Focal Preference Learning for Code Generation via Iterative Debugging
March 4, 2025
Autori: Jie Wu, Haoling Li, Xin Zhang, Jianwen Luo, Yangyu Huang, Ruihang Chu, Yujiu Yang, Scarlett Li
cs.AI
Abstract
L'apprendimento delle preferenze potenzia i Code LLM oltre il fine-tuning supervisionato sfruttando confronti relativi sulla qualità. I metodi esistenti costruiscono coppie di preferenze dai candidati basandosi sul successo dei test case, trattando il campione con il tasso di passaggio più alto come positivo e quello più basso come negativo. Tuttavia, questo approccio non individua errori specifici nel codice, il che impedisce al modello di apprendere pattern più informativi per la correzione degli errori, poiché allineare il codice fallito nel suo insieme manca della granularità necessaria per catturare relazioni significative tra errori e risoluzioni. Per affrontare questi problemi, proponiamo IterPref, un nuovo framework di allineamento delle preferenze che imita il debug iterativo umano per affinare i Code LLM. IterPref individua esplicitamente le regioni di errore e allinea i token corrispondenti tramite un algoritmo DPO personalizzato. Per generare coppie informative, introduciamo il dataset CodeFlow, in cui i campioni vengono raffinati iterativamente fino al superamento dei test, con modifiche che catturano le correzioni degli errori. Esperimenti estesi dimostrano che una suite diversificata di Code LLM equipaggiati con IterPref ottiene significativi miglioramenti nelle prestazioni nella generazione di codice e migliora su compiti impegnativi come BigCodeBench. Un'analisi approfondita rivela che IterPref produce meno errori. Il nostro codice e i dati saranno resi pubblicamente disponibili.
English
Preference learning enhances Code LLMs beyond supervised fine-tuning by
leveraging relative quality comparisons. Existing methods construct preference
pairs from
candidates based on test case success, treating the higher pass rate sample
as positive and the lower as negative. However, this approach does not pinpoint
specific errors in the code, which prevents the model from learning more
informative error correction patterns, as aligning failing code as a whole
lacks the granularity needed to capture meaningful error-resolution
relationships. To address these issues, we propose IterPref, a new preference
alignment framework that mimics human iterative debugging to refine Code LLMs.
IterPref explicitly locates error regions and aligns the corresponding tokens
via a tailored DPO algorithm. To generate informative pairs, we introduce the
CodeFlow dataset, where samples are iteratively refined until passing tests,
with modifications capturing error corrections. Extensive experiments show that
a diverse suite of Code LLMs equipped with IterPref achieves significant
performance gains in code generation and improves on challenging tasks like
BigCodeBench. In-depth analysis reveals that IterPref yields fewer errors. Our
code and data will be made publicaly available.Summary
AI-Generated Summary