English · Español
Fase 17 — Bloque transformer minúsculo y Mini-GPT¶
Requiere: 10 — Inicialización, normalización, residuales · 15 — Attention desde cero · 16 — Codificaciones posicionales Enseña:
transformer-block·pre-ln·ffn·gelu·tied-embeddings·lm-headSalta a cualquier capítulo desde el índice de referencia de fases.
Mapa del capítulo¶
🇪🇸 Aquí se ensambla todo. Embedding (13) + RoPE (16) + multi-head attention (15) + FFN + LayerNorm + residual = un bloque transformer. Apilas dos, pones cabeza LM atada, y tienes un Mini-GPT. No se entrena. Sólo se ensambla, se cuentan los parámetros uno a uno y se verifica el forward contra una referencia hecha a mano. Entrenamiento: Fase 18.
Anclajes: LYNX_CORTEX.md §4 / PHASE 17, PHASE_17_PLAN.md, LYNX_CORTEX_ADDENDUM.md §A13 (alcance de gramática verbal).
Por qué existe esta fase¶
Las fases 13–16 construyeron las piezas: embeddings, líneas base de modelos de secuencia, multi-head attention, codificaciones posicionales. La Fase 17 las pega en el objeto más pequeño que es reconociblemente un modelo de lenguaje: el bloque transformer Pre-LN, apilado dos veces, con una cabeza LM atada encima. El objetivo es el mecanismo, no la capacidad: cada operación, cada forma, cada parámetro contabilizado. El entrenamiento es la fase siguiente; el muestreo está cuatro fases más adelante. El entregable es una clase NumPy cuyo paso forward (forward pass) se ejecuta de extremo a extremo sobre la secuencia canónica de 8 tokens de gramática verbal y cuyo conteo de parámetros coincide con una fórmula cerrada hasta el último dígito.
Qué vas a construir¶
Una clase MiniGPT(d_model=64, n_heads=4, n_layers=2, d_ff=256, vocab_size=64) compuesta por:
LayerNorm(implementación propia, compatible con autograd mediante los tensores de la Fase 8)FFN(dos capas lineales con GELU)TransformerBlock(Pre-LN: LN → MHA → +res → LN → FFN → +res)- Bloques apilados + LN final + cabeza LM atada (\(\text{logits} = h \cdot E^\top\))
Conteo total de parámetros para la configuración bloqueada: 103.680 parámetros (~103k), derivado en el lab 02.
Archivos¶
phase-17-mini-gpt/
├── README.md # este archivo
├── theory/
│ ├── 00-motivation.md # por qué pegar ahora, qué es el residual stream
│ ├── 01-transformer-block.md # anatomía del bloque Pre-LN, el residual stream
│ ├── 02-ffn-and-activations.md # por qué existe FFN, GELU, la proporción 4×
│ └── 03-tied-embeddings-and-lm-head.md # pesos atados, el softmax final
├── lab/
│ ├── 00-block-by-hand.md # un bloque forward en un juguete de 2 tokens, d_model=4
│ ├── 01-assemble-mini-gpt.md # MiniGPT completo forward sobre secuencia de 8 tokens verbales
│ ├── 02-parameter-inventory.md # cuenta parámetros capa por capa; cuadra con la fórmula
│ └── 03-causality-perturbation.md # verifica que la máscara causal se sostiene de extremo a extremo
├── solutions/ # se rellena al abrir la fase; NO leer primero
├── notebooks/
└── diagrams/ # diagrama del bloque, barra apilada de parámetros, traza de formas
Qué NO cubre esta fase¶
- Entrenamiento. Fase 18. Sin pérdida, sin optimizador, sin paso de gradiente en la Fase 17.
- Muestreo / generación. Fase 21. La Fase 17 produce logits; no elige un token.
- KV cache. Fase 22. Cada forward en la Fase 17 recomputa desde cero.
- Dropout / inicialización de pesos más allá de gaussiana simple. Fase 18.
- Comprobación cruzada con PyTorch. Fase 25 — la Fase 17 es NumPy puro + el autograd de la Fase 8.
- Precisión mixta / fp16 / bf16. Fase 23+. Mini-GPT es fp32 de principio a fin.
- Derivación de Pre-LN más allá de un párrafo. Pre-LN está bloqueado. Post-LN es una nota a pie.
Lista de comprobación al abrir la fase (según CLAUDE.md §1)¶
- Releer
PHASE_17_PLAN.md§§0–8. - Releer
LYNX_CORTEX.md§4 / PHASE 17 (líneas 472–484) y §A13. - Confirmar que el lab 03 de la Fase 16 resolvió RoPE vs sinusoidal — la Fase 17 hereda esa decisión.
- Abrir
src/minimodel/BLUEPRINT.md§4 (transformer) y pedir revisión antes de cualquier archivo.py. - Leer primero
theory/00-motivation.md; no saltar al lab.
Siguiente: theory/00-motivation.md
Lecturas recomendadas¶
Opcional — enriquece pero no es necesario para aprobar la fase.
- 📄 Language Models are Unsupervised Multitask Learners (GPT-2) — Radford et al. · 2019. la arquitectura decoder-only que ensamblas.
- 💻 nanoGPT — Karpathy · 2022. un GPT mínimo y legible con el que comparar.