Benchmark · coding
MBPP
MBPP (Mostly Basic Python Problems) es un benchmark de generación de código formado por unas 1000 tareas de programación en Python de nivel inicial, descritas en inglés sencillo y acompañadas cada una de casos de prueba automáticos. Mide con qué frecuencia un modelo escribe una función correcta al primer intento, y se reporta con la métrica pass@1.
Leer más
- Ejemplo
- Un ítem típico pide al modelo escribir una pequeña función de Python a partir de una descripción de una línea —por ejemplo, «escribe una función que devuelva el n-ésimo número de Fibonacci» o «comprueba si una cadena es un palíndromo»— que luego se ejecuta contra unas pocas pruebas basadas en assert.
- Puntuación
- La métrica es pass@1: para cada tarea el modelo genera una solución, y la puntuación es la proporción de tareas cuyo código generado pasa todos los casos de prueba de esa tarea.
- Verificación
- La solución se acepta de forma automática: la función generada se ejecuta contra las pruebas unitarias basadas en assert de la tarea y solo cuenta como correcta si pasan todas (sin jueces humanos ni coincidencia exacta de texto).
- Por qué importa
- MBPP es una base de referencia veterana y fácil de ejecutar para la generación de código Python básico; como los modelos potentes de hoy puntúan cerca del techo, se considera saturado y sirve sobre todo como comprobación de cordura más que para distinguir los mejores sistemas.
Ejemplo resuelto
Tarea
Ítem al estilo MBPP: «Escribe una función en python para contar el número de vocales (a, e, i, o, u) en una cadena dada en minúsculas». Incluye tres pruebas assert ocultas, p. ej.
assert count_vowels('hello') == 2, assert count_vowels('world') == 1, assert count_vowels('rhythm') == 0; la función debe llamarse como esperan las pruebas.Solución
def count_vowels(s):
return sum(1 for ch in s if ch in 'aeiou')
Explicación
Al recorrer la cadena y contar los caracteres del conjunto de vocales 'aeiou' se obtiene 2, 1 y 0 para las tres entradas, así que todos los assert pasan. MBPP califica la solución como aprobada/reprobada ejecutando la función generada contra las tres pruebas assert incluidas (corrección funcional, pass@k).
| Fecha | Modelo | Puntuación | Fuente |
|---|---|---|---|
| 2026-07-16 | Granite 4.0 3B | 63.2% | IBM abre el código fuente de CodeAlchemy, un conjunto de datos sintético masivo de código de alta calidad |
| 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-29 | LLaDA-8B | 41.0% | Reflexiones sobre la programación: Aprender el orden del pensamiento en modelos de lenguaje de difusión |
| 2026-06-28 | LLaDA-8B | 41.0% | El Enrutamiento Consciente de Sí Mismo Aprende el Orden de Desenmascaramiento de Tokens en Modelos de Lenguaje de Difusión |
| 2024-12-17 | Falcon3-10B-Base | 73.8% | La familia Falcon3 lanza cinco modelos abiertos con mejores capacidades en ciencia, matemáticas y código |