GitChameleon: Svelare le Capacità di Cambio Versione dei Modelli di Generazione del Codice
GitChameleon: Unmasking the Version-Switching Capabilities of Code Generation Models
November 5, 2024
Autori: Nizar Islah, Justine Gehring, Diganta Misra, Eilif Muller, Irina Rish, Terry Yue Zhuo, Massimo Caccia
cs.AI
Abstract
La rapida evoluzione delle librerie software rappresenta una sfida significativa per i modelli di generazione di codice, che devono adattarsi a frequenti aggiornamenti delle versioni pur mantenendo la compatibilità con le versioni precedenti. I benchmark esistenti per il completamento del codice spesso trascurano questo aspetto dinamico, e quello che lo considera si basa su compiti statici di previsione del codice senza valutazione basata sull'esecuzione, offrendo una prospettiva limitata sull'usabilità pratica di un modello. Per affrontare questa lacuna, presentiamo \GitChameleon{}, un nuovo set di dati curato manualmente composto da 116 problemi di completamento del codice Python, ognuno condizionato a specifiche versioni di librerie e accompagnato da test di unità eseguibili. \GitChameleon{} è progettato per valutare rigorosamente la capacità dei moderni grandi modelli di linguaggio (LLM) di generare codice specifico della versione che non è solo corretto sintatticamente ma anche accurato funzionalmente all'esecuzione. Le nostre valutazioni complete rivelano che i LLM all'avanguardia faticano con questo compito; ad esempio, GPT-4o raggiunge un pass@10 di soli 39,9\% (43,7\% quando fornito con feedback sugli errori), evidenziando la complessità del problema e i limiti dei modelli attuali. Fornendo un benchmark basato sull'esecuzione che enfatizza la natura dinamica delle librerie di codice, \GitChameleon{} si configura come uno strumento critico per far avanzare lo sviluppo di modelli di generazione di codice più adattabili e affidabili. Per agevolare ulteriori esplorazioni sulla generazione di codice condizionata alla versione, rendiamo il nostro repository di codice pubblicamente accessibile su https://github.com/NizarIslah/GitChameleon.
English
The rapid evolution of software libraries presents a significant challenge
for code generation models, which must adapt to frequent version updates while
maintaining compatibility with previous versions. Existing code completion
benchmarks often overlook this dynamic aspect, and the one that does consider
it relies on static code prediction tasks without execution-based evaluation,
offering a limited perspective on a model's practical usability. To address
this gap, we introduce \GitChameleon{}, a novel, manually curated
dataset comprising 116 Python code completion problems, each conditioned on
specific library versions and accompanied by executable unit tests.
is designed to rigorously assess the ability of modern large
language models (LLMs) to generate version-specific code that is not only
syntactically correct but also functionally accurate upon execution. Our
comprehensive evaluations reveal that state-of-the-art LLMs struggle with this
task; for instance, GPT-4o achieves a pass@10 of only 39.9\% (43.7\%
when provided with error feedback), highlighting the complexity of the problem
and the limitations of current models. By providing an execution-based
benchmark that emphasizes the dynamic nature of code libraries,
serves as a critical tool to advance the development of more adaptable and
reliable code generation models. For facilitation for further exploration of
version-conditioned code generation, we make our code repository publicly
accessible at https://github.com/NizarIslah/GitChameleon.Summary
AI-Generated Summary