GitChameleon: Раскрывая возможности переключения версий моделей генерации кода
GitChameleon: Unmasking the Version-Switching Capabilities of Code Generation Models
November 5, 2024
Авторы: Nizar Islah, Justine Gehring, Diganta Misra, Eilif Muller, Irina Rish, Terry Yue Zhuo, Massimo Caccia
cs.AI
Аннотация
Быстрое развитие библиотек программного обеспечения представляет существенное вызов для моделей генерации кода, которые должны адаптироваться к частым обновлениям версий, сохраняя при этом совместимость с предыдущими версиями. Существующие бенчмарки автодополнения кода часто не учитывают этот динамический аспект, и тот, который это учитывает, полагается на задачи статического предсказания кода без оценки на основе выполнения, что предлагает ограниченную перспективу на практическую применимость модели. Для заполнения этого пробела мы представляем \GitChameleon{}, новый, вручную составленный набор данных, включающий 116 задач автодополнения кода на Python, каждая из которых зависит от конкретных версий библиотек и сопровождается исполнимыми модульными тестами. \GitChameleon{} разработан для тщательной оценки способности современных больших моделей языка (LLM) генерировать версионно-специфичный код, который не только синтаксически правилен, но также функционально точен при выполнении. Наши всесторонние оценки показывают, что передовые LLM-модели борются с этой задачей; например, GPT-4o достигает pass@10 всего 39,9\% (43,7\% при предоставлении обратной связи об ошибке), подчеркивая сложность проблемы и ограничения текущих моделей. Предоставляя исполнимый бенчмарк, который акцентирует динамическую природу библиотек кода, \GitChameleon{} служит критическим инструментом для продвижения разработки более адаптивных и надежных моделей генерации кода. Для облегчения дальнейшего исследования генерации кода, зависящего от версии, мы делаем наш репозиторий кода общедоступным по адресу 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.