Attention multi-requêtes
L'attention multi-requêtes (MQA) est une variante permettant d'économiser de la mémoire sur l'attention du transformateur qui partage un ensemble de clés et de valeurs entre toutes les têtes d'attention.
Aperçu
It dramatically speeds up text generation by shrinking the memory the model must shuffle around.
Plongée profonde
L'attention multi-tête standard donne à chaque tête ses propres projections de requêtes, de clés et de valeurs. Lors de la génération, les clés et les valeurs de tous les jetons passés doivent être mises en cache et rechargées à chaque étape — ce cache KV devient le principal goulot d'étranglement, car sa lecture à partir de la mémoire est plus lente que les calculs eux-mêmes. Multi-Query Attention, proposé par Noam Shazeer en 2019, conserve des projections de requêtes distinctes par tête mais réduit les clés et les valeurs en une seule tête partagée. Cela réduit le cache KV d'un facteur égal au nombre de têtes, parfois 8 à 64 fois plus petit. Le résultat est un décodage autorégressif beaucoup plus rapide et une empreinte mémoire plus légère, avec seulement une légère baisse de qualité. Un juste milieu, Grouped-Query Attention, équilibre le compromis.
Aperçu technique
Dans MQA, les pondérations de requête produisent toujours H vecteurs de requête distincts, mais une seule projection clé et une projection de valeur unique sont partagées entre toutes les têtes. Chaque tête calcule l'attention en utilisant sa propre requête sur les mêmes clés et valeurs. Étant donné que les tenseurs K et V mis en cache n'évoluent plus avec le nombre de têtes, la bande passante de la mémoire pendant le décodage diminue fortement – et c'est la bande passante, et non le calcul, qui détermine la vitesse de génération des portes sur les accélérateurs modernes.
Impact stratégique
Vitesse et échelle
Les flux de travail linguistiques peuvent évoluer plus rapidement sans sacrifier la cohérence.
Accès et portée
Il étend l’accès à toutes les langues et styles de communication.
Décisions plus claires
Les équipes peuvent consacrer plus de temps au jugement tandis que l’automatisation gère les répétitions.
L'avenir de l'attention multi-requêtes
MQA a établi que vous pouvez éliminer les têtes de clé/valeur redondantes avec peu de dégâts, et cette information façonne désormais presque tous les LLM à inférence rapide. Le domaine a largement convergé vers Grouped-Query Attention (GQA), utilisé dans Llama 2/3 et bien d'autres, qui utilise quelques groupes KV plutôt qu'un pour récupérer la qualité tout en conservant l'essentiel de l'accélération. Les travaux futurs combinent ces idées avec la compression du cache KV, la quantification et l'attention multi-latente pour proposer des contextes plus longs et un service moins cher.
Mise en œuvre dans le monde réel
Accélération de la génération jeton par jeton dans les assistants de discussion où le cache KV, et non le calcul brut, limite le débit.
PaLM de Google, qui a utilisé Multi-Query Attention pour permettre une inférence efficace à grande échelle.
Servir de nombreux utilisateurs simultanés sur un seul GPU en réduisant la mémoire cache KV par requête.
Attention aux requêtes groupées dans Llama 2 70B et Llama 3, un descendant direct équilibrant la vitesse de MQA avec une qualité d'attention totale.
Risques et garde-fous
Les faits hallucinés peuvent discrètement entrer dans des rapports, des flux de support ou des résultats de recherche.
La sensibilité des invites peut créer des résultats incohérents pour des demandes similaires.
Les données textuelles sensibles peuvent être exposées si les contrôles d’accès sont faibles.
Feuille de route de mise en œuvre
Définissez le format de sortie, le ton et les normes de qualité avant le déploiement.
Établissez des réponses auprès de sources fiables chaque fois que la précision est importante.
Gardez un point de contrôle d’examen humain pour les résultats à enjeux élevés.
Suivez les modèles de défaillance et recyclez régulièrement les invites ou les flux de travail.
Continuez à explorer
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Multi-Query Attention quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Guide suivant
Attention aux requêtes groupées
Questions fréquemment posées
What is Multi-Query Attention?
L'attention multi-requêtes (MQA) est une variante permettant d'économiser de la mémoire sur l'attention du transformateur qui partage un ensemble de clés et de valeurs entre toutes les têtes d'attention. Il accélère considérablement la génération de texte en réduisant la mémoire dans laquelle le modèle doit se déplacer.
Que partage l’attention multi-requêtes entre toutes les têtes d’attention ?
MQA conserve des requêtes distinctes par tête, mais partage une projection clé et une projection de valeur sur toutes les têtes.
Quel est le principal goulot d’étranglement résolu par MQA lors de la génération autorégressive ?
Le rechargement du grand cache KV à chaque étape est limité à la bande passante ; MQA réduit ce cache pour accélérer le décodage.
De quel facteur environ MQA réduit-il le cache KV ?
Étant donné que les clés et les valeurs passent de H têtes à une, le cache diminue approximativement du nombre de têtes.
Quel est le principal compromis lié à l’utilisation de MQA ?
Le partage de clés et de valeurs réduit légèrement la capacité de représentation, provoquant une légère diminution de la qualité en échange de gros gains de vitesse.
Quelle variante se situe entre l’attention multi-têtes standard et le MQA ?
Grouped-Query Attention (GQA) utilise plusieurs groupes KV au lieu d'un seul, équilibrant ainsi la qualité et la vitesse.