Benchmark · coding
HumanEval
HumanEval mide la capacidad de un modelo para escribir código Python correcto a partir de una descripción en lenguaje natural; se puntúa con pass@1, la proporción de problemas que resuelve al primer intento.
Leer más
- Ejemplo
- Un ítem típico ofrece la firma de una función y su docstring —por ejemplo, «devolver la lista de todos los números primos menores que n»— y el modelo debe completar el cuerpo de la función.
- Puntuación
- La métrica es pass@1: cada solución generada se ejecuta contra pruebas unitarias ocultas, y la puntuación es el porcentaje de los 164 problemas cuya solución pasa todas sus pruebas.
- Verificación
- Totalmente automática: una solución solo cuenta como correcta si pasa todas las pruebas unitarias ocultas de ese problema; sin juicio humano ni comparación exacta de cadenas.
- Por qué importa
- Fue uno de los primeros benchmarks de generación de código ampliamente usados y se convirtió en una referencia estándar de la habilidad de programar, aunque los mejores modelos ya puntúan tan alto que está prácticamente saturado y apenas los distingue.
Ejemplo resuelto
Tarea
Completa el cuerpo de esta función de Python para que pase las pruebas unitarias ocultas:
```python
from typing import List
def below_zero(operations: List[int]) -> bool:
"""You're given a list of deposit and withdrawal operations on a bank account starting at zero balance. Detect whether the balance ever drops below zero and return True at that point; otherwise return False.
>>> below_zero([1, 2, 3])
False
>>> below_zero([1, 2, -4, 5])
True
"""
```
Solución
from typing import List
def below_zero(operations: List[int]) -> bool:
balance = 0
for op in operations:
balance += op
if balance < 0:
return True
return False
Explicación
Se lleva un saldo acumulado, se suma cada operación en orden y se devuelve True en cuanto baja de cero; si el bucle termina, el saldo nunca fue negativo, así que se devuelve False. HumanEval califica añadiendo la finalización del modelo al prompt y ejecutándola contra pruebas unitarias ocultas (pass@k): el ítem cuenta como resuelto solo si pasan todos los assert.
| Fecha | Modelo | Puntuación | Fuente |
|---|---|---|---|
| 2026-07-16 | Granite 4.0 3B | 83.5% | IBM abre el código fuente de CodeAlchemy, un conjunto de datos sintético masivo de código de alta calidad |
| 2024-07-15 | Qwen2-72B | 64.6% | El informe técnico de Qwen2 presenta modelos densos y MoE de hasta 72B |
| 2024-07-15 | Qwen2-72B | 64.6% | El equipo de Qwen lanza la serie Qwen2 con modelos densos y MoE de 72B |
| 2024-06-20 | Claude 3.5 Sonnet | 92.0% | Anthropic lanza un apéndice de Claude 3.5 Sonnet con mejores benchmarks de codificación y visión |
| 2024-06-20 | Claude 3.5 Sonnet | 92.0% | Anthropic |
| 2024-05-13 | GPT-4o | 90.2% | OpenAI |
| 2024-03-28 | Grok-1.5 | 74.1% | xAI lanza Grok-1.5 con razonamiento mejorado y contexto de 128K |
| 2023-03-14 | GPT-4 | 67.0% | OpenAI |