Harness de Avaliação do Copilot: Avaliando a Programação de Software Orientada por LLM
Copilot Evaluation Harness: Evaluating LLM-Guided Software Programming
February 22, 2024
Autores: Anisha Agarwal, Aaron Chan, Shubham Chandel, Jinu Jang, Shaun Miller, Roshanak Zilouchian Moghaddam, Yevhen Mohylevskyy, Neel Sundaresan, Michele Tufano
cs.AI
Resumo
A integração de Modelos de Linguagem de Grande Escala (LLMs) em Ambientes de Desenvolvimento Integrado (IDEs) tornou-se um ponto central no desenvolvimento de software moderno. LLMs como o OpenAI GPT-3.5/4 e o Code Llama oferecem o potencial de aumentar significativamente a produtividade dos desenvolvedores ao atuarem como assistentes de programação inteligentes e baseados em chat. No entanto, utilizar LLMs de forma direta provavelmente não será ideal para qualquer cenário específico. Em vez disso, cada sistema exige que o LLM seja ajustado ao seu conjunto de heurísticas para garantir o melhor desempenho. Neste artigo, apresentamos o harness de avaliação Copilot: um conjunto de dados e ferramentas para avaliar interações em IDEs guiadas por LLMs, abrangendo diversos cenários e linguagens de programação. Propomos nossas métricas como uma avaliação mais robusta e rica em informações do que os sistemas de avaliação state of the art anteriores. Projetamos e calculamos métricas de sucesso tanto estáticas quanto baseadas em execução para cenários que englobam uma ampla gama de tarefas de desenvolvedores, incluindo geração de código a partir de linguagem natural (generate), geração de documentação a partir de código (doc), geração de casos de teste (test), correção de bugs (fix) e compreensão e resolução de consultas no espaço de trabalho (workspace). Essas métricas de sucesso são projetadas para avaliar o desempenho de LLMs dentro de um determinado IDE e seu respectivo espaço de parâmetros. Nossos aprendizados ao avaliar três LLMs comuns usando essas métricas podem informar o desenvolvimento e validação de cenários futuros em IDEs guiados por LLMs.
English
The integration of Large Language Models (LLMs) into Development Environments
(IDEs) has become a focal point in modern software development. LLMs such as
OpenAI GPT-3.5/4 and Code Llama offer the potential to significantly augment
developer productivity by serving as intelligent, chat-driven programming
assistants. However, utilizing LLMs out of the box is unlikely to be optimal
for any given scenario. Rather, each system requires the LLM to be honed to its
set of heuristics to ensure the best performance. In this paper, we introduce
the Copilot evaluation harness: a set of data and tools for evaluating
LLM-guided IDE interactions, covering various programming scenarios and
languages. We propose our metrics as a more robust and information-dense
evaluation than previous state of the art evaluation systems. We design and
compute both static and execution based success metrics for scenarios
encompassing a wide range of developer tasks, including code generation from
natural language (generate), documentation generation from code (doc), test
case generation (test), bug-fixing (fix), and workspace understanding and query
resolution (workspace). These success metrics are designed to evaluate the
performance of LLMs within a given IDE and its respective parameter space. Our
learnings from evaluating three common LLMs using these metrics can inform the
development and validation of future scenarios in LLM guided IDEs.