Tema
Transformador
- Aprendizaje profundo
- Nivel avanzado
El transformador apila bloques formados por atención de varias cabezas, una red densa por posición, conexiones de salto y normalización por capas, sin ninguna recurrencia.
Nombre en inglés
Transformer
Intuición
Al quitar la recurrencia, todas las posiciones se procesan a la vez y el entrenamiento aprovecha el paralelismo, mientras que la distancia entre dos posiciones deja de pesar porque la atención las conecta en un solo salto. El precio es que el coste crece con el cuadrado de la longitud y que el modelo pierde el orden, motivo por el cual se suma una codificación de posición. Varias cabezas permiten mirar relaciones distintas a la vez, como la concordancia por un lado y la referencia por otro.
Fórmula
\mathrm{MHA}(X) = \mathrm{Concat}(cab_1, \dots, cab_h) W^O \qquad cab_i = \mathrm{Atencion}(X W_i^Q, X W_i^K, X W_i^V) \qquad \text{coste } O(n^2 d)
Ejemplo resuelto
Un bloque con dimensión 512 y 8 cabezas reparte 64 dimensiones por cabeza. Las cuatro proyecciones de consulta, clave, valor y salida suman 4 por 512 por 512 = 1048576 pesos. La red densa por posición, con dimensión interna 2048, suma 2 por 512 por 2048 = 2097152 pesos. El bloque completo ronda los 3.15 millones de parámetros sin contar sesgos ni normalizaciones, de manera que doce bloques rondan los 38 millones. En cuanto al coste de la atención, una secuencia de 1000 posiciones obliga a calcular un millón de puntuaciones por cabeza, y duplicar la longitud multiplica ese número por cuatro.
Errores frecuentes
- Sumar la codificación de posición después de la atención en lugar de antes, con lo que la primera capa trabaja sobre un conjunto sin orden.
- Aumentar el número de cabezas sin reducir la dimensión de cada una, lo que multiplica el coste en vez de repartirlo.
- Colocar la normalización por capas solo detrás del bloque en redes muy profundas, disposición que exige un calentamiento cuidadoso de la tasa; ponerla delante del bloque estabiliza el entrenamiento.
Ejercicio
Un transformador con dimensión 256 usa 4 cabezas. ¿Cuántas dimensiones corresponden a la clave de cada cabeza y cuántas puntuaciones calcula una cabeza sobre una secuencia de 100 posiciones?
Ver la solución
La dimensión se reparte por igual entre las cabezas, de modo que cada una recibe 256 dividido entre 4, es decir, 64 dimensiones. Las puntuaciones forman una matriz de 100 por 100, es decir, 10000 valores por cabeza.
Respuesta: 64 dimensiones y 10000 puntuaciones
Temas relacionados
- Atención
- Redes recurrentes y memoria larga y corta
- El transformador para lenguaje
- Normalización por lotes