Entonces, sin más demora, profundicemos en los detalles detrás del mecanismo de autoatención y desentrañemos el funcionamiento que hay detrás de él. El Módulo de clave de consulta y el Softmax función juega un papel crucial en esta técnica.
Esta discusión se basa en la maravillosa serie AI by Hand del Prof. Tom Yeh sobre Autoatención. (Todas las imágenes a continuación, a menos que se indique lo contrario, son del profesor Tom Yeh de la publicación de LinkedIn mencionada anteriormente, que edité con su permiso).
Así que, aquí vamos:
Para crear algo de contexto aquí, aquí hay un indicador de cómo procesamos el ‘Ponderación de la atención’ en el transformador Concha exterior.
Matriz de ponderación de atención (A)
La matriz de ponderación de la atención. A se obtiene alimentando las características de entrada en el módulo Query-Key (QK). Esta matriz intenta encontrar las partes más relevantes en la secuencia de entrada. La autoatención entra en juego al crear la matriz de ponderación de atención A utilizando el módulo QK.
¿Cómo funciona el módulo QK?
Veamos los diferentes componentes de la Autoatención: Consulta (Q), Clave (K) y Valor (V).
Me encanta usar la analogía del foco aquí, ya que me ayuda a visualizar el modelo arrojando luz sobre cada elemento de la secuencia y tratando de encontrar las partes más relevantes. Llevando esta analogía un poco más allá, usémosla para comprender los diferentes componentes de la Autoatención.
Imagínese un gran escenario preparándose para la producción de Macbeth más grande del mundo. El público exterior está lleno de emoción.
- El actor principal sube al escenario, los reflectores lo iluminan y pregunta con su voz atronadora: “¿Debería apoderarme de la corona?”. El público susurra en voz baja y se pregunta a qué camino conducirá esta pregunta. Así, el propio Macbeth representa el papel de Consulta (Q) mientras hace preguntas fundamentales e impulsa la historia.
- Según la pregunta de Macbeth, la atención se centra en otros personajes cruciales que contienen información para la respuesta. La influencia de otros personajes cruciales de la historia, como Lady Macbeth, desencadena las propias ambiciones y acciones de Macbeth. Estos otros personajes pueden ser vistos como los Clave (K) mientras desentrañan diferentes facetas de la historia en función de lo particular que conocen.
- Finalmente, estos personajes brindan suficiente motivación e información a Macbeth a través de sus acciones y perspectivas. Estos pueden verse como Valor (V). El Valor (V) empuja a Macbeth a tomar sus decisiones y da forma al destino de la historia.
Y con eso se crea una de las mejores actuaciones del mundo, que permanece grabada en la mente del asombrado público durante los años venideros.
Ahora que hemos sido testigos del papel de q, k, V En el fantástico mundo de las artes escénicas, volvamos a las matrices planetarias y aprendamos el meollo de la cuestión matemática detrás de las módulo QK. Esta es la hoja de ruta que seguiremos:
Y así comienza el proceso.
Se nos da:
Un conjunto de vectores de 4 características (Dimensión 6)
Nuestra meta :
Transformar las características dadas en Funciones ponderadas por atención.
[1] Crear matrices de consulta, clave y valor
Para hacerlo, multiplicamos las características con las matrices de transformación lineal W_Q, W_K y W_V, para obtener vectores de consulta (q1,q2,q3,q4), vectores clave (k1,k2,k3,k4) y vectores de valor (v1). ,v2,v3,v4) respectivamente como se muestra a continuación:
Llegar qmultiplica W_Q por X:
Llegar kmultiplica W_K por X:
De manera similar, para obtener Vmultiplica W_V por X.
Para ser notado:
- Como puede verse en el cálculo anterior, utilizamos el mismo conjunto de funciones tanto para consultas como para claves. Y así surgió la idea de “ser” entra en juego aquí, es decir, el modelo utiliza el mismo conjunto de características para crear su vector de consulta así como el vector clave.
- El vector de consulta representa la palabra (o token) actual para la cual queremos calcular puntuaciones de atención en relación con otras palabras de la secuencia.
- El vector clave representa las otras palabras (o tokens) en la secuencia de entrada y calculamos la puntuación de atención para cada una de ellas con respecto a la palabra actual.
[2] Multiplicación de matrices
El siguiente paso es multiplicar la transpuesta de k con q es decir k^T. q.
La idea aquí es calcular el producto escalar entre cada par de consulta y vectores clave. Calcular el producto escalar nos da una estimación de la puntuación de coincidencia entre cada par de “consulta clave”, utilizando la idea de Similitud del coseno entre los dos vectores. Este es el ‘producto escalar’ parte de la atención del producto escalado.
Coseno-similitud
La similitud del coseno es el coseno del ángulo entre los vectores; es decir, es el producto escalar de los vectores dividido por el producto de sus longitudes. Mide aproximadamente si dos vectores apuntan en la misma dirección, lo que implica que los dos vectores son similares.
Recuerde cos(0°) = 1, cos(90°) = 0, cos(180°) =-1
– Si el producto escalar entre los dos vectores es aproximadamente 1, implica que estamos viendo un ángulo casi nulo entre los dos vectores, lo que significa que están muy cerca uno del otro.
– Si el producto escalar entre los dos vectores es aproximadamente 0, implica que estamos viendo vectores que son ortogonales entre sí y no muy similares.
– Si el producto escalar entre los dos vectores es aproximadamente -1, implica que estamos viendo un ángulo de casi 180° entre los dos vectores, lo que significa que son opuestos.
[3] Escala
El siguiente paso es escalar/normalizar cada elemento por la raíz cuadrada de la dimensión ‘d_k‘. En nuestro caso, el número es 3. La reducción de escala ayuda a mantener bajo control el impacto de la dimensión en la puntuación coincidente.
¿Cómo lo hace? Según el artículo original de Transformer y volviendo a la probabilidad 101, si dos variables independientes e idénticamente distribuidas (iid) q y k con media 0 y varianza 1 con dimensión d se multiplican, el resultado es una nueva variable aleatoria con la media restante 0 pero la varianza cambia a d_k.
Ahora imagine cómo se vería la puntuación coincidente si nuestra dimensión aumentara a 32, 64, 128 o incluso 4960. La dimensión más grande aumentaría la varianza y empujaría los valores a regiones “desconocidas”.
Para mantener el cálculo simple aquí, ya que raíz cuadrada [3] es aproximadamente 1.73205, lo reemplazamos con [ floor(□/2) ].
Función de piso
La función suelo toma un número real como argumento y devuelve el mayor entero menor o igual a ese número real.
Por ejemplo: piso(1.5) = 1, piso(2.9) = 2, piso (2.01) = 2, piso(0.5) = 0.
Lo opuesto a la función de suelo es la función de techo.
Esta es la parte “escalada” de la atención del producto escalado.
[4] softmax
Este paso consta de tres partes:
- Eleve e a la potencia del número en cada celda (para facilitar las cosas, usamos 3 a la potencia del número en cada celda).
- Sume estos nuevos valores en cada columna.
- Para cada columna, divide cada elemento por su respectiva suma (Normalizar). El propósito de normalizar cada columna es hacer que los números sumen 1. En otras palabras, cada columna se convierte en un Distribución de probabilidad de atención, que nos brinda nuestra Atención Matriz de peso (A).
Esta Matriz de Peso de Atención es lo que obtuvimos después de pasar nuestra matriz de características a través del módulo QK en el Paso 2 en la sección Transformadores.
El paso Softmax es importante ya que asigna probabilidades a la puntuación obtenida en los pasos anteriores y, por lo tanto, ayuda al modelo a decidir cuánta importancia (mayor/menor peso de atención) se debe dar a cada palabra dada la consulta actual. Como es de esperar, mayores ponderaciones de atención significan una mayor relevancia, lo que permite que el modelo capture las dependencias con mayor precisión.
Una vez más, la escala del paso anterior cobra importancia aquí. Sin el escalado, los valores de la matriz resultante se expulsan a regiones que la función Softmax no procesa bien y pueden provocar gradientes que desaparecen.
[5] Multiplicación de matrices
Finalmente multiplicamos los vectores de valores (Vs) con la Matriz de Peso de Atención (A). Estos vectores de valores son importantes ya que contienen la información asociada con cada palabra de la secuencia.
Y el resultado de la multiplicación final en este paso es el características ponderadas de atención Zs que son la solución definitiva del mecanismo de autoatención. Estas características ponderadas por la atención contienen esencialmente una representación ponderada de las características asignar pesos más altos a las características con mayor relevancia según el contexto.
Ahora que esta información está disponible, continuamos con el siguiente paso en la arquitectura del transformador, donde la capa de retroalimentación procesa esta información aún más.
¡Y esto nos lleva al final de la brillante técnica de la autoatención!
Repasando todos los puntos clave en base a las ideas de las que hablamos anteriormente:
- El mecanismo de atención fue el resultado de un esfuerzo por mejorar el rendimiento de los RNN, abordar el problema de las representaciones vectoriales de longitud fija en la arquitectura codificador-decodificador. La flexibilidad de los vectores de longitud suave con un enfoque en las partes relevantes de una secuencia fue la fortaleza central detrás de la atención.
- La autoatención se introdujo como una forma de inculcar la idea de contexto en el modelo. El mecanismo de autoatención evalúa la misma secuencia de entrada que procesade ahí el uso de la palabra “yo”.
- Hay muchas variantes del mecanismo de autoatencion y se están realizando esfuerzos para hacerlo más eficiente. Sin embargo, la atención al producto escalado es una de las más populares y una razón crucial por la que se consideró que la arquitectura del transformador era tan poderosa.
- El mecanismo de autoatención del producto escalado comprende el Módulo de clave de consulta (módulo QK) junto con función softmax. El módulo QK se encarga de extraer la relevancia de cada elemento de la secuencia de entrada calculando las puntuaciones de atención y la función Softmax lo complementa asignando probabilidad a las puntuaciones de atención.
- Una vez que se calculan las puntuaciones de atención, se multiplican por el vector de valor para obtener las características ponderadas por atención que luego se pasan a la capa de alimentación directa.
Atención multicabezal
Para atender a una representación variada y general de la secuencia, múltiples copias de la El mecanismo de autoatención se implementa en paralelo. que luego se concatenan para producir los valores finales ponderados por atención. Esto se llama Atención de Cabezas Múltiples.
Transformador en pocas palabras
Así es como funciona la capa interna de la arquitectura del transformador. Y juntándolo con la capa exterior, aquí hay un resumen del mecanismo del Transformador:
- Las dos grandes ideas en la arquitectura Transformer aquí son ponderación de atención y la capa de retroalimentación (FFN). Ambos combinados permiten que el transformador analice la secuencia de entrada desde dos direcciones. Atención observa la secuencia basada en posiciones y el FFN lo hace en base a la dimensiones de la matriz de características.
- La parte que impulsa el mecanismo de atención es la Atención de producto punto escalado que consiste en el módulo QK y genera las características ponderadas por atención.
‘La atención es realmente todo lo que necesitas’
Los transformadores han estado aquí solo por unos pocos años y el campo de la IA ya ha experimentado un enorme progreso basado en ellos. Y el esfuerzo aún continúa. Cuando los autores del artículo utilizaron ese título para su artículo, no estaban bromeando.
Es interesante ver una vez más cómo una idea fundamental: el “producto escalar”, junto con ciertos adornos, puede resultar tan poderosa.
PD: Si desea realizar este ejercicio por su cuenta, aquí tiene las plantillas en blanco que puede utilizar.
Plantilla en blanco para ejercicio de manos
Ahora diviértete con el ejercicio mientras prestas atención a tu Robtimus Prime!