ChatPaper.aiChatPaper

GitChameleon: Revelando las Capacidades de Cambio de Versión de los Modelos de Generación 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

Resumen

La rápida evolución de las bibliotecas de software presenta un desafío significativo para los modelos de generación de código, los cuales deben adaptarse a las actualizaciones frecuentes de versiones manteniendo la compatibilidad con versiones anteriores. Los benchmarks existentes de completado de código a menudo pasan por alto este aspecto dinámico, y aquellos que lo consideran se basan en tareas estáticas de predicción de código sin evaluación basada en la ejecución, ofreciendo una perspectiva limitada sobre la usabilidad práctica de un modelo. Para abordar esta brecha, presentamos \GitChameleon{}, un conjunto de datos novedoso y creado manualmente que consta de 116 problemas de completado de código en Python, cada uno condicionado a versiones específicas de bibliotecas y acompañado de pruebas unitarias ejecutables. Está diseñado para evaluar rigurosamente la capacidad de los modernos modelos de lenguaje de gran tamaño (LLMs) para generar código específico de versión que no solo sea sintácticamente correcto, sino también funcionalmente preciso al ejecutarse. Nuestras evaluaciones exhaustivas revelan que los LLMs de última generación tienen dificultades con esta tarea; por ejemplo, GPT-4o logra un pass@10 de solo el 39.9\% (43.7\% cuando se proporciona retroalimentación de errores), resaltando la complejidad del problema y las limitaciones de los modelos actuales. Al proporcionar un benchmark basado en la ejecución que enfatiza la naturaleza dinámica de las bibliotecas de código, \GitChameleon{} sirve como una herramienta crítica para avanzar en el desarrollo de modelos de generación de código más adaptables y confiables. Para facilitar una mayor exploración de la generación de código condicionada por versiones, ponemos nuestro repositorio de código públicamente accesible en 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