English · Español
Fase 15 — Attention desde cero¶
Requiere: 13 — Embeddings y espacios de representación · 14 — Modelos de secuencia pre-transformer Enseña:
attention·scaled-dot-product·multi-head·causal-mask·query-key-valueSalta a cualquier capítulo desde el índice de referencia de fases.
Mapa del capítulo¶
Pre-escrita según A12; pivotada a gramática verbal del inglés según A13. Esta entrada de fase existe antes de que Borja empiece a estudiar. La teoría y los enunciados de los laboratorios son borradores estables; las soluciones se escriben justo a tiempo en la apertura de fase.
Attention es el truco central del transformer y, por extensión, de todo lo que llamamos "IA (AI) moderna". Esta fase deriva la ecuación \(\text{softmax}(QK^\top / \sqrt{d_k}) V\) desde primeros principios — no es una fórmula mágica, son tres proyecciones aprendibles y un producto escalar normalizado. Si esta fase aterriza, el resto del currículo se sostiene; si no, todo lo siguiente es magia.
Objetivo¶
Derivar attention de producto escalar escalado (scaled dot-product attention) desde primeros principios, implementar multi-head attention causal en NumPy y verificar contra una referencia derivada a mano. Al final de la Fase 15:
- Borja puede escribir la ecuación de attention de memoria.
- Borja puede explicar — concretamente — por qué cada pieza (Q, K, V, \(\sqrt{d_k}\), softmax, multi-head, máscara) existe.
src/minimodel/attention/existe, implementa multi-head attention causal en ~100 LOC de NumPy, y es la base para las Fases 17, 18, 22, 25, 27.
Esta es la fase de derivación central del currículo. Tómatela despacio. La profundidad aquí es intencionada — cinco archivos de teoría, cuatro archivos de laboratorio. Planifica 15–25 horas de estudio.
El ejemplo trabajado¶
A lo largo de la Fase 15, la secuencia corta canónica es sobre conjugaciones verbales en inglés:
El modelo tiene que predecir el token enmascarado (___). La respuesta correcta es works (concordancia de 3ª persona singular con he).
Una cabeza de attention entrenada idealmente responsable de la concordancia de persona debería producir una fila en la matriz de atención (attention) donde la posición de ___ atienda mayormente a he (el pronombre inmediatamente anterior), con peso menor en otros tokens. Este es el objetivo cualitativo que veremos — no en la Fase 15 en sí (modelo no entrenado = pesos aleatorios = atención aleatoria), sino en la Fase 18 después del entrenamiento. La Fase 15 construye el mecanismo; la Fase 18 hace que aprenda este patrón.
Orden de lectura¶
theory/00-motivation.md— para qué sirve attention. Enrutamiento de información. Por qué las RNN (Fase 14) fallaron. El patrón de "atención ideal" en nuestro ejemplo trabajado.theory/01-query-key-value.md— las tres proyecciones derivadas de una analogía de búsqueda en diccionario. Anclado en: pronombre-como-key, posición-de-verbo-como-query, forma-verbal-como-value.theory/02-scaled-dot-product.md— la derivación completa de \(\text{softmax}(QK^\top / \sqrt{d_k}) V\) con argumento de varianza y reescritura de estabilidad numérica. Léelo dos veces.theory/03-multi-head.md— la dimensión de cabeza; la visión de "múltiples especialistas"; por qué concatenación + proyección de salida. Ejemplo: una cabeza para concordancia de persona, una para tiempo, una para alineamiento inglés↔español.theory/04-masking.md— máscara causal (causal mask), máscara de padding; aditiva \(-\infty\) vs multiplicativa cero.lab/00-attention-by-hand.md— derivar un ejemplo de 2 tokens, 1 cabeza en papel; reproducir en NumPy.lab/01-multi-head-attention.md— extender a multi-head; verificar contra single-head cuando \(H = 1\). Visualizar el patrón de cada cabeza en el ejemplo canónico de 8 tokens.lab/02-causal-mask.md— añadir el enmascarado; verificar mediante perturbación que los tokens futuros no influyen en las salidas pasadas.lab/03-attention-perf.md— perfilar attention; identificar los regímenes memory-bound vs compute-bound; señalar la Fase 27 (Flash Attention) como trabajo futuro.
solutions/ está vacío durante la pre-escritura — se rellena en la apertura de fase, después de que las decisiones de API de la fase anterior de Borja sean visibles.
Definición de hecho (DoD)¶
Ver PHASE_15_PLAN.md §6. Brevemente:
src/minimodel/attention/attention.pyexiste con función single-head y claseMultiHeadAttention.- El ejemplo derivado a mano de 2 tokens coincide con la implementación NumPy a 1e-5.
- El test de corrección de máscara causal pasa (perturbar el futuro no cambia el pasado).
- Mapa de calor de atención en la secuencia canónica de 8 tokens comprometido (no entrenado — forma, no semántica).
/quiz 15aprobado a ≥ 80%.
Lo que esta fase intencionadamente NO cubre¶
- Comparación con PyTorch. Diferida a la Fase 25 según anti-objetivo §10. El "match PyTorch a 1e-5" del spec se satisface haciendo match contra una referencia derivada a mano.
- Flash Attention. Fase 27. La Fase 15 implementa la forma ingenua \(O(T^2)\) a propósito, para que el argumento de tráfico de memoria de la Fase 27 tenga un objetivo con el que comparar.
- Linear attention / Performer / Linformer. Fase 36 (arquitecturas de frontera) o nunca.
- Entrenar la capa de atención. Fase 18. La Fase 15 es solo forward + corrección.
- Cross-attention más allá de una nota de una línea. Sin encoder-decoder en este currículo.
- Atención cuantizada. Fase 26.
- Atención por ventana deslizante / local. Fuera de alcance; mencionado de pasada.
- Información de posición. Fase 16. La Fase 15 asume explícitamente que el embedding de entrada ya codifica la posición (o que la invariancia de posición está bien para los ejemplos de juguete).
- Visualización de patrones de atención entrenada en el ejemplo canónico. Fase 18 — una vez que tengamos un modelo entrenado, re-visualizamos y confirmamos que el patrón "la cabeza atiende a
heal predecirworks" emerge. La Fase 15 solo comprometo mapas de calor de atención aleatoria.
El alcance de la Fase 15 es scaled dot-product attention como mecanismo canónico — su derivación, su implementación NumPy, su corrección. Nada más. Todo lo demás es aguas abajo.
Lecturas recomendadas¶
Opcional — enriquece pero no es necesario para aprobar la fase.
- 📄 Attention Is All You Need — Vaswani et al. · 2017. el paper que toda esta fase deriva.
- ✍️ The Illustrated Transformer — Alammar · 2018. el complemento visual a la derivación.
- 📄 Neural Machine Translation by Jointly Learning to Align and Translate — Bahdanau et al. · 2014. attention antes de los transformers — la idea original.