English · Español
01 — Scaling Laws¶
🇪🇸 Las scaling laws (scaling laws, leyes de escala) son la única herramienta cuantitativa que tenemos para decidir, antes de gastar $1M, qué forma debe tener el modelo. Chinchilla (Hoffmann 2022) reemplazó la regla anterior de Kaplan 2020 con un consejo simple: por cada parámetro, ~20 tokens de entrenamiento. Sub-entrenar es caro; sobre-entrenar es caro; el óptimo es estrecho.
Una scaling law es una curva ajustada que predice la calidad del modelo (típicamente loss de validación) a partir de cómputo, número de parámetros o tokens de entrenamiento. El campo ha convergido en un pequeño conjunto de ajustes canónicos.
La primitiva de cómputo: \(C \approx 6 N D\)¶
Para un transformer denso entrenado con el bucle estándar forward+backward+actualización-del-optimizador:
donde \(C\) es FLOPs totales de entrenamiento, \(N\) es el número de parámetros no-embedding, \(D\) son tokens de entrenamiento. (Kaplan et al. 2020, eq. 2.1; reproducido por Hoffmann 2022.)
Esbozo de la derivación: - Forward pass: \(\approx 2ND\) FLOPs (un multiply + un add por parámetro por token). - Backward pass: \(\approx 4ND\) FLOPs (dos pasadas equivalentes a forward). - Suma: \(6ND\).
Esto excluye el término \(O(L^2)\) de la atención, que importa para modelos de contexto largo. Para \(L \lesssim 2048\) y el típico \(N \gtrsim 100\text{M}\), la aproximación \(6ND\) queda dentro del ~5%. Para \(L = 32\text{k}+\) a \(N\) pequeño, puede desviarse un 30%.
Kaplan 2020: la primera scaling law¶
Kaplan et al. (OpenAI, 2020, "Scaling Laws for Neural Language Models") ajustaron:
con \(\alpha_N \approx 0.076\), \(\alpha_D \approx 0.095\), y escalas críticas ajustadas \(N_c, D_c\). Su ratio compute-óptimo predicho:
GPT-3 (175B parámetros) se entrenó sobre ~300B tokens (Brown et al. 2020) — ratio ≈ 1.7. La receta de Kaplan.
Esto estaba equivocado. O, más precisamente: los experimentos de Kaplan fijaron el step terminal del schedule de learning rate en el lugar equivocado, y el ajuste estaba sistemáticamente sesgado hacia "hacer \(N\) más grande" porque sus corridas estaban sub-entrenadas en el extremo de \(N\) alto. El error no se detectó durante 2 años.
Chinchilla (Hoffmann 2022): la corrección¶
Hoffmann et al. (DeepMind, 2022, "Training Compute-Optimal Large Language Models") repitieron el experimento con tres enfoques (perfiles IsoFLOP, ajuste de loss paramétrico, barridos de tamaño-de-modelo-fijo) y obtuvieron respuestas consistentes:
Es decir, el modelo compute-óptimo para presupuesto \(C\) tiene:
con la consecuencia \(D_\text{opt} \approx 20 \cdot N_\text{opt}\).
Lo demostraron entrenando Chinchilla (70B parámetros, 1.4T tokens) vs Gopher (280B parámetros, 300B tokens). Mismo cómputo. Chinchilla venció a Gopher en todos los ámbitos. El ratio es 1.4T / 70B = 20.
Ajuste paramétrico de Hoffmann:
con constantes ajustadas \(E = 1.69\), \(A = 406.4\), \(B = 410.7\), \(\alpha = 0.34\), \(\beta = 0.28\). La constante \(E\) es el loss irreducible (la entropía de los datos, módulo tokenización).
La regla 20:1 y su ruptura¶
El número titular es:
Régimen sub-entrenado (\(D < 20 N\)): - Los modelos estilo Kaplan (GPT-3 con \(D/N \approx 1.7\)) dejan rendimiento sobre la mesa. - El token marginal vale más que el parámetro marginal. - Este es el régimen en el que estuvieron casi todos los modelos de producción frontera en 2020–2022.
Régimen sobre-entrenado (\(D > 20 N\)): - Llama-2 7B entrenado sobre 2T tokens (\(D/N \approx 286\)). - Llama-3 8B entrenado sobre 15T tokens (\(D/N \approx 1875\)). - El rendimiento sigue mejorando pero con rendimientos decrecientes. - ¿Por qué hacerlo? Porque el coste de inferencia domina al coste de entrenamiento para cualquier modelo que se entregue. Más-pequeño-pero-sobre-entrenado es más barato de servir que más-grande-pero-compute-óptimo. La economía se invierte pasados los ~1B tokens de inferencia servidos.
Este es el óptimo "consciente de la inferencia": entrena un modelo más pequeño sobre más datos si esperas tráfico de inferencia intenso. Sardana & Frankle 2023 ("Beyond Chinchilla-Optimal") lo formalizan.
La calidad de los datos domina pasado Chinchilla¶
Pasado el ratio 20:1, el término dominante en la siguiente reducción de loss no son más tokens — son mejores tokens.
Evidencia: FineWeb-Edu (Penedo et al. 2024, HuggingFace) filtra CommonCrawl con un clasificador LLM que puntúa el "valor educativo". Un modelo de 1.8B parámetros entrenado sobre 350B tokens de FineWeb-Edu vence al mismo modelo entrenado sobre 1T tokens de CommonCrawl crudo en benchmarks de conocimiento (MMLU, ARC) por ~5 puntos porcentuales.
La scaling law de calidad de datos (informal): doblar la calidad de los datos vale ~3-5× más datos crudos, hasta cierto punto. Pasado ese punto, el clasificador LLM se convierte en fuente de sesgo.
Implicación para X1: el lab usa shards de FineWeb-Edu (o Pile-CC como fallback), no CommonCrawl crudo. El modelo de 50M parámetros sobre 5B tokens de FineWeb-Edu llega a val-loss más baja que 50M sobre 5B tokens de CommonCrawl crudo; el gap es medible y reproducible.
Citas: los números detrás del titular¶
| Modelo | Parámetros (N) | Tokens (D) | D/N | Fuente |
|---|---|---|---|---|
| GPT-3 | 175B | 300B | 1.7 | Brown 2020, Tabla 2.1 |
| Gopher | 280B | 300B | 1.1 | Rae 2021, §2 |
| Chinchilla | 70B | 1.4T | 20 | Hoffmann 2022, Tabla 4 |
| LLaMA-1 7B | 6.7B | 1.0T | 149 | Touvron 2023a, Tabla 1 |
| Llama-2 7B | 6.7B | 2.0T | 298 | Touvron 2023b, Tabla 1 |
| Llama-3 8B | 8.0B | 15.0T | 1875 | Meta 2024 (model card) |
| Falcon-180B | 180B | 3.5T | 19 | Almazrouei 2023, Tabla 1 |
| OLMo-7B | 7B | 2.5T | 357 | Groeneveld 2024, Tabla 1 |
| Pythia-12B | 12B | 300B | 25 | Biderman 2023, Tabla 1 |
| Mistral-7B | 7.3B | ~8T (est.) | ~1100 | Jiang 2023 (D no confirmado) |
La tendencia: los modelos de la era 2020 estaban sub-entrenados (D/N < 5). Chinchilla en 2022 mostró el óptimo (D/N ≈ 20). Los modelos frontera post-2023 están deliberadamente sobre-entrenados (D/N de 150 a 1900) porque la economía de inferencia importa más que la economía de entrenamiento para productos en producción.
Qué hacer con la ley¶
Dado un presupuesto \(C\) (FLOPs que te puedes permitir):
- Calcula \(N_\text{opt} \approx 0.6 \cdot (C/6)^{0.5}\), \(D_\text{opt} \approx 1.7 \cdot (C/6)^{0.5}\).
- Si planeas servir >\(N_\text{opt} \cdot 10^9\) tokens de inferencia, reduce \(N\) por 2-4× y escala \(D\) para preservar \(C\) — ahorrarás coste de inferencia.
- Si tienes un tamaño de dataset fijo \(D\) (p. ej. todo el Pile de alta calidad = ~825GB ≈ 200B tokens), elige el mayor \(N\) con \(D \geq 20 N\): \(N_\text{max} = D / 20\).
- Reserva siempre ~10% de \(C\) para una re-corrida de ablación si el primer lanzamiento tiene un bug recuperable.
Ejemplo desarrollado: los números del lab de X1¶
El lab 00 entrena 50M parámetros durante 24h en 1× A100 80GB a ~150 TFLOP/s sostenidos (bf16, MFU ~0.40 del pico de 312 TFLOP/s bf16 del A100).
- Throughput sostenido: \(1.5 \times 10^{14}\) FLOP/s × \(8.64 \times 10^4\) s ≈ \(1.3 \times 10^{19}\) FLOP por 24 h.
- Con \(C = 6 N D\), dado \(N = 5 \times 10^7\): \(D = C / (6 N) = 1.3 \times 10^{19} / (6 \times 5 \times 10^7) \approx 4.3 \times 10^{10}\) tokens ≈ 43B tokens.
- Eso es \(D/N \approx 860\) — deliberadamente sobre-entrenado, coincidiendo con la receta moderna de modelos pequeños.
- El óptimo Chinchilla para \(C = 1.3 \times 10^{19}\) sería \(N \approx 230M\), \(D \approx 4.6B\). En su lugar entrenamos un 50M durante 24h, alcanzando un régimen sobre-entrenado de 4-5× que refleja el ratio de Llama-3-8B a escala de juguete.
El lab luego verifica el val-loss predicho contra el ajuste de Hoffmann con \(E=1.69\), \(A=406.4\), \(\alpha=0.34\), \(B=410.7\), \(\beta=0.28\):
≈ \(1.69 + 1.15 + 0.51 \approx 3.35\) nats/token.
Esta es la predicción contra la que el lab compara. Una corrida que aterriza dentro de ±0.15 de 3.35 es un ajuste exitoso. Una desviación >0.4 es un bug.
Siguiente: theory/02-cluster-economics.md.