Atención y transformers
Lo esencial
- 1La atención es una búsqueda suave: cada palabra compara su consulta (Q) con las claves (K) de todas, convierte los parecidos en pesos que suman 1 con un softmax y se lleva el promedio ponderado de los valores (V): softmax(QKᵀ/√d)·V.
- 2Dividir por √d evita que el softmax se sature con vectores largos; la temperatura decide si la atención se concentra en una palabra o se reparte entre todas.
- 3En la autoatención, Q, K y V salen de la misma frase con capas lineales aprendidas, y varias cabezas miran con criterios distintos. Programada desde cero en PyTorch, da lo mismo que nn.MultiheadAttention.
- 4La atención no conoce el orden: hace falta sumar una codificación posicional. La máscara causal tapa el futuro con −∞ antes del softmax; con ella se arman los decodificadores, y sin ella, los codificadores.
- 5Un bloque transformer junta atención y un MLP, cada uno con LayerNorm y una conexión residual. Un transformer pequeño aprende en segundos a invertir dígitos, y su mapa de atención muestra la regla que descubrió.
- 6Un Vision Transformer corta la imagen en parches (con tensor.unfold), los trata como palabras y agrega un token [CLS] que resume la imagen.
En la teoría
- La pregunta
- Actividad: ¿a quién mira cada palabra?
- Leer palabra por palabra no alcanza
- La atención es una búsqueda suave
- La atención en PyTorch
- Autoatención con varias cabezas
- La máscara causal: no mirar el futuro
- ¿Dónde está cada palabra?
- El bloque transformer
- Codificador, decodificador y los dos juntos
- Un transformer de juguete: invertir dígitos
- Imágenes como frases: los parches
- Lo que aprendiste y lo que sigue
¿Terminaste este tema?
Márcalo y en la ruta verás cuánto llevas. Se guarda solo en este navegador.