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. A continuación, esas puntuaciones de alineación se normalizan en ponderaciones de atención mediante una función softmax.
Para cada token x en una secuencia, las puntuaciones de alineación se obtienen calculando el producto escalar del vector de consulta Qx de ese token con el vector clave K de cada uno de los demás tokens: en otras palabras, multiplicándolos. Si una relación significativa entre dos tokens se refleja en las similitudes entre sus respectivos vectores, al multiplicarlos se obtiene un valor grande. Si los dos vectores no están alineados, al multiplicarlos se obtiene un valor pequeño o negativo. La mayoría de los modelos de transformadores utilizan una variante llamada atención al producto de puntos escalados, 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 introducen en una función softmax. Softmax normaliza todas las entradas a un valor entre 0 y 1, de modo que todas sumen 1. Las salidas de la función softmax son las ponderaciones de atención, cada una representa la parte (de 1) de la atención del token x que se debe prestar a cada uno de los otros tokens. Si la ponderación de atención de un token es cercano a 0, se ignorará. Una pondración 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.
Por último, el vector de valor de cada token se multiplica por su ponderación de atención. Estas contribuciones ponderadas por la atención de cada token anterior se promedian juntas y se suman a la incrustación vectorial original del token x. Con esto, la incrustación del token x se ha actualizado para reflejar el contexto que proporcionan los demás tokens de la secuencia que le son relevantes.
A continuación, la incrustación de vectores actualizada se envía a otra capa lineal, con su propia matriz de peso WZ, donde el vector actualizado al contexto se normaliza a un número constante de dimensiones y, después, se envía a la siguiente capa de atención. Cada capa de atención progresiva capta mayores matices contextuales.