Skip to content

English · Español

04 — Por qué la perplejidad sobreestima el progreso en un corpus pequeño

🇪🇸 La perplejidad es la métrica favorita por una razón: es barata y comparable. Pero a la escala §A13 (240 frases de entrenamiento, ~600 formas totales), la PPL miente sistemáticamente sobre el progreso. Aquí vemos cómo, por qué, y qué medir en su lugar.

Esta página amplía theory/01-metrics-catalog.md con las razones específicas a §A13 por las que la perplejidad es engañosa, y lista las métricas que usamos en su lugar (o además) para tener una imagen honesta.


El planteamiento

Corpus §A13: 20 verbos × 5 tiempos × 3 personas = 300 celdas (verbo, tiempo, persona), cada una produciendo una forma en inglés y su traducción al español. Total ~600 formas. Train: 240 frases (cada una embebe una forma en un marco pequeño). Vocabulario: ~512 tokens BPE. Mini-GPT: ~103k parámetros.

Un modelo §A13 "bien entrenado" alcanza training PPL \(\approx 2.5\) y held-out PPL \(\approx 4.0\). Esos números parecen buenos comparados con GPT-2 (que tiene training PPL \(\approx 20\) sobre su corpus de 40 GB). Los números no son comparables, y confundirlos es el primer modo de fallo.

Por qué la PPL aquí es engañosa — tres razones

1. El vocabulario es pequeño, así que la cota inferior es pequeña

La PPL está acotada por arriba por \(V\) (aleatorio uniforme) y por abajo por 1 (perfecto). Para nuestro vocab \(V = 512\), un modelo no informado tiene PPL = 512. Un modelo que conoce sólo las frecuencias unigrama (los tokens BPE más comunes son los separadores de idioma y los artículos) baja a PPL \(\approx 30\) "gratis" — sin gramática aprendida. La mayor parte del salto de 512 a 4.0 es aprendizaje fácil (unigrama, bigrama); la parte difícil — la conjugación verbal — es el último factor 2 de 8 a 4.

Una mejora del 10 % en PPL a esta escala (4.0 → 3.6) podría corresponder a una mejora del 50 % en la tarea de gramática o a una del 5 %, dependiendo de qué tokens se aprendieran mejor. La PPL no te lo dice.

2. La conjugación vive en un subconjunto pequeño de tokens

De los ~512 tokens BPE, sólo ~30 son "críticos para la conjugación": los fragmentos de raíz verbal (p. ej., work, wri, tten), los sufijos morfológicos (-s, -ed, -ing) y las formas irregulares (is, was, had, gone, done). Los otros ~480 tokens son relleno — artículos, pronombres, puntuación, espacios. Un modelo que clava los 480 tokens de relleno y adivina al azar los 30 de conjugación tiene una PPL un 6 %–10 % superior a la de un modelo que hace lo contrario. Ambos son inútiles. La PPL colapsa la diferencia.

3. La PPL no separa generalización de memorización

Con 240 frases de entrenamiento y 60 frases held-out, un modelo de 103k parámetros puede memorizar una fracción sustancial del set de train. Train PPL = 1.5, val PPL = 4.0 parece "sobreajuste por un factor 2.5×". Pero lo que realmente ocurre: el modelo memorizó las formas superficiales que vio, y en formas held-out está adivinando reglas morfológicas desde la abstracción equivocada. La PPL held-out de 4.0 oculta si el modelo está:

  • (a) conjugando correctamente frases nuevas con verbos familiares (buena generalización),
  • (b) fallando en verbos no familiares pero acertando el relleno (generalización selectiva),
  • © fallando en morfología no familiar incluso con verbos familiares (sin regla aprendida).

El número agregado no puede distinguir esos tres regímenes.

Qué medir en su lugar — tres métricas compañeras

A. Accuracy condicional a nivel de token sobre el alfabeto crítico para la conjugación

Para cada frase held-out con una forma verbal, calcula la predicción argmax del modelo en la posición donde caería el token de conjugación. Restringe el alfabeto a los tokens críticos para la conjugación (p. ej., cuando la posición debe ser -s, evalúa si el argmax sobre {ø, -s, -ed, -ing} es -s).

Fórmula:

\[\text{ConjAcc} = \frac{1}{|D|} \sum_{(x_{<i}, y_i^*) \in D_\text{conj}} \mathbb{1}\left[ \arg\max_{v \in V_\text{conj}} p_\theta(v \mid x_{<i}) = y_i^* \right]\]

Donde \(V_\text{conj}\) es el alfabeto crítico para la conjugación en la posición \(i\) (determinado por el contexto gramatical).

Esto es mucho más difícil de hackear. Aleatorio sobre un alfabeto de 4 elementos da 25 % de accuracy. Un modelo que conoce a la perfección la distribución unigrama llega a ~30 %. Un modelo que ha aprendido la regla alcanza el 80 %+. El salto de 30 % → 80 % es exactamente la señal gramatical que nos importa.

B. Tasa de corrección de conjugación (CCR) sobre la rejilla (verbo × tiempo × persona)

Para cada una de las 300 celdas de la rejilla §A13, genera la forma (desde el prompt en inglés o por generación libre) y comprueba si la forma generada coincide con la canónica. CCR es la fracción de celdas correctas.

De forma crucial, CCR se reporta con slices:

  • CCR-regular (12 verbos × 5 × 3 = 180 celdas): el modelo que aprendió la regla regular debería sacar \(\geq 90\%\).
  • CCR-irregular (8 verbos × 5 × 3 = 120 celdas): los irregulares son memorización; espera \(\geq 75\%\) tras suficiente entrenamiento.
  • CCR-rare-tense (sólo past participle): la forma más rara del corpus; espera 60-80 % tras suficiente entrenamiento.

La tabulación cruzada revela en qué slices está fallando el modelo, cosa que la PPL oculta.

C. Accuracy de alineación bilingüe

Para cada par (forma inglesa, forma española) en la rejilla §A13, pide al modelo que traduzca en un sentido y comprueba coincidencia exacta. Esta es la señal bilingüe §A2 — si el modelo tiene una representación cross-lingüística real, la accuracy de alineación correlaciona con el razonamiento gramatical. Si la alineación es alta pero la conjugación baja, el modelo memorizó el diccionario sin gramática.

Ejemplo numérico — cómo se ven las tres métricas en un run saludable

Tras 2000 pasos de entrenamiento con la configuración recomendada de la Fase 18, el mini-GPT §A13 alcanza aproximadamente:

Métrica Train Val
PPL (agregado) 1.9 3.8
PPL (inglés) 1.7 3.6
PPL (español) 2.0 4.0
ConjAcc 88 % 76 %
CCR-regular 95 % 82 %
CCR-irregular 87 % 64 %
CCR-past-participle 73 % 55 %
Alineación bilingüe 81 % 68 %

El salto de PPL es 1.9× (train vs val), lo que en el entorno GPT-2 gritaría "sobreajuste". El CCR cuenta una historia más matizada: el modelo ha aprendido la regla regular casi a la perfección en train (95 %), generaliza a regulares held-out (82 %) con un margen saludable y va por el camino de aprender los irregulares. La fila del past-participle es la brecha real — held-out past-participles al 55 % significa que el modelo ha visto demasiado pocos ejemplos para generalizar.

Una mentalidad ingenua de "mejorar la PPL" empujaría a un entrenamiento más prieto (más pasos, suelo de LR más bajo). La vista CCR sugiere una intervención mejor: aumentar el corpus con más ejemplos de past-participle (dentro del alcance §A13), ya que ahí es donde la ratio señal-datos es peor.

Cuándo la PPL sigue siendo útil

  • Comparación entre checkpoints dentro del mismo run: si la PPL baja de 4.0 → 3.5 entre el checkpoint 1500 y el 2000, algo mejoró.
  • Señal rápida de "¿el entrenamiento está roto?": si la PPL pega un pico, el entrenamiento está roto independientemente de las métricas de conjugación.
  • Agregar a través de muchas variantes de modelo en un sweep de alto nivel.

La PPL simplemente no debería ser lo único que reportas.

Cita

Goldberg, Y. (2017). Neural Network Methods for Natural Language Processing. Capítulo 6, secciones sobre evaluación intrínseca vs extrínseca. El argumento "las métricas intrínsecas como la PPL son proxies débiles de la calidad extrínseca de la tarea" es la fuente de libro de texto para el encuadre de esta página.

Recapitulación en un párrafo

A escala §A13, la perplejidad sobreestima el progreso por tres razones: el vocabulario pequeño abarata el aprendizaje "fácil", el subconjunto de tokens críticos para la conjugación es pequeño frente al relleno, y la PPL agregada colapsa memorización y generalización. Los arreglos son métricas compañeras: accuracy condicional a nivel de token sobre el alfabeto crítico para la conjugación, tasa de corrección de conjugación troceada por verbo / tiempo / persona / regularidad, y accuracy de alineación bilingüe. Un run §A13 saludable tiene train-PPL ≈ 1.9 y val-PPL ≈ 3.8, pero el desglose de CCR es lo que te dice si el modelo aprendió la regla o memorizó la superficie.


Referencias cruzadas: theory/01-metrics-catalog.md (catálogo de métricas completo), theory/02-metrics-math.md (las fórmulas), Fase 32 — el criterio de éxito del tutor de gramática es CCR, no PPL.