PASO 10 / 10 · EL FINAL

Entrenamiento

En todos los pasos anteriores dijimos "esta matriz es aprendida" sin explicar cómo. Ahora cerramos el círculo: cómo el modelo ajusta sus millones de parámetros, partiendo de números aleatorios, hasta volverse capaz de generar lenguaje.

🎯 De un vistazo

El entrenamiento es el proceso que convierte un modelo "vacío" (con pesos al azar) en uno capaz de generar texto coherente.

PROPÓSITO

¿Para qué sirve?

Ajustar TODOS los pesos del modelo (embeddings, atención, FFN...) partiendo de valores aleatorios, para que aprenda a predecir bien la siguiente palabra.

APORTE

¿Qué aporta al modelo?

El conocimiento. Todo lo que el modelo "sabe" (gramática, hechos, razonamiento) vive en los valores de sus pesos, y esos valores son producto del entrenamiento.

NECESIDAD

¿Por qué es indispensable?

Sin entrenamiento, toda la arquitectura de los pasos 1-9 es un cascarón vacío con pesos al azar que produce texto sin sentido. El entrenamiento es lo que la "llena" de capacidad.

↓ A continuación, el detalle con ejemplos y visualizaciones ↓

1. La gran pregunta: ¿de dónde salieron todos esos números?

A lo largo de la guía vimos muchas matrices "aprendidas": la matriz de embeddings (paso 2), las W_Q/W_K/W_V de atención (paso 4-5), las W₁/W₂ del FFN (paso 6), los γ/β de LayerNorm (paso 7)... En GPT-3 son 175 mil millones de números.

Al empezar, todos esos números son ALEATORIOS. El modelo recién creado es como un cerebro en blanco: si le dieras "el perro come" predeciría una palabra al azar. El entrenamiento es el proceso de ajustar esos millones de números, poquito a poquito, hasta que el modelo prediga bien.

La pregunta es: ¿cómo ajustás 175 mil millones de números en la dirección correcta? La respuesta tiene 4 ingredientes que vamos a ver: una tarea, una medida de error, una forma de mejorar, y mucha repetición.

2. La tarea: predecir la siguiente palabra

La genialidad de los LLMs es que se entrenan con una tarea increíblemente simple: dado un fragmento de texto, predecir la siguiente palabra. Y ya está.

¿De dónde salen los ejemplos de entrenamiento?

De texto que ya existe (internet, libros, código...). No hace falta que nadie etiquete nada a mano. Tomamos cualquier texto y lo cortamos en ejemplos:

Texto original: "el perro come carne fresca"

Se convierte automáticamente en ejemplos de entrenamiento:
  Input: "el"                       → objetivo: "perro"
  Input: "el perro"                 → objetivo: "come"
  Input: "el perro come"            → objetivo: "carne"
  Input: "el perro come carne"      → objetivo: "fresca"

El texto mismo provee las respuestas correctas (la siguiente palabra ya está ahí). Esto se llama aprendizaje auto-supervisado: no necesitamos etiquetas humanas, el texto se etiqueta solo.

¿Por qué "predecir la siguiente palabra" produce inteligencia? Porque para predecir bien, el modelo se ve obligado a aprender gramática, hechos, lógica, razonamiento... Para completar "La capital de Francia es ___" tiene que "saber" que es París. Para completar "2 + 2 = ___" tiene que "saber" sumar. La predicción es simple; lo que hay que aprender para predecir bien, no.

3. 📐 Repaso: el "loss" (qué tan equivocado está)

Para mejorar, primero necesitamos medir qué tan mal lo está haciendo el modelo. Esa medida es el loss (pérdida o error). Un loss alto = muy equivocado; loss bajo = muy acertado.

¿Cómo se mide el error de una predicción?

Recordá del paso 9: el modelo no predice UNA palabra, sino una probabilidad para cada palabra del vocabulario. El loss mira qué probabilidad le asignó a la palabra correcta.

loss = −log( probabilidad asignada a la palabra correcta )

La fórmula se llama cross-entropy. La intuición es simple:

Si el modelo le dio a la palabra correcta...
  90% de probabilidad → loss = -log(0.90) = 0.105   (muy bajo, ¡bien!)
  50% de probabilidad → loss = -log(0.50) = 0.693   (medio)
  10% de probabilidad → loss = -log(0.10) = 2.303   (alto, mal)
   1% de probabilidad → loss = -log(0.01) = 4.605   (muy alto, ¡terrible!)

Cuanta menos probabilidad le dio el modelo a la palabra que en realidad venía, más alto el loss. El objetivo del entrenamiento es minimizar el loss en promedio sobre todos los ejemplos.

🎮 Probá: ¿cómo cambia el loss según la probabilidad?

30%

4. Gradient descent: cómo mejorar bajando la colina

Ya tenemos un número (el loss) que mide qué tan mal está el modelo. Ahora la pregunta clave: ¿cómo ajustamos los pesos para que el loss baje? La respuesta es gradient descent (descenso por gradiente).

La analogía de la colina

Imaginá que el loss es la altura de un terreno, y los pesos del modelo son tu posición en ese terreno. Querés llegar al punto más bajo (loss mínimo).

Estás parado en la niebla y no ves el valle. Pero sí podés sentir la pendiente bajo tus pies (hacia dónde baja). Entonces das un pasito en la dirección que baja. Volvés a sentir la pendiente, das otro pasito. Repetís miles de veces hasta llegar al fondo.

  • La pendiente (hacia dónde baja) se llama gradiente.
  • El tamaño del pasito se llama learning rate (tasa de aprendizaje).

🎮 Mirá el gradient descent en acción

La curva es el "paisaje del loss". La pelota es el estado actual del modelo. Apretá "Dar un paso" y mirá cómo baja hacia el mínimo:

0.30
El learning rate importa mucho: probá ponerlo muy alto (ej. 1.2) y vas a ver que la pelota "rebota" y se pasa del mínimo (o diverge). Muy bajo (0.01) y tarda muchísimo. Encontrar el learning rate correcto es uno de los artes del entrenamiento.

5. Backpropagation: cómo se calcula el gradiente

En el demo de la colina movimos UN solo peso (una dimensión). Pero el modelo tiene millones de pesos. ¿Cómo sabemos en qué dirección mover CADA uno? Ahí entra backpropagation (retropropagación).

La idea (sin la matemática pesada)

Backprop calcula, para cada peso del modelo, cuánto contribuyó al error final. Lo hace propagando el error "hacia atrás", desde la salida hasta la entrada, capa por capa.

Forward pass: el texto entra y fluye hacia adelante por todas las capas, produciendo una predicción y un loss.
Backward pass (backprop): el error fluye hacia atrás. En cada capa se calcula "¿cuánto culpa de este error tiene cada peso de esta capa?". Eso es el gradiente de cada peso.

Matemáticamente usa la "regla de la cadena" del cálculo (derivadas encadenadas), pero la intuición es: repartir la culpa del error entre todos los pesos, para saber cómo ajustar cada uno.

Conexión con el paso 7: ¿recordás que las conexiones residuales eran "una autopista para los gradientes"? Acá se ve por qué importaba: el gradiente tiene que viajar hacia atrás por las 96 capas. Sin las conexiones residuales, se desvanecería antes de llegar a las primeras capas, y esas nunca aprenderían. Residual + LayerNorm hacen que backprop funcione en redes profundas.

6. El bucle de entrenamiento completo

Juntando todo, el entrenamiento es repetir este ciclo billones de veces:

1
Tomar un ejemplo: un fragmento de texto y su "siguiente palabra" correcta.
2
Forward pass: pasar el texto por todo el modelo (pasos 1-9) y obtener la predicción.
3
Calcular el loss: comparar la predicción con la palabra correcta (cross-entropy).
4
Backprop: calcular el gradiente de cada peso (cuánto contribuyó al error).
5
Actualizar los pesos: mover cada peso un pasito en la dirección que reduce el loss (gradient descent).
6
Repetir con el siguiente ejemplo. Billones de veces.

🎮 Mirá el modelo "aprender" en vivo

Simulamos el entrenamiento para el ejemplo "el perro come ___" (la respuesta correcta es "carne"). Al principio el modelo predice al azar. Apretá "Entrenar 1 paso" y mirá cómo la probabilidad de "carne" sube y el loss baja:

Predicción actual del modelo

Loss a lo largo del entrenamiento

7. La escala real del entrenamiento

El bucle es simple, pero la escala es lo que lo hace difícil (y caro):

Datos GPT-3 se entrenó con ~300 mil millones de tokens (cientos de miles de libros equivalentes). Modelos recientes usan billones.
Cómputo Miles de GPUs trabajando en paralelo durante semanas o meses.
Costo Entrenar GPT-3 costó estimado varios millones de dólares solo en cómputo. Modelos frontera de hoy: decenas o cientos de millones.
Resultado Un conjunto de pesos congelados que, al hacer inference (lo que vimos en pasos 1-9), generan texto coherente.

Las fases del entrenamiento de un LLM moderno

  1. Pre-entrenamiento: lo que vimos — predecir la siguiente palabra sobre todo internet. Produce un modelo "base" que sabe lenguaje pero no necesariamente sigue instrucciones.
  2. Fine-tuning / instrucción: se reentrena con ejemplos de "instrucción → respuesta deseada" para que sea útil como asistente.
  3. RLHF (aprendizaje por refuerzo con feedback humano): humanos califican respuestas, y el modelo se ajusta para producir respuestas mejor valoradas. Es lo que hace que Claude o ChatGPT sean útiles y seguros.

Esta guía cubrió el pre-entrenamiento (la base). El fine-tuning y RLHF usan las mismas mecánicas (forward, loss, backprop, update) pero con datos y objetivos distintos.

🎉 ¡Completaste la guía!

Recorriste todo el Transformer, de principio a fin

Ahora entendés cada pieza de cómo funciona un LLM:

📝 1. Tokenización — texto → números

🔢 2. Embeddings — números → vectores con significado

📍 3. Positional Encoding — inyectar el orden

👀 4-5. Self-Attention + Multi-Head — cada token mira a los demás

🧠 6. Feed-Forward — procesar con no-linealidad

🔗 7. Residual + LayerNorm — estabilizar para apilar

📚 8. Stacking — apilar bloques → profundidad → capacidad

🎲 9. Output / Softmax — vector → predicción de palabra

📉 10. Entrenamiento — cómo se aprendieron todos los pesos

Lo que viene (si querés seguir): según lo que charlamos, el cierre ideal de la guía es un archivo "pipeline completo" que muestre todo el flujo end-to-end con el ejemplo "el perro come" pasando por las 10 etapas, una conectada a la siguiente. Avisame cuando quieras armarlo.