Jacob Lloyd — escrito con ayuda de IA, después del proyecto
Tiempo de lectura
21 min de lectura
En palabras simples: MakoBench es un marcador público para modelos de lenguaje. Todos los modelos responden a las mismas pruebas: el apartado de Código vale 10 puntos, el de Chat también 10, y el total es la suma de ambos. Existen conjuntos de bonificación más difíciles para aquellos modelos que obtengan un 90 % o más en alguna sección; estos pueden añadir puntos adicionales. Esta página muestra cada paso mediante un diagrama.
Una sola prueba compartida. Todos los modelos responden a los mismos casos de prueba estándar. El código vale 10 puntos y Chat también 10, por lo que el total es 20 en las pruebas estándar.
Se ejecuta el código; Chat es evaluado. Las respuestas del código se someten a pruebas ocultas. Un modelo juez califica a Chat y debe citar las evidencias que lo respaldan.
Toda puntuación tiene un margen de tolerancia. Los modelos cuyas puntuaciones están dentro del margen ± se consideran empatados, independientemente del orden.
Los conjuntos de bonificación superan los 10 puntos. Si se obtiene un 90% o más en una parte, se desbloquean sus conjuntos de pruebas más difíciles; cada uno de ellos vale hasta 1 punto adicional.
Nada otorga puntos por negarse a responder. Las pruebas miden lo que hace un modelo cuando se le pide algo.
El motor es de código abierto.CrucibleForge en GitHub ejecuta todo el sistema; usted también puede ejecutarlo.
Los ejemplos prácticos utilizan el conjunto de pruebas Suite 4.0, publicado el 7 de noviembre de 2026. La Suite 4.1 corrige las claves de respuesta y vuelve a puntuar a todos los modelos, aplicando las mismas reglas de puntuación y de conjuntos de bonificación; en qué cambió en la Suite 4.1 encontrará los detalles y las nuevas puntuaciones.
¿Qué es MakoBench?
Todos los modelos pasan por los mismos seis pasos.
MakoBench es un tablero público para modelos de lenguaje, tanto locales como alojados, todos evaluados de la misma manera. Mide dos capacidades: la habilidad para escribir código funcional y la capacidad para mantener conversaciones tipo role-play o de acompañamiento. En el enlace Qué prueba MakoBench y qué no se detalla todo su alcance.
Un caso real: Claude Sonnet 4.5 en el caso de uso de herramientas TZ19, suite 4.0.
Un caso representa una tarea específica: escribir una función, predecir la salida de un programa, interactuar con herramientas o participar en una sesión prolongada de role-play. Cada caso se califica por partes, como grupos de pruebas ocultas o los distintos pasos de una conversación; de este modo, una respuesta casi correcta también obtiene gran parte del crédito. Cada caso estándar se ejecuta una sola vez.
El juez debe mostrar sus pruebas. Un “SÍ” sin una cita real se considera “NO”.
El código nunca necesita emitir opiniones. El chat, en cambio, sí las requiere; por eso un modelo juez, que es otro modelo de lenguaje, responde con “SÍ” o “NO” a cada pregunta planteada sobre las respuestas del chat. En este caso se trata de Gemma 4 31B (versión “hereje” sin censura, Q8); el formato Q8 significa que los pesos del modelo están representados en 8 bits. Un “SÍ” solo cuenta si incluye una cita idéntica a la respuesta original, ya que los modelos jueces tienden a responder “SÍ” con demasiada facilidad. Antes de procesar cada lote de datos, el modelo juez debe identificar correctamente una respuesta válida y detectar otra inválida; de lo contrario, el lote se detiene.
Cuando una sola pregunta puede hacer que un caso sea rechazado, esta se plantea tres veces. Solo se aprueba si hay mayoría de respuestas “SÍ” verificadas; en caso de empate, se considera “NO”.
Cada barra representa una parte, proporcional a los puntos que corresponden.
Cada parte obtiene la cantidad de puntos que le corresponde: “Funciones”, que representa el 76%, equivale a 3.8 de los 5 puntos posibles. Todas las partes suman los valores correspondientes al Código y al Chat. La prueba específica para adultos cuenta con su propia sección y nunca se incluye en este total.
El margen ± indica cuánto depende el Total de los casos que forman parte del conjunto. La forma del histograma es meramente ilustrativa.
Un conjunto ligeramente distinto de casos produciría un Total algo diferente. El margen muestra cuánto varía ese valor. Dos modelos cuyas puntuaciones estén más cerca que sus respectivos márgenes se consideran estadísticamente empatados. El margen no tiene en cuenta las fluctuaciones entre ejecuciones, por lo que una diferencia de uno o dos puntos también debe considerarse un empate.
La categoría es un rango aproximado; si el margen de error cruza el límite entre categorías, significa que la clasificación es incierta. Los valores provienen de la tabla de resultados de CrucibleForge.
Marcador
Significado
Categoría
S para valores de 16 o más; A para valores desde 13; B para valores desde 10; C para valores inferiores.
Tendencia
Se considera que el modelo tiende al chat o a la programación si, comparado con los valores medios de chat y código, uno supera al otro en 1.5 puntos o más; de lo contrario, se considera equilibrado.
Parcial
No todos los casos han sido evaluados aún. Se muestran valores numéricos, pero no hay total, categoría ni clasificación definitiva.
Provisional
Nuestra verificación inicial falló; por ello, es posible que los resultados obtenidos por el código de prueba no sean precisos. No hay clasificación ni categoría hasta que se repita la prueba.
(conjunto 1)
Este conjunto incluye puntos de bonificación; el número indicado corresponde al nivel máximo de bonificación obtenido.
MAX
Se obtiene un 90 % o más en las preguntas estándar y en todos los conjuntos de bonificación. Como ya no quedan pruebas más difíciles, se considera que se ha alcanzado el límite máximo.
Cada barra representa una parte: la zona coloreada indica lo que el modelo logró obtener; la línea discontinua marca el 90%. Tabla Suite 4.0, publicada el 7 de noviembre de 2026.
Claude Sonnet 4.5 utilizó únicamente el conjunto estándar. A continuación se detalla cómo sus puntuaciones por categorías se convierten en los valores correspondientes.
Parte
Casos evaluados
Puntos obtenidos
Funciones
Porcentaje de grupos de prueba ocultos superados: CL3 1,00; CL4 0,69; CL5 0,40; CL6 0,89; CL7 0,77; CL8 0,79. Promedio: 0,76.
0,76 × 5 = 3,8
Predicción + detección de errores
Dos casos de predicción de resultados (CB-C5, CB-C6); acierto del 31%, con peso 2. Un caso de detección de errores (CB-F1), sin aciertos, con peso 1. (2 × 0,31 + 0) ÷ 3 = 0,21.
0,21 × 2,5 = 0,5
Uso de herramientas
Pasos correctos: TZ16 3 de 6; TZ19 7 de 11; TZ20 todos. Promedio: 0,71.
0,71 × 2,5 = 1,8
Partes de Chat
Dos sesiones evaluadas por cada parte.
2,0 + 2,0 + 1,3 + 1,4 = 6,7
Total: 6,1 + 6,7 = 12,8 ± 1,1, clase B. La mejor parte, Funciones, alcanzó un 76%, por debajo del 90% necesario para desbloquear el conjunto de bonificación. Por ello, todos los conjuntos adicionales permanecieron bloqueados y la puntuación corresponde únicamente al conjunto estándar. La mayoría de los modelos en la tabla se encuentran en la misma situación.
Conjuntos de bonificación
Cómo se desbloquean los conjuntos de preguntas adicionales
Una parte del programa, de arriba abajo. Cada parte de “Code” y “Chat” cuenta con su propio sistema de desbloqueo.
Un conjunto de preguntas adicionales es un grupo de preguntas más difíciles, generalmente tres, correspondientes a una parte del programa. CrucibleForge los denomina “ladder packs”. Las reglas son las siguientes:
Desbloqueo. Los conjuntos de cada nivel se desbloquean únicamente si el modelo obtiene al menos un 90 % en las preguntas estándar de esa parte y en todos los conjuntos de niveles inferiores.
Bloqueado, desbloqueado, pendiente. Bloqueado: aún no se ha ganado. Desbloqueado: ya se ha ganado y por tanto se ejecuta. Pendiente: ya se ha ganado pero aún no se ha ejecutado ni evaluado; por ahora cuenta como 0 puntos.
Hasta 1 punto por conjunto. Las preguntas de un mismo conjunto comparten ese punto, permitiendo crédito parcial: si se aciertan 2 de 3 preguntas, se obtienen aproximadamente 0,67 puntos. En caso de que una pregunta se ejecute dos veces, se promedian los resultados.
Niveles. Todos los conjuntos de un mismo nivel se desbloquean simultáneamente, y cada uno aporta su proporción correspondiente a la puntuación total de la parte.
A partir de la versión 4.1, todos los conjuntos son de nivel 1. En “Code” hay tres conjuntos, uno por parte; en “Chat”, cinco (el módulo “Deep role-play” incluye dos), por lo que “Code” puede alcanzar un máximo de 13 puntos y “Chat” 15. Una parte cuyo caso estándar aún no se haya completado no desbloquea sus conjuntos adicionales.
Ejemplo: un modelo que desbloquea un conjunto de desafíos
Números reales obtenidos del tablero Suite 4.0 y sus respuestas almacenadas.
DeepSeek V4 Flash completó con éxito los seis programas estándar de “Funciones”, lo que desbloqueó el conjunto de bonificación correspondiente: tres programas creados desde cero, cada uno ejecutado dos veces. En uno de ellos se lograron 4 de los 6 grupos de prueba en un intento y nada en el otro, resultando en un puntaje de 0.33 para esa pregunta. La contribución total de este conjunto al puntaje final es (0 + 0 + 0.33) ÷ 3 = 0.11. Los otros componentes, “Código” y “Escritura creativa”, también desbloquearon sus respectivos conjuntos de bonificación. El puntaje en “Código” alcanzó 11.2, superando el umbral de 10; el puntaje total fue de 19.2 ± 0.8.
En cuanto al componente de role-play profundo, se obtuvo un 74%, cifra inferior al 90%; por eso sus conjuntos de bonificación permanecieron bloqueados. Cada componente desbloquea su propio conjunto de desafíos.
Cómo se creó la prueba
Mantener los casos actualizados
Cada respuesta almacenada lleva un “sello” del contenido del caso al que responde; así el sistema puede distinguir una respuesta actual de una obsoleta.
Cada respuesta almacenada incluye un sello que identifica el caso al que corresponde. Cuando un caso cambia, solo se actualizan los elementos afectados por dicho cambio. Las respuestas antiguas y las nuevas nunca se mezclan. Para más detalles: los sellos de caso (version.py).
Revisión de las claves de respuestas de la suite 4.1
Cómo se creó la suite 4.1. Los detalles se encuentran en el artículo de la versión 4.1.
Las claves de respuestas pueden ser incorrectas de dos maneras: pueden aprobar una respuesta errónea, o rechazar una correcta al exigir más de lo que realmente se pedía en el enunciado. En el caso de la suite 4.1, dos evaluadores revisaron por separado cada clave pública; además, todas las afirmaciones se contrastaron con las respuestas ya almacenadas antes de aplicar cualquier cambio. El rechazo tampoco otorga puntos: ningún caso premia a quien declina participar. En el artículo Suite 4.1: qué ha cambiado se detallan todas las correcciones realizadas.
Desde la primera versión hasta los nuevos paquetes
Parte superior: el paquete hasta ahora. Parte inferior: los pasos que sigue cada nuevo paquete.
Los conjuntos de bonificación aparecieron en la versión 3.9 para evitar que todos los mejores modelos obtuvieran una puntuación perfecta. Los paquetes antiguos permanecen sin cambios en el historial del paquete, y todas las actualizaciones de los motores se detallan en el registro de cambios de CrucibleForge.
Cuando los modelos comienzan a alcanzar la puntuación máxima en alguna categoría, es necesario crear un conjunto de bonificación más difícil (un nuevo paquete); cada uno de ellos sigue el proceso descrito anteriormente. La revisión por parte del juez es crucial: si este no puede distinguir una respuesta correcta de otra mala de forma sutil, el paquete no podrá ser evaluado de manera justa.
¿Por qué creé esto?
Me cansé de no poder distinguir unos modelos de otros. Quería un benchmark sencillo que cualquiera pudiera ejecutar, con cualquier modelo, y cuyos resultados pudieran verificar por sí mismos. Pensé que eso aportaría valor.
Búsquedas relacionadas: MakoBench · Cómo funciona MakoBench · CrucibleForge · Tablero de referencia para LLM · Benchmark de LLM de código abierto · Rúbrica de referencia para la evaluación de LLM · Margen de error de referencia: bootstrap · Compare los LLM locales y los alojados.