HumanEval Benchmark (PT)
HumanEval é um conjunto de dados de referência (benchmark) projetado para a avaliação objetiva da qualidade do código gerado por modelos de inteligência artificial com base em uma descrição textual da tarefa[1]. Foi apresentado em julho de 2021 por pesquisadores da OpenAI, liderados por Mark Chen, e tornou-se um dos padrões-chave para medir a correção funcional de programas gerados.
O desenvolvimento do HumanEval foi motivado pela necessidade de um método confiável para avaliar a geração de código. Anteriormente, a qualidade do código gerado por modelos de linguagem era frequentemente avaliada por métricas indiretas (como BLEU) ou manualmente, o que não garantia correspondência com a funcionalidade real dos programas. O HumanEval resolve esse problema focando na correção funcional: o código gerado é avaliado não por sua semelhança sintática com uma referência, mas por sua capacidade de passar com sucesso em um conjunto de testes unitários automatizados[1].
Estrutura do conjunto de tarefas
O benchmark consiste em 164 tarefas de programação, escritas manualmente especificamente para este conjunto de dados, a fim de garantir sua ausência nos conjuntos de treinamento dos modelos. Todas as tarefas são formuladas na linguagem Python e apresentadas como trechos de código com uma descrição[2].
Cada tarefa inclui:
- Cabeçalho da função: A assinatura da função com seu nome e parâmetros.
- Descrição textual: Uma docstring em inglês que descreve a funcionalidade necessária.
- Corpo da função: Um espaço em branco que o modelo deve preencher com o código gerado.
Para cada tarefa, também existem elementos ocultos do modelo:
- Solução canônica: A implementação correta (de referência) da função.
- Conjunto de testes unitários: Usado para verificar automaticamente a correção do código gerado. Os testes cobrem tanto casos básicos quanto casos extremos (edge cases).
As tarefas abrangem uma ampla variedade de tópicos: desde construções básicas de linguagem e algoritmos até matemática simples, o que torna o conjunto de dados diversificado e desafiador para os modelos.
Metodologia de avaliação de modelos
A principal métrica de sucesso no HumanEval é a pass@k, que mede a proporção de tarefas resolvidas funcionalmente de forma correta pelo modelo[1]. Uma solução é considerada bem-sucedida se o código gerado passar em todos os testes automatizados para a respectiva tarefa.
- pass@1: O indicador principal e mais frequentemente utilizado. Ele representa a porcentagem de tarefas resolvidas pelo modelo na primeira tentativa (ou seja, ao gerar uma única solução por tarefa).
- pass@k: Em geral, esta métrica indica a proporção de tarefas para as quais pelo menos uma das k soluções geradas pelo modelo passa em todos os testes. Por exemplo, pass@10 mostra qual a proporção de tarefas que o modelo consegue resolver se tiver até 10 tentativas para cada uma.
Como o cálculo direto de pass@k exige um grande número de amostras, os autores propuseram um método estatisticamente correto para calcular essa métrica, o que permite obter uma estimativa não enviesada[1].
Os testes práticos ocorrem em uma "sandbox" especial: o código gerado é compilado e executado em um conjunto de testes de verificação. Essa abordagem permite medir a capacidade do modelo de gerar código executável e correto, e não apenas sintaticamente semelhante à referência.
Resultados e impacto na indústria
Os experimentos iniciais com o HumanEval mostraram uma diferença significativa entre modelos de uso geral e modelos especificamente treinados em código.
- Em 2021, o modelo OpenAI Codex (12 bilhões de parâmetros, treinado em código do GitHub) conseguiu resolver ~28,8% das tarefas na primeira tentativa (pass@1).
- Ao mesmo tempo, o modelo de linguagem maior GPT-3 (175 bilhões de parâmetros), não treinado em código, não conseguiu resolver corretamente nenhuma tarefa[1].
Esses resultados destacaram a necessidade de treinamento especializado em dados de programação para uma geração de código bem-sucedida. Após o surgimento do HumanEval, o benchmark rapidamente se tornou um teste padrão para comparar o progresso de novos modelos.
- Os modelos da linha GPT-3.5 (início de 2023) alcançaram ~72% de pass@1.
- O modelo GPT-4 (2023) demonstrou resultados ainda mais altos, atingindo ~67% em sua versão base e ultrapassando 85% após ajustes adicionais[3].
- Modelos de código aberto, como Code Llama (Meta, 2023) e WizardCoder (2023), também apresentaram resultados elevados (~53% e ~57% de pass@1, respectivamente), superando os primeiros modelos proprietários[4].
Extensões e variações do benchmark
O sucesso do HumanEval inspirou a criação de várias versões derivadas, projetadas para avaliar modelos em condições mais amplas.
- CL-HumanEval (Cross-Lingual HumanEval): Uma variante multilíngue (2024) onde as tarefas do HumanEval original são adaptadas para testar a capacidade dos modelos de entender descrições em diferentes idiomas (além do inglês), gerando código em Python[5].
- Multilingual HumanEval: Uma extensão (2023) focada na avaliação da geração de código em 12 linguagens de programação diferentes (incluindo Java, C#, JavaScript, etc.) com base em descrições em inglês[6].
- HumanEval-XL: Um benchmark em grande escala (2024) que combina ambas as abordagens. Ele contém tarefas em 12 linguagens de programação e traduções das descrições textuais para 23 idiomas, incluindo russo, chinês, árabe, entre outros. No total, o HumanEval-XL possui mais de 22.000 pares de "descrição-código"[7].
Links
Literatura
- Liang, P. et al. (2022). Holistic Evaluation of Language Models (HELM). arXiv:2211.09110.
- Chang, Y. et al. (2023). A Survey on Evaluation of Large Language Models. arXiv:2307.03109.
- Ni, S. et al. (2025). A Survey on Large Language Model Benchmarks. arXiv:2508.15361.
- Biderman, S. et al. (2024). The Language Model Evaluation Harness (lm-eval): Guidance and Lessons Learned. arXiv:2405.14782.
- Kiela, D. et al. (2021). Dynabench: Rethinking Benchmarking in NLP. arXiv:2104.14337.
- Ma, Z. et al. (2021). Dynaboard: An Evaluation‑As‑A‑Service Platform for Holistic Next‑Generation Benchmarking. arXiv:2106.06052.
- Goel, K. et al. (2021). Robustness Gym: Unifying the NLP Evaluation Landscape. arXiv:2101.04840.
- Xu, C. et al. (2024). Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244.
- Liu, S. et al. (2025). A Comprehensive Survey on Safety Evaluation of LLMs. arXiv:2506.11094.
- Chiang, W.-L. et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132.
- Boubdir, M. et al. (2023). Elo Uncovered: Robustness and Best Practices in Language Model Evaluation. arXiv:2311.17295.
- Huang, L. et al. (2023). A Survey on Hallucination in Large Language Models. arXiv:2311.05232.
Notas
- ↑ 1.0 1.1 1.2 1.3 1.4 Chen, M. et al. “Evaluating Large Language Models Trained on Code”. arXiv:2107.03374, 2021. [1]
- ↑ “openai/openai_humaneval”. Hugging Face Datasets. [2]
- ↑ Niu, C. et al. “On Evaluating the Efficiency of Source Code Generated by LLMs”. Proceedings of the 2nd International Conference on AI-generated Content, 2024. [3]
- ↑ Lutfullaev, J. “HumanEval on LLMs Revisited in Late 2023”. arXiv:2402.14852, 2023. [4]
- ↑ Sato, M. et al. “CL-HumanEval: A Benchmark for Evaluating Cross-Lingual Transfer through Code Generation”. Proceedings of the 38th Pacific Asia Conference on Language, Information and Computation, 2024. [5]
- ↑ Athiwaratkun, B. et al. “Multilingual HumanEval: A Multilingual Code Generation Benchmark”. arXiv:2307.11892, 2023. [6]
- ↑ Liu, J. et al. “HumanEval-XL: A Multilingual Code Generation Benchmark for Cross-lingual Natural Language Generalization”. LREC-COLING 2024. [7]