DevEval: Um Benchmark de Geração de Código Anotado Manualmente Alinhado com Repositórios de Código do Mundo Real
DevEval: A Manually-Annotated Code Generation Benchmark Aligned with Real-World Code Repositories
May 30, 2024
Autores: Jia Li, Ge Li, Yunfei Zhao, Yongmin Li, Huanyu Liu, Hao Zhu, Lecheng Wang, Kaibo Liu, Zheng Fang, Lanshen Wang, Jiazheng Ding, Xuanming Zhang, Yuqi Zhu, Yihong Dong, Zhi Jin, Binhua Li, Fei Huang, Yongbin Li
cs.AI
Resumo
Como avaliar as habilidades de codificação de Modelos de Linguagem de Grande Escala (LLMs) continua sendo uma questão em aberto. Descobrimos que os benchmarks existentes estão mal alinhados com repositórios de código do mundo real e são insuficientes para avaliar as habilidades de codificação dos LLMs.
Para abordar essa lacuna de conhecimento, propomos um novo benchmark chamado DevEval, que apresenta três avanços. (1) O DevEval está alinhado com repositórios do mundo real em múltiplas dimensões, como distribuições de código e distribuições de dependências. (2) O DevEval é anotado por 13 desenvolvedores e contém anotações abrangentes (por exemplo, requisitos, repositórios originais, código de referência e dependências de referência). (3) O DevEval compreende 1.874 amostras de teste de 117 repositórios, cobrindo 10 domínios populares (por exemplo, Internet, Banco de Dados). Com base no DevEval, propomos a geração de código em nível de repositório e avaliamos 8 LLMs populares no DevEval (por exemplo, gpt-4, gpt-3.5, StarCoder 2, DeepSeek Coder, CodeLLaMa). Nossos experimentos revelam as habilidades de codificação desses LLMs em repositórios de código do mundo real. Por exemplo, em nossos experimentos, o maior Pass@1 do gpt-4-turbo foi de apenas 53,04%. Também analisamos os casos de falha dos LLMs e resumimos suas deficiências. Esperamos que o DevEval possa facilitar o desenvolvimento de LLMs em repositórios de código reais. O DevEval, os prompts e as previsões dos LLMs foram disponibilizados publicamente.
English
How to evaluate the coding abilities of Large Language Models (LLMs) remains
an open question. We find that existing benchmarks are poorly aligned with
real-world code repositories and are insufficient to evaluate the coding
abilities of LLMs.
To address the knowledge gap, we propose a new benchmark named DevEval, which
has three advances. (1) DevEval aligns with real-world repositories in multiple
dimensions, e.g., code distributions and dependency distributions. (2) DevEval
is annotated by 13 developers and contains comprehensive annotations (e.g.,
requirements, original repositories, reference code, and reference
dependencies). (3) DevEval comprises 1,874 testing samples from 117
repositories, covering 10 popular domains (e.g., Internet, Database). Based on
DevEval, we propose repository-level code generation and evaluate 8 popular
LLMs on DevEval (e.g., gpt-4, gpt-3.5, StarCoder 2, DeepSeek Coder, CodeLLaMa).
Our experiments reveal these LLMs' coding abilities in real-world code
repositories. For example, in our experiments, the highest Pass@1 of
gpt-4-turbo is only 53.04%. We also analyze LLMs' failed cases and summarize
their shortcomings. We hope DevEval can facilitate the development of LLMs in
real code repositories. DevEval, prompts, and LLMs' predictions have been
released.