Atlasingeniería

Aprendizaje automáticoRedes neuronalesTema 4

Secuencias, atención y transformers

Procesar texto palabra por palabra tiene dos problemas: es secuencial y olvida. La atención resuelve los dos mirando toda la secuencia a la vez y decidiendo a qué parte prestarle atención.

Para este tema conviene tener claro:Cómo funciona realmente la retropropagación

En una frase, el significado de una palabra depende de otras que pueden estar muy lejos. Los modelos que leían palabra por palabra arrastraban un resumen de lo anterior y lo iban perdiendo. La solución fue dejar de arrastrar y permitir mirar todo a la vez.

Las recurrentes y sus dos límites

Las redes recurrentes procesan la secuencia en orden, manteniendo un estado que se actualiza en cada paso. Es una idea natural y tiene dos límites duros.

El primero: como la información atraviesa un paso por cada elemento, el gradiente se multiplica muchas veces y se desvanece; las dependencias lejanas no se aprenden. LSTM y GRU lo mitigaron con compuertas que dejan pasar información sin alterarla. El segundo límite no tiene arreglo dentro del esquema: el cálculo es secuencial y no se puede paralelizar.

Antes de seguir, predecí

Un transformer sin codificación posicional. ¿Distingue «el perro mordió al hombre» de «el hombre mordió al perro»?

La atención invierte el planteo

La atención invierte el planteo. En vez de comprimir el pasado en un estado, se deja acceso a toda la secuencia y, para cada posición, se calcula cuánto mira a cada otra.

El mecanismo usa tres proyecciones de cada elemento: una consulta, una clave y un valor. La consulta de una posición se compara con las claves de todas —producto interno— y esas similitudes, normalizadas con softmax, son los pesos con que se promedian los valores. El camino entre dos posiciones cualesquiera pasó a ser de un solo paso.

La oración: «Ana guardó la llave en la caja porque era pesada». ¿Qué era pesada, la llave o la caja?

1 / 5
Cada fila suma 1: es una consulta repartiendo su atención entre todas las claves. La última fila es la interesante, porque ahí se ve que el modelo resolvió a qué sustantivo apunta el adjetivo.

El transformer, armado sobre eso

El transformer construye todo sobre eso. Bloques que alternan atención y una red densa, con conexiones residuales y normalización, repetidos muchas veces.

Como ya no hay recurrencia, todas las posiciones se procesan en paralelo, y eso es lo que permitió entrenar sobre cantidades de texto que antes eran impensables. La contrapartida es que la atención, por sí sola, no sabe el orden: hay que inyectarlo explícitamente con codificaciones de posición.

Varias cabezas, varias relaciones

La atención se usa con varias cabezas en paralelo: cada una aprende un tipo distinto de relación —sintáctica, de correferencia, de proximidad— y sus resultados se combinan.

Y hay una variante que define el comportamiento: la máscara causal. Si se impide que cada posición mire hacia adelante, el modelo sólo puede usar el pasado, y entonces puede entrenarse para predecir la próxima palabra. Eso es un modelo generativo de lenguaje; sin la máscara, el modelo ve todo el contexto y sirve para clasificar o extraer.

El costo cuadrático es el punto débil

El costo es el punto débil: comparar cada posición con todas es cuadrático en el largo de la secuencia. Duplicar el contexto cuadruplica el cálculo y la memoria.

Por eso la ventana de contexto es un límite tan citado, y por eso hay tanta investigación en atenciones aproximadas, dispersas o lineales, y en implementaciones que reducen el tráfico de memoria sin cambiar el resultado. En inferencia, la caché de claves y valores evita recalcular lo ya procesado al generar token por token.

No resultó ser específica del lenguaje

La arquitectura resultó no ser específica del lenguaje. Tratando una imagen como una secuencia de parches, funciona en visión; lo mismo con audio, series temporales, código o estructuras de proteínas.

Esa generalidad viene de que impone muy pocos supuestos sobre los datos: a diferencia de una convolucional, no asume localidad. Eso la hace flexible y también más hambrienta: sin muchísimos datos, los modelos con supuestos adecuados le siguen ganando.

Lo que la atención cuesta

RecurrenteTransformer
Camino entre dos posicionesproporcional a la distanciaun solo paso
Entrenamientosecuencialparalelo: por eso escaló
Costo por longitudlinealcuadrático
Memoria en inferenciaconstante: un estadocrece con el contexto
Secuencias muy largasaguanta, pero olvidano entra: hay que aproximar
El costo cuadrático es el precio de que todo mire a todo, y es la limitación central de la arquitectura: duplicar el contexto cuadruplica el cómputo de la atención.
Más a fondo · nivel seniorLas tres piezas que casi nadie explica

Además de la atención, un bloque de transformer tiene tres cosas sin las cuales no entrena, y las tres son el mismo tipo de problema: mantener las escalas bajo control.

La división por raíz de d dentro de la atención evita que los productos internos crezcan con la dimensión y saturen la softmax, que dejaría un gradiente casi nulo.

Las conexiones residuales le dan al gradiente un camino directo por decenas de bloques, igual que en las convolucionales profundas.

La normalización de capa estabiliza las escalas entre bloques, y su posición —antes o después del bloque— resultó importar: ponerla antes hace que los modelos grandes entrenen sin calentamiento y es lo que se usa hoy.

La atención es la idea; esas tres son las que hicieron que la idea se pudiera entrenar.

Cierre

Las recurrentes olvidan y no paralelizan; la atención da acceso directo a toda la secuencia con consultas, claves y valores. El transformer apila eso con residuales y posición explícita, escala cuadráticamente con el contexto y sirve para cualquier dominio a cambio de necesitar muchos datos.

Autoevaluación

¿Lo entendiste?

¿Cuáles eran los dos límites de las redes recurrentes?
¿Qué invierte la atención respecto de una recurrente?
El costo de la atención crece con el cuadrado de la longitud. ¿Por qué?
Si la atención mira todo a la vez, ¿cómo sabe el orden de las palabras?