ChatPaper.aiChatPaper

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.
PDF222November 12, 2024