HumanEval es un punto de referencia destinado a evaluar las capacidades de generación de código de los modelos de lenguaje de gran tamaño (LLM). Fue desarrollado por OpenAI para evaluar las primeras versiones de los modelos de IA que impulsan Codex, el agente de ingeniería de software de la compañía.
El punto de referencia HumanEval está diseñado específicamente para código generado por Python. Va más allá de la sintaxis y valida que el código creado es preciso y funciona según lo previsto.
El marco del punto de referencia puede consultarse en el repositorio de GitHub de OpenAI HumanEval. HumanEval también tiene una tabla de clasificación que clasifica el rendimiento de diferentes modelos de generación de código, incluido el conjunto Claude, Kimi K2, Google Gemma y Gemini, GPT-5 y los antiguos GPT-4o y GPT-4, y la familia IBM® Granite, entre otros.
Obtenga conocimientos organizados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM.
El conjunto de datos HumanEval consta de 164 problemas de programación escritos a mano con sus correspondientes pruebas unitarias1. Estos problemas evalúan la capacidad de un modelo para comprender el lenguaje, manipular cadenas de caracteres, realizar búsquedas y ordenar datos. También evalúan las habilidades de resolución de problemas en términos de algoritmos matemáticos simples y complejos. Estas tareas de programación son similares a las preguntas algorítmicas, los ejercicios de codificación o los desafíos de diseño de sistemas que los desarrolladores de software resuelven durante las entrevistas técnicas.
Cada tarea de generación de código contiene los siguientes componentes:
La firma define el nombre y los parámetros de la función. A modo de ejemplo, esta es la firma de una función que calcula el producto de dos enteros:
Un docstring es una instrucción en lenguaje natural del comportamiento, objetivos, entradas y salidas esperadas de la función. Estos comentarios describen lo que hace una función, guiando el modelo al generar código Python.
Por ejemplo, la cadena de documentos de la función de multiplicación será:
Se trata de un segmento asignado al código que produce un modelo. Contiene la solución implementada al problema dada la firma de la función y la cadena de documentación.
Estos casos de prueba verifican la corrección funcional del código generado en diferentes escenarios. Cada prueba alimenta entradas específicas a la función y luego comprueba las salidas con los resultados previstos.
Aquí tiene algunos ejemplos de pruebas unitarias para la función de multiplicación:
Muchos puntos de referencia de LLM de código aplican metodologías utilizadas para la generación de texto, como métricas basadas en coincidencias que comparan muestras de código generadas con una solución de referencia. Pero las métricas basadas en coincidencias no suelen tener en cuenta las diversas formas en las que se puede resolver un problema, cualquiera de las cuales puede ser funcionalmente equivalente a la solución de referencia.
Por eso el punto de referencia de HumanEval se centró en la corrección funcional, que considera correcta una muestra de código generada si pasa un conjunto de pruebas unitarias. Este enfoque refleja cómo los desarrolladores evalúan el éxito de su código ejecutándolo a través de una serie de pruebas unitarias y asegurándose de que pasa cada una de ellas.
HumanEval mide la corrección funcional utilizando la métrica pass@k. Para cada problema, un modelo genera k muestras de código. Si alguna de esas muestras supera las pruebas unitarias, entonces el problema se considera correctamente resuelto. La métrica pass@k estima la probabilidad de que al menos una de las k muestras sea funcionalmente correcta.
HumanEval es solo uno de los muchos puntos de referencia para evaluar los LLM de código. Los equipos de desarrollo de software aún deben evaluar el código generado por LLM utilizando sus propias pruebas internas y combinar múltiples métricas para obtener una visión más completa del rendimiento del modelo. El enfoque con intervención humana sigue siendo fundamental para garantizar la precisión del código generado por la IA, afinar y mejorar los modelos de machine learning con el paso del tiempo.
Estas son algunas de las limitaciones del punto de referencia HumanEval:
Es posible que se hayan producido problemas de programación incluidos en el conjunto de datos durante el entrenamiento de modelos debido a su amplia disponibilidad. El número de problemas también es lo suficientemente reducido como para que los modelos de generación de código puedan quizás memorizarlos todos.
Las tareas de generación de código dentro de HumanEval suelen estar en el rango fácil o medio. Sin embargo, las tareas de programación en el mundo real tienden a ser más complejas, abarcando integraciones de API con múltiples sistemas, enormes bases de código y grandes conjuntos de datos.
El punto de referencia tampoco refleja el estado, a menudo enredado, de los entornos y flujos de trabajo de desarrollo de software del mundo real: casos de uso en evolución, casos de prueba incompletos, requisitos inconsistentes, código heredado o especificaciones vagas, por nombrar algunos.
La programación es mucho más que corrección funcional. Por ejemplo, HumanEval no tiene en cuenta la eficiencia. Esto significa que el código generado por LLM que es preciso y funciona como se espera podría no ser la solución más eficiente y optimizada en cuanto a rendimiento.
El punto de referencia tampoco tiene en cuenta las buenas prácticas de programación, como las convenciones de codificación, los estándares de estilo, la gestión de errores, la validación de entradas y la codificación segura.
HumanEval está diseñado específicamente para el lenguaje de programación Python de código abierto. El código fuente generado en otros lenguajes debe evaluarse utilizando otras referencias.
El punto de referencia tiene varias versiones diferentes que abordan algunas de sus limitaciones:
HumanEval+
HumanEval-V
HumanEval-X
HumanEvalNext
Cada problema de programación en HumanEval tiene un promedio de entre 7 y 8 pruebas unitarias1. HumanEval+ aumenta significativamente esa cobertura de pruebas a un promedio de 764 pruebas por problema para una evaluación más rigurosa2.
HumanEval-V se basa en su predecesor para crear una referencia para modelos de IA multimodal, específicamente modelos de lenguaje visual (VLM). Mide la capacidad de los VLM para comprender y razonar sobre tablas, diagramas y gráficos en contextos de programación, generando código basado en diagramas de flujo de algoritmos o transformaciones matriciales, por ejemplo.
HumanEval-X amplía el punto de referencia original para incluir los lenguajes de programación C++, Go, Java y JavaScript. Sus 820 tareas se pueden utilizar para evaluar las habilidades de generación y traducción de códigos.
HumanEvalNext mejora HumanEval. Aporta más contexto mediante anotaciones de tipo (sintaxis de programación para indicar los tipos de datos de los parámetros de las funciones y los valores de retorno), incorpora más casos extremos, introduce más pruebas unitarias y aumenta la dificultad de los problemas3.
Acelere la entrega de software con Bob, su socio de IA para un desarrollo seguro y consciente de la intención.
Optimice los esfuerzos de desarrollo de software con herramientas impulsadas por IA de confianza que minimizan el tiempo dedicado a escribir código, depurar, refactorizar código o completar código y dejar más espacio para la innovación.
Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.
1. Evaluating Large Language Models Trained on Code. arXiv. 14 de julio de 2021.
2. Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generation. arXiv. 30 de octubre de 2023.
3. Benchmarking AI Models in Software Engineering: A Review, Search Tool, and Unified Approach for Elevating Benchmark Quality. arXiv. 12 de diciembre de 2025.