English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

invitado
1 / ?

¿Cuánto Debería Sorprenderse el Modelo?

Loss Pipeline: Logits To Cross-Entropy


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

En una posición de entrenamiento, ANDREA-120M produce probabilidades softmax de 0.4 para el token siguiente real (otros tokens recibieron el 0.6 restante). Calcula la pérdida de entropía cruzada para esta sola posición. Muestra la fórmula y la aritmética. Luego, indica en una oración si esto representa una predicción confiada o incierta.

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érdidaPerplexityCómo se siente
0.01.0Predicción perfecta
1.02.7Elegir entre ~3 tokens plausibles
2.07.4Territorio final SMMA de ANDREA-12M
3.020.1Texto razonable pero incierto
3.4330.9Mínimo de ANDREA-120M v1 (antes del pulido)
5.0148Entrenamiento temprano, aprendiendo distribución del vocabulario
9.048449Lí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

ANDREA-120M v1 alcanzó su mínimo de pérdida EMA de 3.43 en el paso 110K (antes de colapsar). Calcula: (a) la perplejidad en pérdida 3.43; (b) cuántas veces mejor que la línea base de azar aleatorio (ln(8449) ≈ 9.04) representa este valor de pérdida, expresado como una razón de perplejidad. Muestra tu aritmética.

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


PasosPérdida Prom.Notas
0--2.5K4.50Inicialización aleatoria, aprendizaje temprano
2.5K--5K3.88Descenso rápido a través de la fase de estructura
5K--10K3.30Acercándose al límite de coherencia
10K--20K2.80Bandido encontrando mezcla óptima
20K--25K2.40Meseta --- escasez de datos
25K--30K2.50Datos Hermes introducidos + reinicio de LR
30K--35K2.35Hermes integrado, nuevos mínimos
35K--40K2.10Enfoque de 4 brazos, descenso pronunciado
40K--43.6K2.00Territorio 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:


PasosPérdida EMATendencia
26K--40K4.29Convergiendo
70K--85K3.60Mejor región
85K--110K3.43Mínimo
110K--125K3.54Divergiendo
140K--155K4.05Divergiendo
155K--165K4.54Colapsado

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

Observando la curva de pérdida de ANDREA-12M (4.50 → 3.30 → 2.40 meseta → 2.00 final), indica qué fase muestra al modelo aprendiendo la distribución del vocabulario, qué fase indica que el bandit se ha quedado sin capacidad de mezcla de fuentes, y qué fase refleja el enfoque en un currículo estrechado. Una oración por fase, referenciando rangos de pasos específicos.

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.

Diagnóstico de una Ejecución Hipotética

Una nueva ejecución de entrenamiento muestra pérdida SMMA disminuyendo de 8.0 → 3.5 → 2.8 en 100K pasos. Auditorías de muestras en el paso 100K muestran: diversidad bigram 12 (baja), diversidad trigram 8 (baja), presencia de palabras en inglés 18 (alta), diversidad de caracteres 7 (alta). ¿Qué está haciendo probablemente el modelo? ¿Debería continuar el entrenamiento, detenerlo o cambiar de rumbo? Justifica tu respuesta en 3-4 oraciones.