マルチクエリアテンション
マルチクエリ アテンション (MQA) は、すべてのアテンション ヘッド間で 1 セットのキーと値を共有する、トランスフォーマ アテンションのメモリを節約する工夫です。
概要
It dramatically speeds up text generation by shrinking the memory the model must shuffle around.
ディープダイブ
標準的なマルチヘッド アテンションでは、すべてのヘッドに独自のクエリ、キー、および値の投影が与えられます。生成中、過去のすべてのトークンのキーと値をキャッシュし、各ステップで再ロードする必要があります。メモリからの読み取りは計算自体よりも遅いため、この KV キャッシュが主なボトルネックになります。 2019 年に Noam Shazeer によって提案されたマルチクエリ アテンションは、ヘッドごとに個別のクエリ プロジェクションを保持しますが、キーと値を単一の共有ヘッドに集約します。これにより、KV キャッシュがヘッドの数に等しい係数で縮小され、場合によっては 8 分の 1 から 64 分の 1 に縮小されます。その結果、自己回帰デコードが大幅に高速化され、メモリ使用量が軽くなり、品質の低下はわずかです。中間点であるグループ化クエリ アテンションは、トレードオフのバランスをとります。
技術的な洞察
MQA では、クエリの重みによって H 個の個別のクエリ ベクトルが生成されますが、単一のキー プロジェクションと単一の値のプロジェクションがすべてのヘッドで共有されます。各ヘッドは、同じキーと値に対する独自のクエリを使用してアテンションを計算します。キャッシュされた K テンソルと V テンソルはヘッドの数に応じてスケールしなくなるため、デコード中のメモリ帯域幅は急激に低下します。最新のアクセラレータでは、計算ではなく帯域幅が生成速度を左右します。
戦略的影響
速度とスケール
言語ワークフローは、一貫性を犠牲にすることなく、より高速に移行できます。
アクセスと到達範囲
言語やコミュニケーション スタイルを超えてアクセスが拡張されます。
より明確な判決
自動化が繰り返しを処理する間、チームは判断により多くの時間を費やすことができます。
マルチクエリアテンションの未来
MQA は、ほとんど害を及ぼさずに冗長なキー/値ヘッドを削除できることを確立し、その洞察がほぼすべての高速推論 LLM を形成するようになりました。この分野は主に、Llama 2/3 や他の多くで使用されている Grouped-Query Attendant (GQA) に集中しています。GQA では、速度向上のほとんどを維持しながら品質を回復するために、1 つではなくいくつかの KV グループを使用します。将来の研究では、これらのアイデアを KV キャッシュ圧縮、量子化、およびマルチ潜在アテンションと組み合わせて、より長いコンテキストとより安価なサービスを推進します。
現実世界の実装
生のコンピューティングではなく KV キャッシュがスループットを制限するチャット アシスタントでのトークンごとの生成を高速化します。
Google の PaLM。マルチクエリ アテンションを使用して効率的な大規模推論を可能にします。
リクエストごとの KV キャッシュ メモリを縮小することで、1 つの GPU で多数の同時ユーザーにサービスを提供します。
Llama 2 70B および Llama 3 のグループ化クエリ アテンション。MQA の速度とフル アテンションの品質のバランスをとる直系の子孫です。
リスクとガードレール
幻覚のような事実が、レポート、サポート フロー、または研究結果に静かに組み込まれる可能性があります。
迅速な対応により、同様のリクエスト間で一貫性のない結果が生じる可能性があります。
アクセス制御が弱いと、機密テキスト データが漏洩する可能性があります。
実装ロードマップ
展開する前に、出力形式、トーン、品質基準を定義します。
正確さが重要な場合は常に、信頼できる情報源を使って地上対応を行ってください。
一か八かの成果物については人間によるレビュー チェックポイントを維持します。
失敗パターンを追跡し、プロンプトやワークフローを定期的に再トレーニングします。
探検を続けましょう
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
次のガイド
グループ化されたクエリのアテンション
よくある質問
What is Multi-Query Attention?
マルチクエリ アテンション (MQA) は、すべてのアテンション ヘッド間で 1 セットのキーと値を共有する、トランスフォーマ アテンションのメモリを節約する工夫です。モデルがシャッフルする必要があるメモリを縮小することにより、テキスト生成が劇的に高速化されます。
マルチクエリ アテンションがすべてのアテンション ヘッドに共有するものは何ですか?
MQA はヘッドごとに個別のクエリを保持しますが、すべてのヘッドで 1 つのキー プロジェクションと 1 つの値プロジェクションを共有します。
MQA が自己回帰生成中に対処する主なボトルネックは何ですか?
大規模な KV キャッシュを再ロードする各ステップには帯域幅の制限があります。 MQA は、デコードを高速化するためにそのキャッシュを縮小します。
MQA はおよそどのような要因で KV キャッシュを縮小しますか?
キーと値は H ヘッドから 1 に崩壊するため、キャッシュはおよそヘッド カウントだけ縮小します。
MQA を使用する場合の主なトレードオフは何ですか?
キーと値を共有すると、表現能力がわずかに低下し、速度が大幅に向上する代わりに品質が若干低下します。
標準のマルチヘッド アテンションと MQA の間に位置するバリアントはどれですか?
Grouped-Query Attendance (GQA) は、1 つの KV グループではなく複数の KV グループを使用して、品質と速度のバランスをとります。