En la capa de atención, los vectores Q, K y V se utilizan para calcular una puntuación de alineación entre cada token en cada posición de una secuencia. Esas puntuaciones de alineación se normalizan en pesos de atención mediante una función softmax.
Para cada token x en una secuencia, las puntuaciones de alineación se calculan calculando el producto escalar del vector de consulta Q x de ese token con el vector clave K de cada uno de los otros tokens: en otras palabras, multiplicándolos entre sí. Si una relación significativa entre 2 tokens se refleja en similitudes entre sus respectivos vectores, multiplicarlos arrojará un gran valor. Si los 2 vectores no están alineados, multiplicarlos arrojará un valor pequeño o negativo. La mayoría de los modelos de transformadores utilizan una variante llamada atención de producto escalado , en la que QK se escala, es decir, se multiplica, por para mejorar la estabilidad del entrenamiento.
Estas puntuaciones de alineación de claves de consulta se escriben en una función softmax. Softmax normaliza todas las entradas a un valor entre 0 y 1, de modo que todas sumen 1. Los resultados de la función softmax son los pesos de atención, cada uno de los cuales representa la Compartir (de 1) de la atención del token xque se debe prestar a cada uno de los otros tokens. Si el peso de atención de un token es cercano a 0, se ignorará. Un peso de atención de 1 significaría que un token recibe toda la atención de x y todos los demás serán ignorados.
Finalmente, el vector de valor de cada token se multiplica por su peso de atención. Estas contribuciones ponderadas por atención de cada token anterior se promedian juntas y se agregan a la incrustación vectorial original para el token x. Con esto, la incrustación del token xahora se actualiza para reflejar el contexto proporcionado por los otros tokens en la secuencia que son relevantes para él.
La incrustación vectorial actualizada se envía a otra capa lineal, con su propia matriz depeso WZ, donde el vector actualizado por contexto se normaliza de nuevo a un número constante de dimensiones y luego se envía a la siguiente capa de atención. Cada capa de atención progresiva captura mayores matices contextuales.