Capítulo 06 · Entrenamiento · 10 min

Cómo aprende

Loss, descenso de gradiente, backpropagation. Y por qué se necesitan miles de millones de parámetros.

Aprender es corregir una predicción

Durante el entrenamiento, el modelo no conversa. No sabe qué es un usuario. No intenta ser útil.

Solo recibe fragmentos de texto y debe predecir el siguiente token. Cuando se equivoca, medimos el error, lo propagamos hacia atrás y modificamos un poco sus parámetros para que la próxima vez sea menos probable cometer el mismo error.

La curva de loss baja por escalones — cada escalón corresponde a un nuevo patrón que el modelo acaba de aprender. Los cuatro regímenes de learning rate exponen los errores clásicos: demasiado bajo y el modelo se estanca; demasiado alto y diverge.

La loss

La loss es una medida de sorpresa. Si la respuesta correcta recibe mucha probabilidad, la loss es baja. Si recibe poca probabilidad, la loss sube.

Imagina que la continuación correcta es Madrid:

  • el modelo asigna 80 % a Madrid → poca sorpresa
  • asigna 2 % a Madrid → mucha sorpresa

Entrenar consiste en bajar esa sorpresa, paso tras paso, sobre cantidades enormes de texto.

Descenso por gradiente

El modelo contiene miles de millones de parámetros. Cada parámetro influye un poco en las probabilidades finales. Para reducir la loss, necesitamos saber en qué dirección mover cada parámetro.

Eso hace el descenso por gradiente: calcula la pendiente de la loss con respecto a cada peso y da un pequeño paso cuesta abajo.

η (eta) es el learning rate: el tamaño del paso. Demasiado pequeño, casi no avanzamos. Demasiado grande, saltamos sobre el valle y divergimos.

Una precisión para evitar un malentendido: los valores de la demo están elegidos para que los regímenes se vean bien. El pre-entrenamiento de un LLM real ronda más bien 1e-4 a 6e-4, cien veces menos. Lo fiel son los regímenes, no las cifras.

Adam: el descenso, pero mejor

La ecuación Parámetros ← Parámetros − η × Gradiente describe el descenso de gradiente puro. En la práctica, nadie lo usa tal cual para entrenar un LLM.

El optimizador de referencia se llama Adam (y su variante moderna AdamW). La idea: en vez de avanzar a ciegas en la dirección del gradiente actual, mantenemos una memoria de la dirección media reciente (el momentum) y de la varianza de las actualizaciones para cada parámetro.

  • Los parámetros cuyo gradiente apunta sistemáticamente en la misma dirección dan pasos grandes.
  • Los que oscilan (gradiente ruidoso) dan pasos pequeños.

Adam se adapta así automáticamente a cada parámetro, mientras que SGD aplica el mismo learning rate a todos. Es más estable y converge mucho más rápido en la práctica. AdamW (la versión más usada) añade además una regularización llamada weight decay que evita que los pesos exploten a lo largo del entrenamiento.

AdamW sigue siendo la opción por defecto, la que se elige cuando no hay motivo para hacer otra cosa. Pero su monopolio se ha resquebrajado: desde 2025, el optimizador Muon ha servido para entrenar modelos de producción de primera línea (Kimi K2, GLM-4.5), y ya está integrado en las grandes bibliotecas de entrenamiento, entre ellas Megatron de NVIDIA.

Un optimizador no es un detalle de fontanería: es lo que decide a qué velocidad millones de euros en GPU se convierten en un modelo.

Backpropagation

La backpropagation permite repartir el error por todo el modelo.

Si la predicción final fue mala, no basta con ajustar la última capa. Hay que descubrir qué embeddings, heads de atención, capas feed-forward y normalizaciones contribuyeron al error. La regla de la cadena permite calcular esa responsabilidad, capa por capa, desde la salida hacia la entrada.

Escala

Un ejemplo de entrenamiento no enseña mucho. Diez millones tampoco bastan. Los LLM modernos aprenden con billones de tokens: de unos pocos billones a varias decenas de billones (Llama 3 vio 15 billones en 2024; Qwen3, 36 billones en 2025). La cifra sube en cada generación.

La escala cambia la naturaleza del aprendizaje:

  • los patrones frecuentes se estabilizan
  • los patrones raros aparecen suficientes veces para ser aprendidos
  • capacidades que no se programaron explícitamente emergen como consecuencia de la predicción

El modelo no memoriza cada frase. Comprime regularidades estadísticas en sus pesos.

Un detalle importante, porque sorprende: en pre-entrenamiento, la loss de validación casi nunca vuelve a subir. La razón es simple: el modelo ve billones de tokens únicos y no llega a completar una época entera, así que nunca tiene ocasión de aprenderse el corpus de memoria. El sobreajuste clásico — la loss de validación que repunta — es un escenario de fine-tuning, donde se repasa varias veces un conjunto pequeño de datos. El problema típico de un LLM pre-entrenado no es estar sobreentrenado, es estar subentrenado.

Volvemos a esto en detalle en el capítulo 19 (leyes de escalado de Kaplan y Chinchilla) — incluido por qué GPT-3 estaba subentrenado en datos y cuál es el ratio óptimo entre parámetros y tokens.

Batch size: cuántos ejemplos a la vez

Nunca calculamos el gradiente sobre un solo ejemplo. Agrupamos varias secuencias en un batch, calculamos el gradiente medio sobre todo el batch y solo entonces actualizamos los parámetros una vez.

Cuanto más grande es el batch, más estable es el gradiente (menos ruido) y mayor learning rate podemos permitirnos. Pero hace falta suficiente memoria GPU para guardarlo todo.

Para los LLM modernos, el batch size efectivo alcanza varios millones de tokens — normalmente combinando:

  • El batch local (por GPU) — limitado por la VRAM.
  • La gradient accumulation — calcular varios batches pequeños y aplicar la actualización solo al final.
  • El paralelismo de datos — repartir el batch entre decenas, cientos o a veces miles de GPUs.

Lo que los ingenieros llaman global batch size es la cantidad total de datos que contribuye a un solo paso de optimización. En GPT-4 hablamos de millones de tokens por paso. Y, normalmente, todo el corpus se recorre una o varias veces — cada pasada completa es una época.

Los datos: la mitad del trabajo

Se habla mucho de parámetros. Se habla menos de la preparación de datos — que se lleva en realidad la mitad del tiempo de cualquier equipo serio que entrene un modelo.

  • Filtrado — eliminar el contenido de baja calidad (spam, páginas de error 404, contenido autogenerado, listados de productos sin contexto).
  • Deduplicación — quitar duplicados. Common Crawl contiene muchas copias de las mismas páginas; dejarlas hace que el modelo aprenda de memoria en vez de generalizar.
  • Mezcla — equilibrar las fuentes (Wikipedia, libros, código, artículos científicos) según su valor pedagógico, no su tamaño bruto.
  • Filtrado de calidad — en los mejores equipos, un clasificador puntúa cada documento para conservar solo lo que parece contenido de manual o artículo bien documentado.
  • Descontaminación — comprobar que los benchmarks de evaluación (MMLU, HumanEval...) no se filtran en el corpus de entrenamiento.

El resumen brutal de un investigador de Meta: «pasamos el 10 % del tiempo entrenando el modelo y el 90 % preparando los datos.»

También por eso los mejores modelos abiertos (Llama, Mistral, DeepSeek) casi nunca revelan los detalles de su receta de datos: es su principal ventaja competitiva.

Lo siguiente

Una vez entrenado, el modelo sabe producir distribuciones útiles sobre el siguiente token. Pero generar una respuesta no es solo tomar siempre el máximo. Hay que decidir cuánto azar permitir.

Ese es el tema de la generación y el muestreo.

Actualizado el