GitChameleon: Entlarven der Versionswechsel-Fähigkeiten von Code-Generierungsmodellen
GitChameleon: Unmasking the Version-Switching Capabilities of Code Generation Models
November 5, 2024
Autoren: Nizar Islah, Justine Gehring, Diganta Misra, Eilif Muller, Irina Rish, Terry Yue Zhuo, Massimo Caccia
cs.AI
Zusammenfassung
Die rasante Entwicklung von Software-Bibliotheken stellt eine bedeutende Herausforderung für Code-Generierungsmodelle dar, die sich an häufige Versionsupdates anpassen müssen, während sie die Kompatibilität mit früheren Versionen aufrechterhalten. Bestehende Code-Vervollständigungs-Benchmarks übersehen oft diesen dynamischen Aspekt, und derjenige, der dies berücksichtigt, stützt sich auf statische Code-Vorhersageaufgaben ohne ausführungsbasierte Bewertung, was eine begrenzte Perspektive auf die praktische Verwendbarkeit eines Modells bietet. Um diese Lücke zu schließen, stellen wir \GitChameleon{} vor, einen neuartigen, manuell erstellten Datensatz, der 116 Python-Code-Vervollständigungsprobleme umfasst, die jeweils von spezifischen Bibliotheksversionen abhängig sind und von ausführbaren Unit-Tests begleitet werden. \GitChameleon{} ist darauf ausgelegt, die Fähigkeit moderner großer Sprachmodelle (LLMs) zu bewerten, versionsabhängigen Code zu generieren, der nicht nur syntaktisch korrekt, sondern auch funktional korrekt bei der Ausführung ist. Unsere umfassenden Bewertungen zeigen, dass führende LLMs Schwierigkeiten mit dieser Aufgabe haben; beispielsweise erreicht GPT-4o nur eine Passrate von 39,9\% (43,7\%, wenn Fehlerfeedback bereitgestellt wird), was die Komplexität des Problems und die Grenzen der aktuellen Modelle hervorhebt. Indem wir einen ausführungsbasierten Benchmark bereitstellen, der die dynamische Natur von Code-Bibliotheken betont, dient \GitChameleon{} als wichtiges Werkzeug zur Förderung der Entwicklung von anpassungsfähigeren und zuverlässigeren Code-Generierungsmodellen. Zur Erleichterung weiterer Erkundungen der versionsbedingten Code-Generierung stellen wir unser Code-Repository öffentlich zugänglich unter https://github.com/NizarIslah/GitChameleon zur Verfügung.
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