- el Transformer solo con decoder se ha convertido en la arquitectura estándar de los LLM, pero en contextos largos su rendimiento se ve afectado por el ruido de atención, al perder información clave y repartir atención a tokens irrelevantes
- la atención diferencial divide query y key en dos grupos, crea dos mapas de atención softmax y luego resta el segundo, escalado con una λ aprendible, para calcular el score final de atención
- DIFF Transformer mostró mejores resultados que Transformer en experimentos donde se aumentó el tamaño del modelo, los tokens de entrenamiento y la longitud de contexto, y necesita solo alrededor de 65% del tamaño de modelo o de los tokens de entrenamiento para lograr un rendimiento similar
- muestra ventajas en modelado de contexto largo, recuperación de información clave, mitigación de alucinaciones, in-context learning, razonamiento matemático y reducción de activation outliers; en QA y resumen disminuye el impacto del contexto irrelevante
- como mantiene el mismo diseño general que Transformer y solo reemplaza la atención softmax, puede reutilizar FlashAttention manteniendo equivalentes el número de parámetros y el costo computacional
El problema del ruido de atención en Transformer
- el Transformer solo con decoder es la arquitectura estándar de facto para los LLM, y en su núcleo está el mecanismo de atención, que pondera con softmax la importancia de los tokens dentro de una secuencia
- los LLM tienen dificultades para encontrar con precisión la información clave en el contexto, y mientras más contexto irrelevante haya, más fácil es que las pistas correctas queden enterradas
- en ejemplos donde hay que encontrar una respuesta insertada en medio de un montón de documentos, Transformer tiende a asignar solo un pequeño attention score a la respuesta correcta y a repartir scores excesivos al contexto irrelevante
- esos attention scores no despreciables asignados al contexto irrelevante actúan como ruido de atención
- el ejemplo de Multi-Needle Retrieval de la Figura 1 muestra una precisión de 55% para Transformer y 85% para Differential Transformer
Cómo funciona la atención diferencial
- DIFF Transformer es una arquitectura base para sequence modeling y LLM que mantiene el macro layout del Transformer existente y reemplaza la atención softmax normal por atención diferencial
- a partir de la entrada
X, proyecta query, key y value, pero divide query y key en dos grupos:Q1, Q2, K1, K2, mientras que value se mantiene comoV - la salida de atención se calcula como la diferencia entre dos mapas de atención softmax
DiffAttn(X) = (softmax(Q1K1^T / √d) − λ softmax(Q2K2^T / √d))V- la estructura elimina el ruido común al restar el segundo mapa de atención del primero
λes un escalar aprendible, y se reparametriza así para ajustar la dinámica de entrenamientoλ = exp(λq1 · λk1) − exp(λq2 · λk2) + λinit- en los experimentos base se usa
λinit = 0.8 − 0.6 × exp(−0.3 · (l − 1)) - también se evaluó usar el mismo
λinitpara todas las capas, por ejemplo0.8, y en las ablaciones mostró un rendimiento relativamente robusto ante diferencias en la estrategia de inicialización
- este método es similar a la idea del amplificador diferencial, que elimina ruido de modo común a partir de la diferencia entre dos señales, y a los audífonos con cancelación de ruido
- Naderi et al. demostraron que la atención diferencial hace más equilibrada la distribución espectral de la matriz de atención y resuelve eficazmente el colapso de rango
Estructura multi-head y arquitectura general
- la atención diferencial multi-head usa distintas matrices de proyección para cada head, y dentro de una misma capa comparte el escalar λ entre heads
- a la salida de cada head se le aplica RMSNorm de forma independiente, luego se multiplica por
(1 − λinit), después los heads se concatenan en la dimensión de canales y finalmente pasan por la proyección de salidaWO - la notación GroupNorm de la Figura 2 enfatiza que la normalización se aplica de manera independiente a cada head
- la atención diferencial tiende a tener patrones más dispersos, por lo que la información estadística entre heads es más diversa
- la normalización por head mejora las estadísticas del gradiente al normalizar cada head antes de la concatenación
- toda la capa de DIFF Transformer se compone de dos módulos
MultiHead(LN(Xl)) + XlSwiGLU(LN(Yl)) + Yl
- estructuralmente usa pre-RMSNorm y SwiGLU, siguiendo las mejoras de la familia LLaMA
Eficiencia y estabilidad de entrenamiento
- la atención diferencial puede reutilizar directamente FlashAttention, lo que permite mejorar mucho la eficiencia del modelo
- el número de heads se define como
h = dmodel / 2d, dondedes igual a la dimensión de head del Transformer - esta configuración busca igualar con Transformer el número de parámetros y la complejidad computacional
- después de la normalización por head se usa el multiplicador fijo
(1 − λinit)para alinear el flujo de gradiente con Transformer - el Apéndice G muestra que el flujo total de gradiente se mantiene similar al de Transformer, lo que permite heredar hiperparámetros parecidos y asegurar estabilidad de entrenamiento
Resultados experimentales y efectos en la práctica
- los experimentos de modelado de lenguaje escalan DIFF Transformer aumentando el número de parámetros, los tokens de entrenamiento y la longitud de contexto
- en la scaling curve, DIFF Transformer necesita solo alrededor de 65% del tamaño de modelo o de los tokens de entrenamiento para alcanzar un rendimiento de modelado de lenguaje similar al de Transformer
- también mostró mejor rendimiento que Transformer en tareas downstream, y en evaluaciones de secuencias largas aprovecha mejor el contexto a medida que este crece
- en recuperación de información clave muestra un patrón de asignar mayores attention scores al span correcto y menores scores al contexto irrelevante
- en QA y resumen de texto se distrae menos con contexto irrelevante, mitigando las alucinaciones
- en in-context learning mejora la precisión y además es más robusto frente a la permutación del orden, considerada un problema crónico de robustez
- la reducción de activation outliers abre nuevas oportunidades para la cuantización
1 comentarios
Comentarios en Hacker News
Siento que aquí se está perdiendo la intuición clave. Entiendo el problema de que la atención softmax normal tiene dificultades para asignar una atención cercana a 0 a cosas irrelevantes, y también entiendo que, si hay una estructura de resta, se pueden crear pesos de atención exactamente o casi iguales a 0 sin valores de activación atípicos
Aun así, esta estructura también parece que podría crear fácilmente pesos de atención negativos, y eso se ve equivalente a dar atención positiva a la negación del vector de valores. Intuitivamente, parece difícil mantener en equilibrio todo lo que no interesa cerca de 0. Aun así, Figure 1 muestra que funciona bien, así que no dudo de su potencial, pero me cuesta imaginar específicamente cómo la red logra hacerlo
exp()/1+∑exp()Lo clave es que se añade 1 al denominador. En el límite negativo, softmax puede volverse 0 en vez de algún épsilon. También se puede lograr el mismo efecto agregando un valor 0 adicional a
x. La desventaja es que, para corregir esto, habría que volver a entrenar el modelo desde ceroSi miras la primera figura de pesos de atención, en la zona de ruido sí hay puntajes negativos. Aun así, la atención sobre esa zona de todos modos es muy pequeña. El segundo mapa de atención solo necesita predecir el ruido del primero, y como tiene acceso completo a la primera entrada, es una tarea que puede hacer con bastante precisión
Volviendo a la analogía del artículo, los audífonos con cancelación de ruido pueden producir una señal de cancelación precisa porque el micrófono tiene acceso al sonido que llega al oído. De la misma manera, el segundo mapa de atención sabe qué entra en el primero, así que puede generar la señal de cancelación correspondiente. No es perfecto, pero los audífonos con cancelación de ruido tampoco lo son, y aun así llegar al 99% basta para mejorar el rendimiento
La poda ya está bastante establecida en la literatura como una forma sorprendentemente buena de reducir la cantidad de parámetros, y puede bajar alrededor de un 40%. El modelo real probablemente no funcione exactamente así, pero tampoco sorprendería que al final terminara aproximándose a un Transformer normal
Muy ingenioso. Me gustan este tipo de trabajos detallistas, y además el cambio es pequeño, así que parece algo que otros podrían aplicar fácilmente. Excelente
Dicho eso, la última oración de la introducción de la sección "2 Differential Transformer" me preocupa un poco. Dicen que usan mejoras de artículos previos, pero por el contexto gramatical no queda claro si esas mejoras se aplicaron tanto al Transformer normal como al diff Transformer. Si no fue así, la comparación se vuelve confusa. La expresión "main difference" en la oración anterior me hizo prender las alarmas
Claro, un investigador de buena fe podría saber esto y no sentir la necesidad de dejarlo explícito. Pero en parte de la investigación publicada en este campo, por más cuidadoso que seas nunca es demasiado
Me recuerda a las arquitecturas MoE, donde se elige el mejor modelo pequeño para encargarse de parte o de toda la tarea de inferencia. Me pregunto si MoE obtiene una ganancia parecida al forzar al Transformer a distinguir entre posibilidades alternativas
En cualquier caso, si los números se mantienen, parece que se adoptará ampliamente. Como dije, prácticamente no se le ven desventajas y además parece fácil de reproducir
Como con la mayoría de las cosas en este nuevo mundo del aprendizaje automático, resulta realmente confuso por qué esto funciona
La analogía de los audífonos con cancelación de ruido ayuda, pero en ese caso está claro qué es la señal y qué es el ruido. Si aquí también lo supiéramos, entonces no queda claro por qué habría que hacer el trabajo de eliminar el ruido en primer lugar
Peor aún, el gradiente de los valores de atención bajos se vuelve muy pequeño, así que deshacer esos errores requiere muchas actualizaciones de pesos. En cambio, al restar las salidas de dos softmax, el modelo puede predecir pesos exactamente iguales a 0 para algunos valores y mantener un flujo de gradiente razonable
O sea, el modelo ya sabe qué es ruido, pero un solo softmax hace difícil excluirlo. Además, con un solo softmax se obliga a que la salida de todos los heads permanezca dentro de la envolvente convexa de los vectores de valor, mientras que en esta variante cada head puede elegir su propio lambda y mover el rango de salida fuera de la envolvente convexa definida de antemano por esos valores. Así que aumenta la capacidad de representación del modelo
Un mejor ejemplo sería la señal diferencial usada en audio profesional y en muchos protocolos de señal digital como Ethernet, HDMI y USB. En vez de usar un solo cable con referencia a tierra, la señal se transmite como la diferencia entre dos cables. Ambos cables llevan la misma señal con polaridad opuesta y, como pasan uno junto al otro, el ruido externo se aplica por igual a ambos
El voltaje cambiará, pero la diferencia de voltaje entre los dos cables se mantiene. En el receptor, al restar ambos voltajes, el ruido simplemente se cancela
Una forma simple de hacer esto sería quitar el softmax o usar sigmoid, pero en la práctica parece que softmax funciona mejor
Dicho de forma simple, RoPE es una estrategia moderna que le da al modelo información sobre qué tan separadas están la consulta y la clave al hacer atención. Es la mejor estrategia disponible hoy, pero tiene el gran defecto de hacer que algunas conexiones entre tokens lejanos sean mucho más fuertes de lo deseado. Xpos (https://arxiv.org/pdf/2212.10554) también es un paper de Microsoft que aborda problemas de RoPE, y en la página 4, Figure 1, se puede ver una interpretación visual de la intensidad de atención con forma sinusoidal. Idealmente, uno querría que fuera suave
Creo que una gran razón por la que Differential Transformer funciona especialmente bien en secuencias largas es que, incluso cuando
q1yq2no coinciden con ningún token, la intensidad relativa de RoPE tiene el mismo valor, así que el ruido se cancela. Solo queda la coincidencia intencional, aunque al costo de debilitar en cierta medida el valor que RoPE aportaba originalmenteClaro, esto es solo una hipótesis. Sería fácil verificarlo comparando experimentos donde ambos usen como baseline alibi attention (https://arxiv.org/pdf/2108.12409). alibi tiene otros compromisos que este método no mitiga, pero aun así es un resultado realmente interesante
La intuición de por qué funciona parece estar en que hace el paisaje del descenso por gradiente un poco más amigable y facilita aprender en pasos pequeños. Ahora la propia red se diseña explícitamente en torno a la idea de que al principio cometerá muchos errores en sus predicciones y mejorará con el tiempo
Si entendí bien "Differential attention takes the difference between two softmax attention functions to eliminate attention noise", esta arquitectura parece ser un intercambio donde se usa el doble de memoria de atención para obtener un modelo de mayor calidad, o una calidad similar con menos parámetros
La parte que dice "6.8B-size DIFF Transformer achieves a validation loss comparable to 11B-size Transformer, requiring only 62.2% of parameters" me deja varias preguntas. Si solo usa el 60% de los parámetros, me pregunto si eso compensa el hecho de tener el doble de espacio de atención y termina con características de memoria parecidas a las de un Transformer tradicional, y si ese intercambio cambia de forma notable entre entrenamiento e inferencia
El paper dice: "We set the number of heads h = dmodel/2d, where d is equal to the head dimension of Transformer. So we can align the parameter counts and computational complexity." En otras palabras, compensan esto reduciendo a la mitad la cantidad de heads de atención por capa
Me da curiosidad qué historia hubo detrás de la fórmula "We empirically find that the setting λᵢₙᵢₜ = 0.8 − 0.6 × exp(−0.3 · (l − 1)) works well in practice"
les pequeño, que en las capas posteriores. Suena razonable. Uno querría prestar un poco de atención a todo antes de concluir cuáles son las posiciones que realmente vale la pena mirarAunque no parece que el autor discuta esta elección por separado en el paper
La parte clave que al principio no entendía era qué pasa si los dos grupos de atención aprenden lo mismo. Como las máscaras de atención se restan entre sí, si ambos producen valores parecidos, la atención total cae a 0 y la pérdida aumenta
Así que la única forma de reducir la pérdida es aprender a prestar atención a cosas distintas. Una de las estrategias más simples que podrían aprender es, como sostiene el paper, que un grupo se enfoque en el contexto relevante y el otro en el contexto irrelevante. Así, un grupo aprende el ruido y el otro la señal. En la práctica no es tan tajante, pero como simplificación para entenderlo sirve
Tiene sentido si piensas que, si las dos copias fueran idénticas, la salida del softmax también lo sería y la diferencia daría 0 en todas partes. Pero si restas una copia escalada, el proceso de normalizar la diferencia parece resaltar más los valores de la señal que los del ruido, haciendo que la señal destaque más que antes de la normalización
Sería como que una cabeza de atención sube el peso si le sorprende lo que aprendió la otra, y si ambas encuentran lo mismo, lo considera poco sorprendente y baja el peso
Admito que la "sorpresa" ocupa una parte bastante grande de mi base de conocimientos[1][2][3]. Es una emoción subjetiva y una función adaptativa de la mente, uno de los sistemas adaptativos más complejos que conocemos
[1] https://plus.maths.org/content/information-surprise
[2] https://blakeelias.name/papers/Multi-Agent-Cooperation-Intri...
[3] https://complexity.simplecast.com/episodes/81/transcript
Me pregunto qué se pierde aquí. Seguro que hay algún trade-off
También me pregunto si esto afecta la creatividad o la capacidad de interpolar entre conceptos. La alucinación y la creatividad parecen bastante relacionadas. Entiendo la alucinación como algo desalineado con el espacio de interpolación que los humanos sentimos como apropiado
Claro, los errores a veces pueden inspirar, pero la creatividad es muchísimo más que cometer errores
Estos modelos de lenguaje son predictores del siguiente token. Ese siguiente token se predice muestreando desde el espacio de probabilidades que produce el modelo. Ese proceso de muestreo puede ser no determinista
Una alucinación es cuando ese muestreo produce tokens que forman una oración falsa o no intencionada. Incluso podría decirse que todo lo que produce el modelo es una alucinación, pero entrenamos al modelo para que emita espacios donde sea más probable que alucine lo que queremos. Si no, solo arrojaría ruido sin sentido
"Alucinación" es una palabra realmente malísima para describir esto
Me pregunto qué parte del valor aquí viene de compensar el ruido posicional que introduce RoPE. Me gustaría ver una tabla que compare no solo los modelos con RoPE de este trabajo, sino también una versión con alibi y una línea base con alibi
Aun así, es una mejora enorme, y felicidades a los investigadores
¿Lo que está pasando aquí es que softmax no puede empujar valores hasta 0, pero al restar dos mapas softmax sí se puede producir una salida 0?
Es un buen problema para resolver, pero creo que el enfoque está equivocado
Para saber a qué se le prestó atención y conocer el contexto completo, esto debería hacerse de forma jerárquica. Si el vector diferencial se calcula a partir de la misma entrada que el vector de atención, no veo cómo puede saber correctamente cómo modificar el vector de atención