Benchmark · coding

HumanEval+

saturated 2 resultados 2 modelos

HumanEval+ es una versión rigurosa y ampliada del benchmark de generación de código HumanEval de OpenAI: conserva los 164 problemas de programación en Python escritos a mano originales, pero añade aproximadamente 80x más casos de prueba (mediante el framework EvalPlus), y se puntúa con la métrica pass@k (normalmente pass@1).

Leer más
Ejemplo
Cada ítem da una firma de función en Python más un docstring en lenguaje natural — a menudo con un ejemplo de doctest — que describe el comportamiento deseado (por ejemplo, «devolver los elementos de la lista estrictamente mayores que un umbral, en orden»), y el modelo debe generar el cuerpo de la función que lo implementa.
Puntuación
La métrica es pass@k: para cada problema se muestrean n >= k completaciones, c pasan todas las pruebas, y el estimador insesgado pass@k = 1 - C(n-c, k) / C(n, k) se promedia sobre los 164 problemas (pass@1 es lo más reportado). Una completación cuenta solo si pasa todo el conjunto de pruebas ampliado, por lo que las puntuaciones en HumanEval+ son más bajas que en HumanEval original.
Verificación
Cada completación se ejecuta en un sandbox aislado contra el conjunto de pruebas ampliado con límites de tiempo y memoria, y se acepta solo si pasan todos los casos de prueba — las pruebas originales más las entradas generadas por EvalPlus. No hay crédito parcial: una sola prueba fallida o que exceda el tiempo hace fallar toda la muestra.
Por qué importa
Las pruebas originales de HumanEval son escasas, lo que permite que soluciones sutilmente incorrectas se cuelen e inflen las tasas de aprobación reportadas; las pruebas ~80x más densas de HumanEval+ exponen estos falsos positivos y reordenan los rankings de modelos, convirtiéndolo en una verificación de corrección estándar y más exigente para modelos de generación de código.
Ejemplo resuelto
Tarea
Un ítem representativo al estilo de HumanEval+ — una firma tipada en Python con un docstring y un doctest, donde el modelo debe completar el cuerpo de la función: ```python from typing import List def above_threshold(numbers: List[float], threshold: float) -> List[float]: """Return the numbers from the input list that are strictly greater than the given threshold, preserving their original order. >>> above_threshold([1.0, 5.5, 2.3, 8.0], 3.0) [5.5, 8.0] """ ```
Solución
```python
from typing import List

def above_threshold(numbers: List[float], threshold: float) -> List[float]:
    return [n for n in numbers if n > threshold]
```
Explicación
La comprensión de lista conserva exactamente los elementos estrictamente mayores que el umbral y preserva el orden de entrada, satisfaciendo la especificación y el doctest ([5.5, 8.0]). La corrección lo ejecuta contra todo el conjunto de HumanEval+ — muchos casos límite autogenerados como listas vacías, negativos y valores todos iguales — y otorga 1 solo si pasan todas las pruebas.
0 4.5 9 13.5 18 2026-06-27 2026-07-05 2026-07-13 iLLaDA-Instruct · 16.5 · 2026-06-27 Qwen3.5-4B · 13 · 2026-07-13
iLLaDA-Instruct Qwen3.5-4B
Cronología
Fecha Modelo Puntuación Fuente
2026-07-13 Qwen3.5-4B 13.0% Flint comprime las trazas de razonamiento para reducir el uso de tokens mientras mantiene la precisión
2026-06-27 iLLaDA-Instruct 16.5pts iLLaDA: Un modelo de lenguaje de difusión enmascarado de 8B con atención totalmente bidireccional