ChatPaper.aiChatPaper

GitChameleon: Revelando as Capacidades de Troca de Versão dos Modelos de Geração de Código

GitChameleon: Unmasking the Version-Switching Capabilities of Code Generation Models

November 5, 2024
Autores: Nizar Islah, Justine Gehring, Diganta Misra, Eilif Muller, Irina Rish, Terry Yue Zhuo, Massimo Caccia
cs.AI

Resumo

A rápida evolução das bibliotecas de software apresenta um desafio significativo para os modelos de geração de código, os quais precisam se adaptar a atualizações frequentes de versões, ao mesmo tempo que mantêm a compatibilidade com versões anteriores. As referências existentes de conclusão de código frequentemente negligenciam esse aspecto dinâmico, e aquela que considera isso baseia-se em tarefas estáticas de previsão de código sem avaliação baseada em execução, oferecendo uma perspectiva limitada sobre a usabilidade prática de um modelo. Para abordar essa lacuna, introduzimos o \GitChameleon{}, um conjunto de dados inovador e manualmente elaborado, composto por 116 problemas de conclusão de código em Python, cada um condicionado a versões específicas de bibliotecas e acompanhado por testes de unidade executáveis. O \GitChameleon{} foi projetado para avaliar rigorosamente a capacidade dos modernos modelos de linguagem de grande escala (LLMs) de gerar código específico de versão que não apenas seja sintaticamente correto, mas também funcionalmente preciso após a execução. Nossas avaliações abrangentes revelam que os LLMs de ponta enfrentam dificuldades nessa tarefa; por exemplo, o GPT-4o alcança um pass@10 de apenas 39,9\% (43,7\% quando fornecido com feedback de erro), destacando a complexidade do problema e as limitações dos modelos atuais. Ao fornecer um referencial baseado em execução que enfatiza a natureza dinâmica das bibliotecas de código, o \GitChameleon{} serve como uma ferramenta crítica para avançar no desenvolvimento de modelos de geração de código mais adaptáveis e confiáveis. Para facilitar a exploração adicional da geração de código condicionada à versão, disponibilizamos nosso repositório de código publicamente em 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