Clase 04 — Atención y Transformers
Aquí no hay matrices de adorno: \(Q\), \(K\), \(V\), los puntajes, el softmax y la mezcla se calculan de verdad a partir de las matrices que puedes editar. Los valores por defecto reproducen, número a número, los ejemplos trabajados del apunte.
Tres tokens, embeddings de dimensión 2. Todas las casillas son editables. Los valores de fábrica son los del ejemplo trabajado 4.2.6 del apunte, así que puedes comprobar cada número contra el texto.
Si \(q\) y \(k\) tienen componentes independientes de varianza 1, el producto punto \(q\cdot k\) tiene varianza \(d_k\): crece con la dimensión. Puntajes grandes empujan al softmax hacia un one-hot, donde su gradiente es casi cero — y el modelo deja de aprender. Dividir por \(\sqrt{d_k}\) devuelve la varianza a 1.
Distribución de atención sobre 8 llaves con puntajes aleatorios típicos de esa \(d_k\). Sin escalar, una sola llave se lo lleva todo y las demás quedan en cero: gradiente nulo para todas ellas.
Cada cabeza tiene sus propias \(W_Q, W_K, W_V\), así que aprende un patrón de atención distinto sobre la misma frase. Los arcos salen de la matriz de pesos real: el grosor y la opacidad son proporcionales a \(\alpha_{ij}\). patrones ilustrativos — en un modelo real estos roles emergen del entrenamiento y rara vez son tan limpios.
Los arcos van desde el token que consulta hacia el token atendido. Pasa el ratón por la matriz de la derecha para resaltar una fila.
\( PE_{(pos,2i)} = \sin\!\left(\frac{pos}{10000^{2i/d}}\right), \quad PE_{(pos,2i+1)} = \cos\!\left(\frac{pos}{10000^{2i/d}}\right) \)
Una fila por posición, una columna por dimensión. Las columnas de la izquierda (alta frecuencia) cambian en cada paso: distinguen vecinos. Las de la derecha (baja frecuencia) apenas se mueven: distinguen regiones lejanas.
Similitud \(PE_{pos} \cdot PE_{pos+\Delta}\) en función de la separación \(\Delta\): decae de forma suave y solo depende de la distancia, no de la posición absoluta. Esa es la propiedad que permite al modelo razonar sobre "hace tres palabras".
| Vector | dim 0 | dim 1 | dim 2 | dim 3 | Comentario |
|---|
Los ocho pasos del apéndice de la Clase 4, ejecutados de verdad con \(d_{model} = 3\) y un vocabulario de 8 palabras. Cambia el país y observa lo que no cambia: la fila de atención es idéntica. Lo que cambia es el contenido que viaja.
Distribución final sobre el vocabulario de 8 palabras. Las seis palabras "resto" comparten el mismo vector de salida nulo, así que reciben todas el mismo logit 0.
- En la 1, activa la máscara causal: la fila del token 1 pasa a ser (1, 0, 0) — sin nada que mirar salvo a sí mismo, el softmax no tiene elección.
- Desactiva el escalado por \(\sqrt{d_k}\) con el preset "puntajes grandes": el softmax colapsa a one-hot y el gradiente se apaga.
- Pon \(W_K = W_Q\) (preset 2): la diagonal domina y cada token se mira a sí mismo. Las proyecciones aprendidas existen para poder romper eso.
- En la 4, arrastra la identidad del país hasta 0: el modelo queda genuinamente indeciso entre París y Roma, ambas con la misma probabilidad.
- En la 4, pon la identidad en −0.90 y compara: \(p(\text{Roma}) \approx 0.34\), no 0.38. La asimetría es real y el apunte explica por qué.