Differential Transformer
Differential Transformer resta un mapa de atención softmax de otro para cancelar el ruido de atención y mejorar la recuperación de información en contextos largos y la cuantización.
El Transformer diferencial, o DIFF Transformer, es una arquitectura de Transformer cuyas cabezas de atención calculan dos mapas de atención softmax y restan uno del otro, cancelando el peso que ambos mapas asignan en común al contexto irrelevante. Tianzhu Ye, Li Dong, Furu Wei y sus colegas de Microsoft Research y la Universidad de Tsinghua lo presentaron en octubre de 2024 en Differential Transformer, un artículo presentado oralmente en ICLR 2025. El diseño se inspira en los amplificadores diferenciales y los auriculares con cancelación de ruido, que restan dos señales para eliminar el ruido que comparten. En el modelado del lenguaje, un DIFF Transformer necesitó aproximadamente el 65 % de los parámetros o de los tokens de entrenamiento de un Transformer estándar para alcanzar la misma pérdida: un modelo de 6.800 millones de parámetros igualó a un Transformer de 11.000 millones.
Cómo funciona la atención diferencial#
La autoatención estándar asigna a cada token un peso no negativo, por lo que siempre se asigna algo de peso a tokens irrelevantes, lo que los autores denominan ruido de atención. La atención diferencial divide las proyecciones de consulta y clave de cada cabeza en dos mitades, calcula un mapa softmax para cada par y combina los valores como (mapa1 − λ × mapa2) × V. Ambos mapas asignan peso a los mismos tokens irrelevantes, así que la resta lo cancela, mientras que se conserva el peso que solo asigna el mapa1. Como cada mapa suma 1, cada fila del resultado suma 1 − λ y algunos pesos individuales pueden ser negativos:
import torch
torch.manual_seed(0)
n, d, lam = 6, 8, 0.8 # 6 tokens, head size 8, lambda near the paper's 0.8 initialization
q1, k1, q2, k2 = torch.randn(4, n, d)
v = torch.randn(n, 2 * d) # values are twice as wide as each query-key pair
# Two ordinary softmax attention maps from separate query and key projections
map1 = torch.softmax(q1 @ k1.T / d**0.5, dim=-1)
map2 = torch.softmax(q2 @ k2.T / d**0.5, dim=-1)
# Subtracting cancels weight that both maps place on the same tokens
diff = map1 - lam * map2
out = diff @ v
print(f"Each row sums to {diff.sum(dim=-1)[0]:.2f}; {(diff < 0).sum().item()} of {n * n} weights are negative")Imprime Each row sums to 0.20; 13 of 36 weights are negative, dos propiedades que ningún mapa de atención softmax puede tener. En el modelo real, λ se aprende mediante cuatro vectores pequeños y empieza en 0.8 − 0.6 × exp(−0.3 × (l − 1)) para la capa l, de modo que las capas más profundas empiezan más cerca de 0.8. La salida de cada cabeza se normaliza por separado, lo que el artículo denomina GroupNorm, y después se escala por (1 − λ en la inicialización) para mantener los gradientes del mismo tamaño que en un Transformer estándar. El modelo utiliza la mitad de cabezas, cada una con valores el doble de anchos, por lo que el número de parámetros coincide con el modelo de referencia. Cada mapa es una atención softmax normal, así que las implementaciones reutilizan los kernels de flash attention, y el rendimiento de entrenamiento en GPU H100 fue entre un 6 % y un 12 % inferior al de un Transformer del mismo tamaño.
Ventajas comunicadas#
En una prueba de la aguja en el pajar con 6 agujas y 2 preguntas en una ventana de contexto de 4K tokens, DIFF Transformer obtuvo una puntuación de 0.85 frente a 0.55 de un Transformer estándar; el análisis de atención del artículo atribuyó este resultado a la capacidad de concentración: asignó entre 0.27 y 0.40 de su atención a la respuesta, frente a entre 0.03 y 0.09 del Transformer. También produjo menos alucinaciones en la síntesis de textos y la respuesta a preguntas, y en el aprendizaje contextual few-shot fue más preciso y menos sensible al orden de los ejemplos.
También disminuyeron los valores atípicos de activación. Su logit de atención máximo fue de 38.8, frente a 318.0 en un Transformer estándar, y su activación máxima del estado oculto fue de 1,688 frente a 3,609. Al cuantizar los logits de atención a 4 bits, igualó la precisión de un Transformer estándar a 6 bits y superó en aproximadamente un 25 % la precisión de un Transformer de 4 bits.
Este resultado importa para la cuantización de modelos, porque unas pocas activaciones extremas determinan el rango que deben compartir todos los demás valores. Lo mismo se aplica a los modelos de visión: cuando Ultralytics YOLO26 se exporta con quantize=8, el exportador calibra los rangos de activación usando imágenes del conjunto de datos data y recomienda utilizar al menos 300, mientras que quantize="w8a16" mantiene los pesos a 8 bits y las activaciones a 16 bits en las exportaciones de LiteRT, Core ML y QNN.
DIFF Transformer y términos relacionados#
- Diffusion Transformer (DiT): Transformer que sustituye la U-Net en modelos de difusión para generar imágenes y vídeos.
- Privacidad diferencial: Garantía matemática de privacidad para los datos de entrenamiento.
- Atención dispersa: Solo calcula las puntuaciones de un subconjunto fijo de pares de tokens y establece de antemano en cero todos los demás pesos.
- Transformador diferencial de variable lineal: Sensor eléctrico que mide el desplazamiento lineal.










