Cómo un modelo decide en qué fijarse.

SRC·01 Source
Todo el truco: cada palabra puede mirar a todas las demás.

Todo el truco: cada palabra puede mirar a todas las demás.

Tú lees una frase palabra por palabra. Un modelo no: suelta todas las palabras sobre la mesa de golpe y deja que cada una pregunte al resto, ¿quién de aquí me importa? Ese único gesto es la atención, y es el motor de casi todo: chat, código, imágenes. Lo demás es solo cómo pregunta cada palabra.
Una palabra no significa nada por sí sola: solo en contexto.

Una palabra no significa nada por sí sola: solo en contexto.

“Banco”: ¿de río o de dinero? Imposible saberlo solo con la palabra. El modelo guarda cada palabra como un vector que es un borrón de todos los significados que ha tenido; para elegir el que toca, mira a sus vecinas. Como en una fiesta a todo volumen: no oyes cien voces por igual; sintonizas la que importa y dejas que el resto se vuelva ruido.
Cada palabra lanza tres cosas: un deseo, una oferta y una entrega.

Cada palabra lanza tres cosas: un deseo, una oferta y una entrega.

Q=xWQ,K=xWK,V=xWVQ = xW_Q,\quad K = xW_K,\quad V = xW_V
Query = lo que busco. Key = de qué voy. Value = lo que te entrego si me eliges. Una barra de búsqueda, las etiquetas de las estanterías y lo que de verdad hay en la caja. Cada palabra rastrea la sala con su Query y lee las Key de todas las demás. Como una bandada de estorninos: ningún pájaro sigue al grupo entero; cada uno solo lee a sus vecinos y se mueve.
¿Cuánto debería importarle B a A? Multiplica sus vectores.

¿Cuánto debería importarle B a A? Multiplica sus vectores.

scores=QK\text{scores} = QK^{\top}
Coge la Query de A y la Key de B y multiplícalas: un producto escalar, un solo número, grande cuando encajan. Hazlo con cada par y luego aplica softmax a cada fila para que las puntuaciones se vuelvan pesos que suman 1: un presupuesto de foco fijo que cada palabra reparte. Como un único foco de escenario: 80% sobre la protagonista, una pizca sobre otras dos y nada sobre el resto.
Un detalle: divide entre √d, o se atraganta.

Un detalle: divide entre √d, o se atraganta.

weights=softmax ⁣(QKd)\text{weights} = \mathrm{softmax}\!\left(\dfrac{QK^{\top}}{\sqrt{d}}\right)
Los vectores largos hacen esos productos escalares enormes, y el softmax de números enormes salta al todo o nada: un peso ≈ 1 y el resto ≈ 0. Eso aplana el gradiente y el aprendizaje se estanca. El arreglo es casi demasiado simple: encoge antes entre √d. Como un altavoz forzado más allá de su límite: no suena más fuerte, distorsiona. Baja la ganancia y el detalle vuelve.
El nuevo significado de una palabra es la mezcla de aquello a lo que prestó atención.

El nuevo significado de una palabra es la mezcla de aquello a lo que prestó atención.

Attention(Q,K,V)=softmax ⁣(QKd)V\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\!\left(\dfrac{QK^{\top}}{\sqrt{d}}\right)V
Gasta el foco: pondera la Value de cada palabra según cuánta atención recibió y súmalas. Ahora la palabra ya no es solo ella misma: es una mezcla de las palabras que le importaron. “banco” junto a “río” es algo distinto de “banco” junto a “dinero”. La línea de abajo es el Transformer: no un dibujo de él, la cosa en sí. Como mezclar pintura: varios pigmentos arrastrados hasta el color exacto que pide la pincelada.
Todo pasa a la vez, y la atención no tiene ni idea del orden de las cosas.

Todo pasa a la vez, y la atención no tiene ni idea del orden de las cosas.

Uno: cada Query choca con cada Key en una sola multiplicación de matrices, masivamente en paralelo, que es justo por lo que esta arquitectura devora GPUs y por lo que la escala despegó. Dos: baraja las palabras y la matemática devuelve la misma respuesta. La atención ve una bolsa de palabras, no una secuencia; el orden se grapa aparte. Como un puzle volcado: todas las piezas, sin orden; lo único que le permite distinguir “el perro muerde al hombre” de “el hombre muerde al perro” es una minúscula coordenada escrita antes en cada pieza.
🌱 Si lee una bolsa de palabras con coordenadas pinchadas encima, ¿el modelo de verdad está <em>leyendo</em>?

🌱 Si lee una bolsa de palabras con coordenadas pinchadas encima, ¿el modelo de verdad está leyendo?

Tú avanzas por una frase en orden, cada palabra tirando de ti hacia la siguiente. Un Transformer ve todo de golpe y reconstruye el orden a partir de una etiqueta de posición. Ese es el superpoder: la palabra 1 puede hablar con la palabra 1,000 tan fácilmente como con la palabra 2. También es la grieta: nada por dentro exige orden, así que cuanto más largo es el texto, más peso tiene que cargar ese pequeño sentido del lugar pegado a posteriori. Y si el orden es lo único que la atención no puede sentir por sí sola, quizá el próximo salto no sea un modelo más grande. Sea una forma mejor de decirle dónde está.
toca →desliza ↑ para másdesliza ↓ para salir