Los transformadores (y la atención) son solo máquinas de adición elegantes

es un subcampo relativamente nuevo en la IA, centrado en comprender cómo las redes neuronales funcionan mediante la ingeniería inversa de sus mecanismos y representaciones internas, con el objetivo de traducirlas en algoritmos y conceptos de los humanos. Esto contrasta con y más allá de las técnicas de explicabilidad tradicionales como la bandeja y la lima.

Shap significa Mierdaceñe Aex dditivePAGLanaciones. Calcula la contribución de cada característica a la predicción del modelo, local y globalmente, es para un solo ejemplo, así como en todo el conjunto de datos. Esto permite que SHAP se use para determinar la importancia de la característica en general para el caso de uso. La cal, mientras tanto, funciona en un solo par de predicciones de ejemplo donde perturba la entrada de ejemplo y usa las perturbaciones y sus salidas para aproximar un sustituto más simple del modelo de caja negra. Como tal, ambos funcionan a nivel de características y nos dan alguna explicación y heurística para medir cómo cada entrada en el modelo afecta su predicción o salida.

Por otro lado, la interpretación mecanicista comprende las cosas a un nivel más granular, ya que es capaz de proporcionar una vía de cómo dicha característica es aprendida por diferentes neuronas en diferentes capas en la red neuronal, y cómo ese aprendizaje evoluciona sobre las capas en la red. Esto lo hace experto en trazar rutas dentro de la red para una característica particular y también Ver cómo esa característica afecta el resultado.

Bang y Lime, entonces, responde la pregunta “¿Qué característica contribuye más al resultado?” mientras que la interpretación mecanicista responde a la pregunta “¿Qué neuronas activan para qué característica y cómo evoluciona esa característica y afecta el resultado de la red?

Dado que la explicación en general es un problema con redes más profundas, este subcampo funciona principalmente con modelos más profundos como los transformadores. Hay algunos lugares donde la interpretabilidad mecanicista analiza los transformadores de manera diferente a la forma tradicional, uno de los cuales es atención múltiple. Como veremos, esta diferencia es volver a replantear las operaciones de multiplicación y concatenación como se define en el papel “La atención es todo lo que necesita” como operaciones de adición que abre una amplia gama de nuevas posibilidades.

Pero primero, un resumen de la arquitectura del transformador.

Arquitectura del transformador

Imagen del autor: Arquitectura del transformador

Estos son los tamaños con los que trabajamos:

  • Batch_size B = 1;
  • longitud de secuencia s = 20;
  • VOCAB_SIZE V = 50,000;
  • Hidden_dims d = 512;
  • cabezas h = 8

Esto significa que el número de dimensiones en los vectores Q, K, V es 512/8 (l) = 64. (En caso de que no recuerde, una analogía para comprender la consulta, la clave y el valor: la idea es que para un token en una posición dada (k), en función de su contexto (Q) queremos alinearse (volver a luz) a las posiciones que es relevante para (v)).

Estos son los pasos hasta el cálculo de atención en un transformador. (La forma de los tensores se supone como un ejemplo para una mejor comprensión. Los números en cursiva representan la dimensión a lo largo de la cual se multiplica la matriz).

Paso Operación Entrada 1 Dims (Forma) Entrada 2 DIMS (Forma) Salida Dims (Forma)
1 N / A B X S X V
(1 x 20 x 50,000)
N / A B X S X V
(1 x 20 x 50,000)
2 Obtener incrustaciones B X S X V
(1 x 20 x 50,000)
V x D
(50,000 x 512)
B X S X D
(1 x 20 x 512)
3 Agregar incrustaciones posicionales B X S X D
(1 x 20 x 512)
N / A B X S X D
(1 x 20 x 512)
4 Copiar incrustaciones a Q, K, V B X S X D
(1 x 20 x 512)
N / A B X S X D
(1 x 20 x 512)
5 Transformación lineal para cada cabeza H = 8 B X S X D
(1 x 20 x 512)
D x l
(512 incógnita 64)
Bxhxsxl
(1 x 1 x 20 x 64)
6 Producto de puntos escalado (q@k ‘) en cada cabeza Bxhxsxl
(1 x 1 x 20 x 64)
(LXSXHXB)
(64 x 20 x 1 x 1)
Bxhxsxs
(1 x 1 x 20 x 20)
7 Producto DOT escalado (cálculo de atención) Q@k’v en cada cabeza Bxhxsxs
(1 x 1 x 20 x 20)
Bxhxsxl
(1 x 1 x 20 x 64)
Bxhxsxl
(1 x 1 x 20 x 64)
8 Concat en todas las cabezas H = 8 Bxhxsxl
(1 x 1 x 20 x 64)
N / A B X S X D
(1 x 20 x 512)
9 Proyección lineal B X S X D
(1 x 20 x 512)
D x D
(512 x 512)
B X S X D
(1 x 20 x 512)
Vista tabular de las transformaciones de forma hacia el cálculo de atención en el transformador

La tabla explicada en detalle:

  1. Comenzamos con una oración de entrada de una longitud de secuencia de 20 que está codificada para representar palabras en el vocabulario presente en la secuencia. Forma (B x S x V): (1 x 20 x 50,000)
  2. Multiplicamos esta entrada con la matriz de incrustación de aprendizaje Wₑ de forma (V x D) para obtener los incrustaciones. Forma (B x S x D): (1 x 20 x 512)
  3. A continuación, se agrega una matriz de codificación posicional aprendida de la misma forma a los incrustaciones
  4. Las incrustaciones resultantes se copian a las matrices Q, K y V. Q, K y V cada una se dividen y se remodelan en el D dimensión. Forma (B x S x D): (1 x 20 x 512)
  5. Las matrices para Q, K y V se alimentan a una capa de transformación lineal que las multiplica con matrices de peso aprendibles cada una de forma (D x L) WQ, Wₖ y Wᵥ, respectivamente (una copia para cada una de las cabezas H = 8). Forma (b x h x s x l): (1 x 1 x 20 x 64) donde h = 1, ya que esta es la forma resultante para cada cabeza.
  6. A continuación, calculamos la atención con la atención del producto DOT escalado donde Q y K (transponidos) se multiplican primero en cada cabeza. Forma (b x h x s x l) x (l x s x h x b) → (b x h x s x s): (1 x 1 x 20 x 20).
  7. El siguiente paso de escala y enmascaramiento que me he omitido, ya que eso no es importante para comprender cuál es la forma diferente de ver a MHA. Entonces, a continuación multiplicamos QK con V para cada cabeza. Forma (b x h x s x s) x (b x h x s x l) → (b x h x s x l): (1 x 1 x 20 x 64)
  8. Concat: Aquí, concatenamos los resultados de la atención de todas las cabezas en la dimensión L para recuperar una forma de (b x s x d) → (1 x 20 x 512)
  9. Esta salida se proyecta linealmente una vez más utilizando otra matriz de peso aprendible wₒ de forma (d x d). Forma final que terminamos con (B x S x D): (1 x 20 x 512)

Reinvención de atención múltiple

Imagen del autor: Reimagining Multi-Head Attring

Ahora, veamos cómo el campo de la interpretación mecanicista mira esto, y también veremos por qué es matemáticamente equivalente. A la derecha en la imagen de arriba, ves el módulo que reinventa la atención de múltiples cabezas.

En lugar de concatenar la salida de atención, procedemos con la multiplicación “adentro” Las cabezas en sí misma donde ahora la forma de Wₒ es (L x D) y se multiplica con Qk’v de forma (B x H x S x L) para obtener el resultado de la forma (B x S x H x D): (1 x 20 x 1 x 512). Luego, sumamos la dimensión H para terminar nuevamente con la forma (B x S x D): (1 x 20 x 512).

De la tabla anterior, los dos últimos pasos son lo que cambia:

Paso Operación Entrada 1 Dims (Forma) Entrada 2 DIMS (Forma) Salida Dims (Forma)
8 Multiplicación matriz en cada cabeza H = 8 Bxhxsxl
(1 x 1 x 20 x 64)
L x D
(64 x 512)
Bxsxhxd
(1 x 20 x 1 x 512)
9 Suma sobre cabezas (dimensión H) Bxsxhxd
(1 x 20 x 1 x 512)
N / A B X S X D
(1 x 20 x 512)

Nota al margen: Esta “suma sobre” recuerda cómo ocurre la suma sobre diferentes canales en CNNS. En CNNS, cada filtro funciona en la entrada, y luego nosotros suma las salidas a través de los canales. Lo mismo aquí: cada cabeza puede verse como un canal, y el modelo aprende una matriz de peso para mapear la contribución de cada cabezal en el espacio de salida final.

Pero, ¿por qué es el proyecto + suma matemáticamente equivalente a Concat + proyecto? En resumen, debido a que los pesos de proyección en la perspectiva mecanicista son solo versiones en rodajas de los pesos en la vista tradicional (en rodajas a través de la D dimensión y dividido para que coincida con cada cabeza).

Imagen del autor: Por qué funciona la reimaginación

Centrémonos en las dimensiones H y D antes de la multiplicación con Wₒ. De la imagen de arriba, cada cabeza ahora tiene un vector de tamaño 64 que se multiplica con la matriz de peso de la forma (64 x 512). Denotemos el resultado de R y Head por h.

Para obtener R₁₁, tenemos esta ecuación:

R₁, ₁ = h₁, ₁ x wₒ₁, ₁ + h₁, ₂ x wₒ₂, ₁ +…. + h₁ₓ₆₄ x wₒ₆₄, ₁

Ahora, digamos que teníamos una cabeza concatenada para obtener una forma de salida de atención de (1 x 512) y la matriz de peso de forma (512, 512), entonces la ecuación habría sido:

R₁, ₁ = h₁, ₁ x wₒ₁, ₁ + h₁, ₂ x wₒ₂, ₁ +…. + H₁ₓ₅₁₂ x Wₒ₅₁₂

Entonces, la parte H₁ₓ₆x Wₒ₆₁ + … + h₁ₓ₅₁₂ x Wₒ₅₁₂₁ se habría agregado. Pero esta parte que se agrega es la parte que está presente en cada una de las otras cabezas de moda Modulo 64. Dijo de otra manera, si no hay concatenación, wₒ₆₁ es el valor detrás de Wₒ₁, ₁ en la segunda cabeza, Wₒ₁₂₉, ₁ es el valor detrás de Wₒ₁, ₁ en la tercera cabeza y así sucesivamente si imaginamos que los valores para cada cabeza se sientan una parte del otro. Por lo tanto, incluso sin concatenación, la operación de “sumar sobre los cabezales” da como resultado que se agregan los mismos valores.

En conclusión, esta idea sienta la base de ver a los transformadores como modelos puramente aditivos en que todas las operaciones en un transformador toman la incrustación inicial y se suman. Esta visión abre nuevas posibilidades como las características del rastreo como se aprenden a través de adiciones A través de las capas (llamadas rastreo de circuito), de lo que se trata la interpretabilidad mecanicista como se mostraré en mis próximos artículos.


Hemos demostrado que esta vista es matemáticamente equivalente a la visión muy diferente de que la atención de múltiples cabezas, al dividir Q, K, V, paraleliza y optimiza el cálculo de la atención. Lea más sobre esto en este blog aquí y el documento real que introduce estos puntos es aquí.