- Même si le Transformer decoder-only est devenu l’architecture standard des LLM, dans les longs contextes, il manque des informations essentielles et répartit son attention sur des tokens non pertinents ; ce bruit d’attention perturbe les performances
- La differential attention divise les queries et les keys en deux groupes, crée deux cartes d’attention softmax, puis soustrait la seconde carte, pondérée par un λ apprenable, pour calculer le score d’attention final
- DIFF Transformer a obtenu de meilleurs résultats que Transformer dans des expériences augmentant la taille du modèle, le nombre de tokens d’entraînement et la longueur de contexte ; pour des performances comparables, il ne nécessite qu’environ 65 % de la taille de modèle ou des tokens d’entraînement
- Il montre des avantages pour la modélisation de longs contextes, la recherche d’informations clés, la réduction des hallucinations, l’in-context learning, le raisonnement mathématique et la diminution des activation outliers ; en QA et en résumé, l’influence des contextes non pertinents est réduite
- Comme la disposition globale reste identique à celle de Transformer et que seule l’attention softmax est remplacée, il est possible d’aligner le nombre de paramètres et le coût de calcul, tout en réutilisant FlashAttention
Le problème du bruit d’attention dans Transformer
- Le Transformer decoder-only est l’architecture de facto des LLM, et son cœur repose sur un mécanisme d’attention qui pondère par softmax l’importance des tokens dans une séquence
- Les LLM ont du mal à identifier précisément les informations essentielles dans le contexte, surtout lorsque celui-ci contient beaucoup d’éléments non pertinents, ce qui tend à noyer les indices menant à la bonne réponse
- Dans un exemple où il faut retrouver une réponse insérée au milieu d’un ensemble de documents, Transformer a tendance à attribuer un faible score d’attention à la réponse et des scores excessifs au contexte non pertinent
- Ces scores d’attention non négligeables attribués à du contexte non pertinent agissent comme un bruit d’attention
- L’exemple Multi-Needle Retrieval de la Figure 1 indique des précisions de 55 % et 85 % respectivement pour Transformer et Differential Transformer
Fonctionnement de la differential attention
- DIFF Transformer est une architecture de base pour le sequence modeling et les LLM ; elle conserve la macro-disposition du Transformer existant et remplace l’attention softmax classique par la differential attention
- À partir de l’entrée
X, elle projette les queries, keys et values, mais divise les queries et les keys en deux groupesQ1, Q2, K1, K2, tandis que les values restentV - La sortie d’attention est calculée comme la différence entre deux cartes d’attention softmax
DiffAttn(X) = (softmax(Q1K1^T / √d) − λ softmax(Q2K2^T / √d))V- La structure élimine le bruit commun en soustrayant la seconde carte d’attention à la première
λest un scalaire apprenable, reparamétré comme suit afin d’aligner la dynamique d’apprentissageλ = exp(λq1 · λk1) − exp(λq2 · λk2) + λinit- Dans les expériences de base,
λinit = 0.8 − 0.6 × exp(−0.3 · (l − 1))est utilisé - L’utilisation d’un même
λinitdans toutes les layers, par exemple0.8, a aussi été examinée ; dans l’ablation, les performances se sont montrées relativement robustes aux différences de stratégie d’initialisation
- Cette approche ressemble aux idées de l’amplificateur différentiel, qui supprime le common-mode noise par la différence entre deux signaux, et des casques à réduction de bruit
- Naderi et al. démontrent que la differential attention rend la distribution spectrale de la matrice d’attention plus équilibrée et résout efficacement le rank collapse
Structure multi-head et architecture globale
- La multi-head differential attention utilise des matrices de projection différentes pour chaque head, et partage le scalaire λ entre les heads au sein d’une même layer
- La sortie de chaque head reçoit indépendamment une RMSNorm, puis est multipliée par
(1 − λinit); les heads sont ensuite concaténés sur la dimension des canaux et passent par la projection de sortieWO - La notation GroupNorm de la Figure 2 souligne que la normalisation est appliquée indépendamment à chaque head
- La differential attention a tendance à produire des patterns plus sparsifiés, ce qui rend les statistiques entre heads plus diverses
- La normalisation par head améliore les statistiques de gradient en normalisant chaque head avant la concaténation
- Une layer DIFF Transformer complète se compose de deux modules
MultiHead(LN(Xl)) + XlSwiGLU(LN(Yl)) + Yl
- Structurellement, elle utilise pre-RMSNorm et SwiGLU, suivant les améliorations de la famille LLaMA
Efficacité et stabilité de l’entraînement
- La differential attention peut réutiliser directement FlashAttention, ce qui permet d’améliorer fortement l’efficacité du modèle
- Le nombre de heads est défini par
h = dmodel / 2d, oùdest la dimension de head de Transformer - Ce réglage vise à aligner avec Transformer le nombre de paramètres et la complexité de calcul
- Après la normalisation des heads, un multiplicateur fixe
(1 − λinit)est utilisé pour aligner le flux de gradients sur celui de Transformer - L’Appendix G montre que le flux de gradients global reste similaire à celui de Transformer, ce qui permet de réutiliser des hyperparamètres proches et d’assurer la stabilité de l’entraînement
Résultats expérimentaux et effets applicatifs
- Les expériences de modélisation du langage font passer DIFF Transformer à l’échelle en augmentant le nombre de paramètres, les tokens d’entraînement et la longueur de contexte
- Sur la scaling curve, DIFF Transformer n’a besoin que d’environ 65 % de la taille de modèle ou des tokens d’entraînement pour atteindre des performances de modélisation du langage comparables à celles de Transformer
- Il a également surpassé Transformer sur les downstream tasks et, dans les évaluations long-sequence, exploite efficacement le contexte à mesure qu’il s’allonge
- Pour la recherche d’informations clés, il présente un pattern attribuant un score d’attention plus élevé au span de réponse et un score plus faible au contexte non pertinent
- En QA et en text summarization, il se laisse moins distraire par le contexte non pertinent, ce qui atténue les hallucinations
- En in-context learning, il améliore la précision tout en étant plus robuste à l’order permutation, considérée comme un problème chronique de robustesse
- La réduction des activation outliers ouvre de nouvelles possibilités pour la quantization
1 commentaires
Avis de Hacker News
J’ai l’impression qu’on passe à côté de l’intuition essentielle ici. On comprend le problème selon lequel l’attention softmax classique a du mal à attribuer une attention proche de 0 à ce qui n’est pas pertinent, et on comprend aussi qu’avec une structure de soustraction, on peut produire des poids d’attention exactement, ou presque, nuls sans valeurs d’activation aberrantes.
Cela dit, cette structure semble aussi pouvoir produire facilement des poids d’attention négatifs, ce qui revient, semble-t-il, à attribuer une attention positive à la négation du vecteur de valeurs. Intuitivement, il paraît difficile de maintenir tout ce qui n’intéresse pas le modèle près de 0 de manière équilibrée. La Figure 1 montre toutefois que cela fonctionne bien, donc je ne doute pas du potentiel, mais je n’arrive pas bien à me représenter comment le réseau y parvient concrètement.
exp()/1+∑exp()Le point essentiel est l’ajout de 1 au dénominateur. À la limite négative, le softmax peut devenir 0, et non pas un epsilon quelconque. Ajouter une valeur 0 supplémentaire à
xpeut produire le même effet. L’inconvénient est que pour corriger cela, il faut réentraîner le modèle depuis le début.Si l’on regarde la première figure de poids d’attention, il y a effectivement des scores négatifs dans les zones de bruit. Malgré cela, l’attention portée à cette zone est de toute façon très faible. La seconde carte d’attention n’a qu’à prédire le bruit de la première, et comme elle a un accès complet à la première entrée, c’est une tâche qu’elle peut accomplir assez précisément.
Pour reprendre l’analogie du papier avec le monde réel, les casques à réduction de bruit ont accès, via leur micro, au son entendu par l’oreille, ce qui leur permet de produire un signal d’annulation précis. De la même manière, la seconde carte d’attention sait ce qui est donné en entrée à la première, et peut donc produire le signal d’annulation correspondant. Ce n’est pas parfait, mais les casques à réduction de bruit ne le sont pas non plus, et ils atteignent tout de même environ 99 %, ce qui suffit à améliorer les performances.
Le pruning est déjà assez bien établi dans la littérature comme méthode permettant de réduire étonnamment bien le nombre de paramètres, jusqu’à environ 40 %. Le modèle réel ne fonctionne probablement pas exactement ainsi, mais il ne serait pas surprenant qu’il finisse par approximer un Transformer ordinaire.
Très astucieux. J’aime ce genre de travail minutieux, et le changement est suffisamment limité pour que d’autres puissent l’appliquer facilement. Excellent.
Cela dit, la dernière phrase de l’introduction de la section « 2 Differential Transformer » m’inquiète un peu. Ils disent utiliser des améliorations issues d’articles précédents, mais le contexte grammatical ne permet pas de savoir clairement si ces améliorations ont été appliquées à la fois au Transformer classique et au diff Transformer. Si ce n’est pas le cas, la comparaison devient floue. L’expression « main difference » dans la phrase juste avant a déclenché un signal d’alerte chez moi.
Bien sûr, des chercheurs de bonne foi en sont peut-être conscients et n’ont pas jugé nécessaire de le préciser. Mais dans une partie des publications de ce domaine, on n’est jamais trop prudent.
Cela me fait penser aux architectures MoE, où l’on choisit le meilleur petit modèle pour traiter une partie ou la totalité de la tâche d’inférence. Je me demande si les MoE ont obtenu des gains similaires parce que le Transformer est forcé de distinguer plusieurs possibilités alternatives.
Quoi qu’il en soit, si les chiffres se maintiennent, cela devrait être largement adopté. Comme dit plus haut, il ne semble pratiquement pas y avoir d’inconvénient, et cela paraît facile à reproduire.
Comme souvent dans ce nouveau monde du machine learning, je trouve vraiment déroutant de comprendre pourquoi cela fonctionne
L’analogie avec les casques antibruit aide, mais dans ce cas on sait clairement ce qui est le signal et ce qui est le bruit. Si on le savait aussi ici, je ne vois pas pourquoi il faudrait faire de la suppression de bruit dès le départ
Pire encore, le gradient des faibles valeurs d’attention devient très petit, si bien qu’il faut de nombreuses mises à jour des poids pour corriger ce genre d’erreur. En revanche, si l’on soustrait les sorties de deux softmax, le modèle peut prédire des poids exactement nuls pour certaines valeurs, tout en conservant un flux de gradient raisonnable
Autrement dit, le modèle sait déjà ce qui est du bruit, mais un softmax unique rend son exclusion difficile. De plus, avec un softmax unique, la sortie de chaque tête est contrainte de rester dans l’enveloppe convexe des vecteurs de valeurs, alors qu’avec cette variante chaque tête peut choisir son propre lambda et déplacer sa plage de sortie en dehors de l’enveloppe convexe prédéfinie par les valeurs. Cela accroît donc l’expressivité globale du modèle
Un meilleur exemple serait le signal différentiel utilisé en audio professionnelle et dans de nombreux protocoles de signaux numériques comme Ethernet, HDMI ou USB. Au lieu d’utiliser un seul fil référencé à la masse, le signal est transmis comme une différence entre deux fils. Les deux fils transportent le même signal avec des polarités opposées et passent côte à côte, si bien que le bruit externe s’applique de la même manière aux deux
Les tensions peuvent varier, mais la différence de tension entre les deux fils reste inchangée. À la réception, lorsqu’on soustrait les deux tensions, le bruit s’annule tout simplement
Une façon simple de faire cela serait de supprimer le softmax ou d’utiliser une sigmoid, mais en pratique le softmax semble mieux fonctionner
Pour simplifier, RoPE est une stratégie moderne qui donne au modèle, lors de l’attention, des informations sur la distance entre la requête et la clé. C’est la meilleure stratégie disponible à l’heure actuelle, mais elle a un gros défaut : elle rend certaines connexions entre tokens éloignés beaucoup plus fortes qu’on ne le souhaiterait. Xpos (https://arxiv.org/pdf/2212.10554) est également un article de Microsoft traitant des problèmes de RoPE ; la Figure 1 en page 4 donne une interprétation visuelle de l’intensité de l’attention sous forme de sinusoïde. À l’origine, on voudrait quelque chose de lisse
À mon avis, l’une des principales raisons pour lesquelles le Differential Transformer fonctionne particulièrement bien sur de longues séquences est que, même lorsque
q1etq2ne correspondent pas à un token donné, l’intensité relative de RoPE prend la même valeur, ce qui annule le bruit. Seules les correspondances voulues restent, au prix toutefois d’un certain affaiblissement des valeurs que RoPE apportait initialementBien sûr, ce n’est qu’une hypothèse. On pourrait la vérifier facilement en comparant les deux avec une baseline utilisant alibi attention (https://arxiv.org/pdf/2108.12409). alibi implique d’autres compromis que cette méthode ne saura pas atténuer, mais le résultat n’en reste pas moins vraiment intéressant
L’intuition expliquant pourquoi cela fonctionne semble être que cela rend le paysage de descente de gradient un peu plus favorable, donc plus facile à apprendre par petites étapes. Le réseau lui-même est désormais explicitement conçu autour de l’idée qu’il fait au départ beaucoup d’erreurs dans ses prédictions, puis s’améliore au fil du temps
Si j’ai bien compris « Differential attention takes the difference between two softmax attention functions to eliminate attention noise », cette architecture semble être un compromis : utiliser deux fois plus de mémoire d’attention en échange d’un modèle de meilleure qualité, ou d’une qualité similaire avec moins de paramètres
Le passage « 6.8B-size DIFF Transformer achieves a validation loss comparable to 11B-size Transformer, requiring only 62.2% of parameters » soulève plusieurs questions. Si le modèle n’a que 60 % des paramètres, est-ce que cela compense le doublement de l’espace d’attention et aboutit à des caractéristiques mémoire proches de celles d’un Transformer classique ? Et ce compromis diffère-t-il sensiblement entre l’entraînement et l’inférence ?
L’article indique : « 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 d’autres termes, ils compensent en réduisant de moitié le nombre de têtes d’attention par couche
Je me demande quelle histoire il y a derrière la formule « We empirically find that the setting λᵢₙᵢₜ = 0.8 − 0.6 × exp(−0.3 · (l − 1)) works well in practice »
l, que dans les couches arrière. C’est plausible. Avant de conclure qu’il y a quelques positions spécifiques à regarder, on a sans doute envie d’accorder un peu d’attention à toutCela dit, il ne semble pas que les auteurs discutent séparément ce choix dans l’article
Le point essentiel que je n’avais pas compris au début était : que se passe-t-il si les deux groupes d’attention apprennent la même chose ? Comme les masques d’attention sont soustraits l’un à l’autre, si les deux produisent des valeurs similaires, l’attention totale tombe à 0 et la perte augmente
Donc la seule façon de réduire la perte est d’apprendre à prêter attention à des choses différentes. L’une des stratégies les plus simples qu’ils peuvent apprendre est, comme l’affirme l’article, qu’un groupe se concentre sur le contexte pertinent et l’autre sur le contexte non pertinent. Ainsi, un groupe apprend le bruit et l’autre le signal. En pratique, ce n’est pas aussi tranché, mais c’est une simplification utile pour comprendre
Si les deux copies sont identiques, les sorties du softmax le sont aussi, donc la différence vaut 0 partout, ce qui se tient. Mais si l’on soustrait une copie mise à l’échelle, le processus de normalisation de la différence semble faire davantage ressortir les valeurs de signal par rapport au bruit qu’avant la normalisation
Si une tête d’attention est surprise par ce qu’une autre tête a appris, elle augmente le poids ; si les deux trouvent la même chose, elle considère que ce n’est pas très surprenant et baisse le poids
Je l’admets, la « surprise » occupe une place assez importante dans ma base de connaissances[1][2][3]. Comme sentiment subjectif et fonction adaptative de l’esprit, c’est l’un des systèmes adaptatifs les plus complexes que nous connaissions
[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
Je me demande ce qu’on perd ici. Il doit forcément y avoir un compromis
Je me demande aussi si cela affecte la créativité ou la capacité à interpoler entre des concepts. Les hallucinations et la créativité semblent assez liées. Je comprends les hallucinations comme quelque chose qui dévie de l’espace d’interpolation que les humains jugent approprié
Bien sûr, une erreur peut parfois inspirer, mais la créativité est bien plus que des erreurs
Ces modèles de langage sont des prédicteurs du prochain token. Le prochain token est prédit en l’échantillonnant dans l’espace de probabilités produit par le modèle. Ce processus d’échantillonnage peut être non déterministe
Une hallucination survient lorsque cet échantillonnage produit des tokens qui forment une phrase fausse ou non voulue. On pourrait aussi considérer que tout ce que le modèle produit est une hallucination, mais nous l’entraînons à produire un espace où la probabilité d’halluciner ce que nous voulons est plus élevée. Sinon, il ne sortirait que du bruit dénué de sens
« Hallucination » est un très mauvais mot pour décrire ce qu’il est censé expliquer
Je me demande quelle part de la valeur ici vient de l’annulation du bruit positionnel créé par RoPE. J’aimerais voir non seulement les modèles RoPE ici, mais aussi un tableau comparant une version alibi et une baseline alibi
Cela reste une amélioration énorme, et félicitations aux chercheurs
Est-ce que ce qui se passe ici, c’est que le softmax ne peut pas pousser les valeurs à 0, mais qu’en soustrayant deux cartes de softmax on peut produire une sortie à 0 ?
C’est un bon problème à résoudre, mais je pense que l’approche est mauvaise
Pour savoir à quoi on a prêté attention et connaître tout le contexte, il faut procéder de manière hiérarchique. Si le vecteur différentiel est calculé à partir des mêmes entrées que le vecteur d’attention, je ne vois pas comment il pourrait savoir comment corriger correctement le vecteur d’attention