HumanEval Benchmark (ES)
HumanEval es un conjunto de datos de referencia (benchmark), diseñado para la evaluación objetiva de la calidad del código generado por modelos de inteligencia artificial a partir de una descripción textual del problema[1]. Fue presentado en julio de 2021 por investigadores de OpenAI bajo la dirección de Mark Chen y se ha convertido en uno de los estándares clave para medir la corrección funcional de los programas generados.
El desarrollo de HumanEval surgió de la necesidad de un método fiable para evaluar la generación de código. Anteriormente, la calidad del código generado por modelos de lenguaje a menudo se evaluaba mediante métricas indirectas (por ejemplo, BLEU) o de forma manual, lo que no garantizaba que los programas funcionaran realmente. HumanEval resuelve este problema centrándose en la corrección funcional: el código generado no se evalúa por su similitud sintáctica con una referencia, sino por su capacidad para superar un conjunto de pruebas unitarias automatizadas[1].
Estructura del conjunto de tareas
El benchmark consta de 164 tareas de programación, escritas a mano específicamente para este conjunto de datos para garantizar que no estuvieran presentes en los conjuntos de datos de entrenamiento de los modelos. Todas las tareas están formuladas en Python y se presentan como fragmentos de código con descripciones[2].
Cada tarea incluye:
- Encabezado de la función: La firma de la función con su nombre y parámetros.
- Descripción textual: Un docstring en inglés que describe la funcionalidad requerida.
- Cuerpo de la función: Un espacio vacío que el modelo debe rellenar con el código generado.
Para cada tarea, también existen elementos ocultos para el modelo:
- Solución canónica: La implementación correcta (de referencia) de la función.
- Conjunto de pruebas unitarias: Se utiliza para verificar automáticamente la corrección del código generado. Las pruebas cubren tanto casos generales como casos límite.
Las tareas abarcan una amplia gama de temas: desde construcciones básicas del lenguaje y algoritmos hasta matemáticas simples, lo que hace que el conjunto sea diverso y desafiante para los modelos.
Metodología de evaluación de modelos
La métrica principal de éxito en HumanEval es pass@k, que mide la proporción de tareas que un modelo resuelve funcionalmente de manera correcta[1]. Se considera que una solución es exitosa si el código generado supera todas las pruebas automatizadas para esa tarea.
- pass@1: El indicador principal y más utilizado. Representa el porcentaje de tareas resueltas por el modelo en el primer intento (es decir, generando una única solución por tarea).
- pass@k: En el caso general, esta métrica indica la proporción de tareas para las cuales al menos una de las k soluciones generadas por el modelo supera todas las pruebas. Por ejemplo, pass@10 muestra qué proporción de tareas puede resolver el modelo si se le dan hasta 10 intentos para cada una.
Dado que el cálculo directo de pass@k requiere una gran cantidad de muestras, los autores propusieron un método estadísticamente correcto para calcular esta métrica, lo que permite obtener una estimación insesgada[1].
Las pruebas prácticas se realizan en un "sandbox" especial: el código generado se compila y se ejecuta con un conjunto de pruebas de verificación. Este enfoque permite medir la capacidad del modelo para generar código ejecutable y correcto, en lugar de simplemente código sintácticamente similar a una referencia.
Resultados e impacto en la industria
Los experimentos iniciales en HumanEval mostraron una brecha significativa entre los modelos de propósito general y los modelos entrenados específicamente en código.
- En 2021, el modelo Codex de OpenAI (12 mil millones de parámetros, entrenado con código de GitHub) logró resolver ~28,8% de las tareas en el primer intento (pass@1).
- Al mismo tiempo, el modelo de lenguaje más grande GPT-3 (175 mil millones de parámetros), no entrenado en código, no pudo resolver correctamente ninguna tarea[1].
Estos resultados subrayaron la necesidad de un entrenamiento especializado en datos de programación para una generación de código exitosa. Tras la introducción de HumanEval, el benchmark se convirtió rápidamente en una prueba estándar para comparar el progreso de nuevos modelos.
- Los modelos de la familia GPT-3.5 (principios de 2023) alcanzaron ~72% en pass@1.
- El modelo GPT-4 (2023) demostró resultados aún mejores, alcanzando ~67% en su versión base y superando el 85% después de ajustes adicionales[3].
- Modelos de código abierto como Code Llama (Meta, 2023) y WizardCoder (2023) también mostraron altos resultados (~53% y ~57% en pass@1 respectivamente), superando a los primeros modelos propietarios[4].
Extensiones y variantes del benchmark
El éxito de HumanEval inspiró la creación de varias versiones derivadas, diseñadas para evaluar modelos en condiciones más amplias.
- CL-HumanEval (Cross-Lingual HumanEval): Una variante translingüe (2024) donde las tareas del HumanEval original se adaptan para probar la capacidad de los modelos para comprender descripciones en diferentes idiomas (además del inglés), mientras generan código en Python[5].
- Multilingual HumanEval: Una extensión (2023) destinada a evaluar la generación de código en 12 lenguajes de programación diferentes (incluyendo Java, C#, JavaScript, etc.) a partir de descripciones en inglés[6].
- HumanEval-XL: Un benchmark a gran escala (2024) que combina ambos enfoques. Contiene tareas en 12 lenguajes de programación y traducciones de las descripciones textuales a 23 idiomas del mundo, incluyendo ruso, chino, árabe, etc. En total, HumanEval-XL cuenta con más de 22,000 pares de "descripción-código"[7].
Enlaces externos
Bibliografía
- 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.
Referencias
- ↑ 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]