¿Cuánto Debería Sorprenderse el Modelo?
De Logits a Probabilidades
Después de 12 bloques transformadores, ANDREA-120M produce un vector de vocab_size números por posición de token: los logits. Para ANDREA-120M, vocab_size = 8449, por lo que cada posición genera 8449 logits. Los logits son puntuaciones no normalizadas; algunos positivos, algunos negativos, sin restricción de sumar 1.
Softmax convierte los logits en una distribución de probabilidad:
p_i = exp(logit_i) / sum_j exp(logit_j)
Después del softmax, todos los 8449 números están entre 0 y 1, sumando 1. El modelo asigna probabilidad a cada posible token siguiente.
Pérdida de Entropía Cruzada
El entrenamiento requiere una función de pérdida: un número que mide qué tan errónea fue la predicción del modelo para una respuesta correcta dada. La entropía cruzada funciona para el modelado de lenguaje:
loss_t = -log(p_correct_token_t)
Toma la probabilidad predicha por el modelo para el token siguiente real (el que está en los datos de entrenamiento). Toma el logaritmo negativo de esa probabilidad. Esa es la pérdida para una posición.
Por qué Logaritmo Negativo
Tres propiedades hacen que -log(p) sea una función de pérdida natural:
- -log(1) = 0: Cuando el modelo predice el token correcto con 100% de confianza, la pérdida es cero.
- -log(0) = ∞: Cuando el modelo asigna probabilidad cero al token correcto, la pérdida es infinita. (En la práctica, softmax nunca produce exactamente 0; la pérdida se mantiene finita pero grande.)
- Monotónica: A medida que la probabilidad predicha para el token correcto aumenta, la pérdida disminuye de manera suave.
Mayor confianza en la respuesta correcta = menor pérdida. El objetivo de entrenamiento es directo: maximizar la probabilidad predicha para el token siguiente real.
Pérdida por Secuencia
ANDREA entrena en secuencias de longitud 1024 (la ventana de contexto). Cada secuencia produce 1024 predicciones de token siguiente. La pérdida de la secuencia promedia a través de todas las posiciones:
sequence_loss = mean(-log(p_correct_t)) for t in 0..1023
Luego, las pérdidas de secuencia se promedian a lo largo del batch (ANDREA-120M usa batch_size = 8). Un número escalar por paso de entrenamiento. Ese número es lo que grafica la curva de pérdida.
Cálculo de la Pérdida Para Una Posición
Perplejidad = exp(pérdida)
Una Escala Más Amigable
Los valores de pérdida como 2.0 o 3.43 no transmiten inmediatamente lo que el modelo puede hacer. La perplejidad traduce la pérdida a una escala más intuitiva:
perplejidad = exp(pérdida)
Perplexity responde a una pregunta clara: ¿entre cuántos tokens igualmente probables elige efectivamente el modelo? Una perplexity de 7 significa que el modelo se comporta como si eligiera entre 7 tokens plausibles siguientes en cada posición. Una perplexity de 1 significa predicción perfecta.
Pares comunes de Pérdida-Perplexity
| Pérdida | Perplexity | Cómo se siente |
|---|---|---|
| 0.0 | 1.0 | Predicción perfecta |
| 1.0 | 2.7 | Elegir entre ~3 tokens plausibles |
| 2.0 | 7.4 | Territorio final SMMA de ANDREA-12M |
| 3.0 | 20.1 | Texto razonable pero incierto |
| 3.43 | 30.9 | Mínimo de ANDREA-120M v1 (antes del pulido) |
| 5.0 | 148 | Entrenamiento temprano, aprendiendo distribución del vocabulario |
| 9.04 | 8449 | Línea base de azar para el vocabulario de ANDREA-120M |
La perplejidad contextualiza los valores de pérdida: una pérdida de 2.0 significa que el modelo elige efectivamente entre ~7 tokens, no entre 8449.
La línea base de azar aleatorio
Un modelo que no sabe nada y adivina uniformemente asigna una probabilidad 1/V a cada token, donde V = vocab_size:
p_uniform = 1 / V
loss = -log(1/V) = log(V)
Para ANDREA-120M con V = 8449:
loss_uniform = ln(8449) ≈ 9.04
Para ANDREA-12M con V = 2305:
loss_uniform = ln(2305) ≈ 7.74
Cualquier pérdida por encima de esta línea base significa que el modelo tiene un rendimiento peor que el azar. Cualquier pérdida por debajo de ella significa que el modelo ha aprendido algo: concentra la masa de probabilidad en un subconjunto más pequeño de tokens que el uniforme.
Leyendo un Valor de Pérdida
Suavizado del Ruido a Nivel de Paso
La Pérdida Cruda Es Ruidosa
La pérdida por paso rebota. El bandit de ANDREA elige una fuente diferente cada 7-42 pasos; algunas fuentes (definiciones de diccionario) producen pérdidas fáciles; otras (párrafos de gutenberg) producen pérdidas más difíciles. Graficar la pérdida cruda del paso contra el número de paso produce un dispersión caótica.
La Media Móvil Modificada Suavizada (SMMA) amortigua el ruido y revela la tendencia. El proxy de entrenamiento de ANDREA calcula la SMMA como:
SMMA[0] = loss[0]
SMMA[t] = (SMMA[t-1] * (N-1) + loss[t]) / N
Con N = 100 (ventana de suavizado predeterminada de ANDREA), cada nuevo valor de SMMA mezcla el 99% del SMMA anterior con el 1% de la nueva pérdida del paso. Los picos repentinos se absorben; los cambios sostenidos aparecen gradualmente.
¿Por qué no solo promediar?
Un promedio móvil simple sobre los últimos 100 pasos requiere almacenar 100 valores de pérdida. SMMA almacena un valor (el promedio acumulado) & una constante (el tamaño de la ventana). Barato en memoria, computacionalmente trivial, & lo suficientemente suave para leer una curva.
Diferentes pesos de suavizado responden a diferentes preguntas:
- N = 10: rastrea cambios a corto plazo; útil durante transiciones de fase
- N = 100: predeterminado de ANDREA; rastrea el progreso a mediano plazo
- N = 1000: solo tendencia a largo plazo; útil al final del entrenamiento
Lo que rastrea ANDREA
Cada 100 pasos, el proxy de entrenamiento escribe loss.json con el SMMA actual, pérdida cruda, número de paso y desgloses por fuente. El dashboard en training.ai.unturf.com/dashboard consulta este archivo cada 10 segundos. Los espectadores externos ven el progreso en vivo; el dashboard es de solo lectura.
La Curva Real de ANDREA-12M
La Receta que Alcanzó SMMA 2.0
| Pasos | Pérdida Prom. | Notas |
|---|---|---|
| 0--2.5K | 4.50 | Inicialización aleatoria, aprendizaje temprano |
| 2.5K--5K | 3.88 | Descenso rápido a través de la fase de estructura |
| 5K--10K | 3.30 | Acercándose al límite de coherencia |
| 10K--20K | 2.80 | Bandido encontrando mezcla óptima |
| 20K--25K | 2.40 | Meseta --- escasez de datos |
| 25K--30K | 2.50 | Datos Hermes introducidos + reinicio de LR |
| 30K--35K | 2.35 | Hermes integrado, nuevos mínimos |
| 35K--40K | 2.10 | Enfoque de 4 brazos, descenso pronunciado |
| 40K--43.6K | 2.00 | Territorio de conocimiento, SMMA por debajo de 2.0 |
Tres fases destacan:
1. Descenso inicial pronunciado (0-10K). La pérdida cae de 4.50 a 3.30 mientras el modelo aprende la distribución del vocabulario y la estructura básica de turnos. La línea base de azar aleatorio ln(2305) ≈ 7.74 se sitúa muy por encima de esta curva; el modelo concentra rápidamente la masa de probabilidad una vez que los embeddings se estabilizan.
2. Meseta (20K-25K). La pérdida se estanca en 2.40. El bandido se había quedado sin margen en su mezcla actual de fuentes. Los datos de Hermes se agregaron en el paso 25K, más un reinicio cálido de LR, que rompió la meseta.
3. Descenso final (35K-43.6K). El currículo se redujo de 16 fuentes a 4 (hermes3-general + dictionary + gutenberg + chat). Declive de pérdida más pronunciado que el bandit de brazo completo. SMMA final: 2.0.
ANDREA-120M v1: Una curva cautelar
Mismo cálculo de vocabulario: ln(8449) ≈ 9.04. ANDREA-120M v1 alcanzó SMMA 3.43 en el paso 110K (su mínimo), luego divergieron:
| Pasos | Pérdida EMA | Tendencia |
|---|---|---|
| 26K--40K | 4.29 | Convergiendo |
| 70K--85K | 3.60 | Mejor región |
| 85K--110K | 3.43 | Mínimo |
| 110K--125K | 3.54 | Divergiendo |
| 140K--155K | 4.05 | Divergiendo |
| 155K--165K | 4.54 | Colapsado |
Valores de pérdida numéricamente razonables a lo largo (3.43 se sitúa cómodamente por debajo de la línea base aleatoria de 9.04). Pero las muestras eran colapso por repetición: Budy Budy Budy Budy. La pérdida contó una historia engañosa; las auditorías de muestras no lo hicieron.
El early stopping con coherencia de v2 (actividad 78) añadió una señal paralela: diversidad de bigramas, diversidad de trigramas, presencia de palabras en inglés, diversidad de caracteres. Cuando los cuatro puntajes se mantienen por debajo de 30 durante 5 muestras consecutivas, el entrenamiento se detiene automáticamente. Esta señal habría detectado v1 en el paso 132K, ahorrando 3.8 días de cómputo.
Qué te dice cada fase
La Lección 120M v1
Dos Señales Independientes
ANDREA-120M v1 alcanzó SMMA 3.43 en el paso 110K. Numéricamente: 273× mejor que el azar (perplejidad 31 vs tamaño del vocabulario 8449). Se ve genial en la curva.
Muestra en el paso 110K::
''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
La pérdida y la coherencia son señales independientes. Una baja pérdida significa que el modelo concentra la masa de probabilidad de manera efectiva. La coherencia significa que el modelo produce texto que los humanos pueden leer. La primera no implica la segunda.
Por qué existe la brecha
Un modelo puede reducir la pérdida mediante:
1. Aprender patrones reales del lenguaje (bueno): concordancia sujeto-verbo, frases comunes, asociaciones fácticas.
2. Memorizar artefactos estructurales (malo): patrones de repetición de alta frecuencia, peculiaridades específicas del conjunto de datos, atractores degenerados.
Ambos reducen la pérdida. El primero produce muestras que gustan a los humanos. El segundo produce Budy Budy Budy Budy. El objetivo de entrenamiento por sí solo no puede distinguirlos.
ANDREA-120M v3 Polish: Donde la Pérdida & la Coherencia se Encontraron
Después del pulido v3 (paso 112K en adelante), ANDREA-120M produce:
Paso 112,584, pérdida 0.30, ppl 1::
> [extinction prompt]
< la araña negra montano está viva, el periquito de Carolina está extinto.
Ambos hechos correctos. El periquito de Carolina declarado extinto en 1939; el mono araña negro montano extant. Baja pérdida (0.30) Y recuerdo factual coherente.
Step 112,500, loss 1.94, ppl 7::
> ¿Cómo encuentro paquetes obsoletos en un proyecto de Python?
< Usa `pip list --outdated` para ver la lista de paquetes pip...
Pérdida más alta (1.94 → ppl 7) pero emerge la herramienta correcta de los datos de entrenamiento. La fluidez en la redacción aún se está desarrollando en el 56% de la marca de entrenamiento.
La Disciplina de las Dos Señales
Las tuberías de entrenamiento modernas monitorean AMBAS:
- Curva de pérdida. Te dice si el modelo está aprendiendo algo cuantitativo.
- Auditoría de muestras. Te dice si lo que el modelo aprendió es útil.
v2 agregó detención temprana con coherencia (actividad 78). El pulido de v3 fue una perturbación de currículo desencadenada por auditorías de muestras, no por valores de pérdida. La pérdida sola es necesaria pero nunca suficiente.