HumanEval es un conjunto de problemas de programación en Python publicado por OpenAI junto con el artículo sobre el modelo Codex. Se convirtió en una de las referencias más citadas cuando alguien quiere comparar modelos de IA que escriben código.

Cómo funciona

Cada problema trae una función con nombre, firma y una descripción en texto, llamada docstring. El modelo recibe ese inicio y debe completar el cuerpo de la función.

Luego, el código generado se ejecuta contra pruebas unitarias ocultas. Si todas pasan, el problema cuenta como resuelto. Si alguna prueba falla, cuenta como error.

El resultado más común es el pass@1: la probabilidad de que el modelo acierte en el primer intento. También existe el pass@k, que permite k intentos y verifica si al menos uno pasa.

La ventaja de este método es que no depende de opinión. El código funciona o no funciona, y cualquier persona puede repetir la prueba.

Ejemplo práctico

Imagina un problema así: escribir una función que recibe una lista de números y dice si dos de ellos están más cerca que un límite dado.

Python
def has_close_elements(numbers, threshold):
    """Retorna True se existirem dois números a menos de threshold de distância."""

El modelo escribe el cuerpo. Las pruebas luego se ejecutan con listas diferentes, incluyendo casos límite como lista vacía. Si la respuesta funciona en todos, ese problema suma un punto.

Cuando ves a un modelo anunciado con un porcentaje en HumanEval, esto es lo que hay detrás: la fracción de problemas de este tipo que logró resolver.

Para qué sirve

HumanEval sirve para tener un número simple y repetible de la calidad de generación de código. Quien elige un modelo para un asistente de programación usa este tipo de puntuación como primer filtro.

También ayuda a equipos que entrenan o ajustan modelos a percibir si un cambio mejoró o empeoró la capacidad de programar.

Límites de HumanEval

Los problemas son pequeños, de una sola función, y el conjunto es público. Esto significa que un modelo puede haber visto ejemplos parecidos en el entrenamiento, lo que infla la puntuación.

El trabajo real de programación involucra varios archivos, bibliotecas y contexto de proyecto. Por eso HumanEval no sustituye pruebas en tu propio código.

Para tareas más cercanas al día a día, como corregir issues de repositorios reales, mira SWE-bench. Usa ambas puntuaciones juntas y, siempre que sea posible, haz tu propia prueba con un caso de tu proyecto.