English · Español
00 — Motivación: una sola métrica es una mentira¶
🇪🇸 La métrica que no es la tarea que quieres resolver es ruido. Phase 20 mueve el modelo de "minimizo cross-entropy" a "acierto en correct-vs-incorrect en los 20 verbos × 5 tiempos × 3 personas, en inglés y español, calibrado y robusto a casos truculentos".
Por qué la perplejidad no basta¶
El entrenamiento de la Fase 18 optimizó cross-entropy. El informe de la Fase 18 dice "val PPL 7.2, supera a la baseline 41.6". Es un resultado real. No es, sin embargo, el resultado para el que Borja construyó MiniGPT.
La tarea real de despliegue (según LYNX_CORTEX_ADDENDUM.md §A13) es tutoría de gramática verbal inglesa: dada una frase en inglés con un verbo dentro, decidir si la conjugación es correcta para la persona y el tiempo de la frase, y (en la Fase 32) proponer la forma adecuada. Un modelo con baja perplejidad puede fallar cualquiera de esas subtareas si sus mejoras del loss provinieron de predecir con confianza tokens comunes (the, she, I, los puntos finales) y no de aprender las distinciones de forma verbal.
Esta es la trampa de la métrica proxy: optimizar X porque X es diferenciable, y declarar éxito sin comprobar si X se alinea con Y, el objetivo real.
Para un modelo de lenguaje sobre un corpus pequeño:
- La perplejidad dice: "¿puede el modelo predecir el siguiente token?".
- La accuracy gramatical dice: "¿produce el modelo la forma verbal adecuada para la persona y el tiempo adecuados?".
Están correlacionadas pero no son idénticas. Un modelo puede tener perplejidad 7 y accuracy gramatical del 50 % (azar para un problema de 2 clases). El reverso es más raro — alta accuracy gramatical con alta perplejidad es improbable — pero la correlación no es 1.0.
Los cuatro cubos de métricas que esta fase entrega¶
LYNX_CORTEX.md §4 PHASE 20 nombra: perplejidad, accuracy de tarea, pass@k, calibración, eval adversarial. La Fase 20 construye las cinco (tratando "pass@k" y "accuracy de tarea" como un mismo cubo, dado que la tarea de este currículo es clasificación de un conjunto finito de formas candidatas, no generación libre).
Conceptualmente se agrupan en cuatro:
- Perplejidad — proxy del modelado de lenguaje. Barata, comparable entre runs, pero indirecta para nuestra tarea.
- Accuracy de clasificación por slice — la métrica de tarea. Para cada slice (verbo, tiempo, persona, idioma, regularidad): dada una frase con una forma verbal, clasificar como correcta / incorrecta / ambigua. El reporte por slice es esencial — la accuracy global puede esconder un modelo excelente en presente simple regular e inútil en pasado simple irregular.
- Calibración — cuando el modelo dice "90 % de confianza en que esto es correcto", ¿acierta el 90 % de las veces? La sobreconfianza es un modo de fallo aguas abajo que la accuracy pura no mide, e importa porque el agente tutor de la Fase 32 actúa sobre la confianza del modelo.
- Slice adversarial — los ejemplos difíciles (hiper-regularización tipo
goed, persona errónea tipoShe work, desajuste de forma EN↔ES). Un modelo con 99 % en fáciles y 50 % en difíciles es un modelo del 75 % en producción; reporta ambos.
El eval REPORT.md está estructurado para que puedas leer cada métrica en 5 segundos y la historia integrada en 1 minuto.
Por qué probes etiquetadas (y no sólo un test set held-out)¶
El corpus de la Fase 12 tiene frases emparejadas (English ↔ Spanish) con metadatos gramaticales. ¿Por qué no calcular accuracy directamente sobre el split de test held-out?
Porque el test set held-out es una muestra aleatoria de la distribución del corpus, y la distribución del corpus es lo que produjo gen_corpus.py. Si el generador emite muchas frases de presente simple 3sg con work, el test set será mayormente esas, y la accuracy global estará dominada por ellas. El modelo podría ignorar el past-participle written y el número agregado no se movería.
Un probe set está diseñado para cubrir la tarea de forma uniforme:
- Recuentos iguales por celda (tiempo, persona) (para que la accuracy por celda sea comparable).
- Equilibrio igual entre verbos regulares e irregulares (la ratio regular/irregular en el lenguaje natural está sesgada; el probe set no).
- Recuentos iguales en inglés y español (para que ningún idioma domine el agregado).
- Inclusión de casos conocidos como truculentos que el generador aleatorio podría no producir por azar.
Los probe sets son habituales en la literatura de investigación (HumanEval, MMLU, Big-Bench, BLIMP para gramaticalidad). Para la Fase 20 escribimos a mano ~60 probes que cubren la rejilla 20 verbos × 5 tiempos × 3 personas (muestreada, no exhaustiva), con etiquetado explícito de slice.
Por qué la calibración importa por separado¶
Un modelo que acierta el 80 % de las veces puede estar:
- Bien calibrado: cuando dice 80 % de confianza, acierta el 80 %. Cuando dice 99 %, acierta el 99 %.
- Sobreconfiado: cuando dice 99 %, en realidad sólo acierta el 80 %. Peligroso cuando el código aguas abajo confía en la confianza del modelo.
- Infraconfiado: cuando dice 60 %, en realidad acierta el 80 %. Desperdicia información.
Para un agente tutor de gramática (Fase 32), la calibración es la propiedad decisiva cuando la salida del modelo dispara una corrección mostrada a un aprendiz. Un modelo confiadamente equivocado que dice "She works es incorrecto — usa She work" con un 95 % de confianza es el peor modo de fallo posible: enseña mal activamente.
La Fase 20 mide la calibración con Expected Calibration Error (ECE) y diagramas de fiabilidad. Ambos se derivan en theory/02-metrics-math.md.
Por qué el eval adversarial es su propio slice¶
Los casos truculentos son los discriminadores de esta tarea. Considera:
Este es un error clásico de sobre-regularización — el aprendiz (o el modelo) aplicó la regla regular -ed a un verbo irregular cuyo pasado es went. Un modelo que sólo memorizó "verbo + ed = pasado" aceptará goed; un modelo que ha aprendido de verdad las formas irregulares lo marcará.
Probes adversariales:
- Sobre-regularización:
goed,eated,writed,comed,seed. Trivialmente detectable por un modelo que conoce las formas irregulares; trampa para un modelo que sobreajustó la regla regular. - Concordancia de persona errónea:
She work hard.(falta la-s).He go to school.It have a name. - Tiempo erróneo para el marcador temporal:
Yesterday I work.(presente simple en vez de pasado simple).Tomorrow she went.(pasado en vez de futuro). - Desajuste auxiliar:
She have eaten vez deShe has eaten. Pone a prueba la cadena del perfecto. - Desajuste de forma EN↔ES: un prompt en inglés que espera
worked, pero el conjunto de candidatas contienetrabajó(la forma española). Un modelo que confunde los idiomas elegirá mal. - Confusión de plural:
We work(correcto — pero el modelo, entrenado sólo en singular según §A13, podría rechazarlo como "persona errónea"). Esta es una probe fuera de alcance usada para destapar lagunas de generalización.
La Fase 20 incluye ~20 de esas probes en data/eval/adversarial.jsonl. Los scores sobre este conjunto, desglosados por categoría de truco, son el test real.
Cómo fluye el informe¶
Cada checkpoint produce un REPORT.md. Sus secciones:
- Cabecera — hash del checkpoint, paso de entrenamiento, hash del manifest padre, fecha de evaluación, hash de versión del eval set.
- Cifras de titular — PPL (train, val, test), accuracy global de clasificación, ECE, accuracy adversarial. De tres a cinco números.
- Tablas por slice — accuracy por (idioma, tiempo, persona, regularidad). Ordenadas por accuracy ascendente; el slice más débil del modelo aparece arriba.
- Diagrama de fiabilidad — PNG embebido.
- Slice adversarial — tabla de categorías de truco × accuracy.
- Matriz de confusión — correct / incorrect / ambiguous (o correct frente a cada tipo de error).
- Pass@k para el sub-eval de generación (si aplica: completado libre de forma verbal).
- Un párrafo de interpretación — escrito por Borja. Qué hace bien este modelo y qué no.
La interpretación de §8 es el punto. Los números existen para apoyar la frase que escribe Borja sobre lo que el modelo puede y no puede hacer.
Lo que NO está en la Fase 20¶
- Sin ajuste fino (fine-tuning) para arreglar lo roto. El trabajo de LoRA de la Fase 28 ataca debilidades concretas que aquí afloran.
- Sin eval a nivel de agente. Fase 32. El comportamiento del agente tutor se prueba con este modelo + un prompt + herramientas; la Fase 20 sólo prueba el modelo base.
- Sin eval de RAG. Fase 29. El modelo base aquí no tiene recuperación.
- Sin búsqueda de hiperparámetros guiada por métricas. Sólo medición.
A qué sabe "terminar"¶
Sabrás que la Fase 20 ha terminado cuando:
experiments/20-eval-report/REPORT.mdexista con sus ocho secciones rellenas.- Puedas nombrar los tres slices con peor rendimiento del modelo (p. ej., "pasado simple irregular 1sg", "past-participle español 3sg", "futuro
going to2sg") y articular por qué sospechas de cada uno (sin reentrenar). - El diagrama de fiabilidad esté en el informe y sepas leerlo: ¿está el modelo bien calibrado, sobre o por debajo?
- Tengas al menos un ejemplo adversarial donde puedas demostrar que el modelo falla de forma predecible (relacionado con una laguna del corpus o un patrón ausente — p. ej., el corpus sobrerrepresentó
worky ahora el modelo hiper-regularizago).
Si puedes hacer esas cuatro cosas, el arnés está construido y el modelo caracterizado. La Fase 21 usará entonces esta caracterización para decidir qué estrategia de muestreo emplear para la generación.
🇪🇸 La fase 20 es el espejo: no cambia el modelo, sólo lo describe honestamente. Cambiar el modelo es un trabajo de otras fases.
Siguiente: theory/01-metrics-catalog.md.