グループ化されたクエリのアテンション
グループ化クエリ アテンション (GQA) は、複数のクエリ ヘッドが同じキーと値のヘッドを共有できるようにすることで、テキスト生成中に必要なメモリを削減する方法です。
概要
It makes large models much faster to serve with almost no quality loss.
ディープダイブ
標準的なマルチヘッド アテンション レイヤーでは、すべてのヘッドが独自のクエリ、キー、および値を持ちます。生成中、以前のすべてのトークンのキーと値はキャッシュ (「KV キャッシュ」) されるため、モデルはそれらを再計算しません。多くのヘッドと長いコンテキストがあるため、このキャッシュは巨大になり、推論時にメモリ帯域幅を支配します。 2023 年に Google 研究者によって導入された GQA は、クエリ ヘッドをグループ化し、各グループにキーと値のヘッドの単一の共有セットを与えます。クエリ ヘッドが 32 個あるのに KV グループが 8 個しかない場合、KV キャッシュは約 4 倍に縮小します。これは、完全なマルチヘッド アテンション (すべてのヘッドが個別) とマルチクエリ アテンション (すべてのヘッドに 1 つの共有 KV) の間に位置し、完全なアテンションに近い品質を維持しながら、MQA の速度のほとんどを実現します。 Llama 2 70B 以降の多くのモデルで採用されました。
技術的な洞察
注意の質は、多くの異なるクエリ方向があることに大きく依存しますが、キーと値の共有は許容されます。 GQA はこの非対称性を利用します。つまり、すべてのクエリ ヘッドを保持しますが、グループ内のクエリ全体で各共有 KV ヘッドを複製します。推測によると、KV キャッシュがメモリ帯域幅の主な消費者であるため、節約効果は得られます。 KV ヘッドが少ないということは、生成されたトークンごとに読み取るデータが少ないことを意味します。モデルは多くの場合、既存のマルチヘッド チェックポイントを GQA チェックポイントに変換するために短期間「アップトレーニング」されます。
戦略的影響
速度とスケール
言語ワークフローは、一貫性を犠牲にすることなく、より高速に移行できます。
アクセスと到達範囲
言語やコミュニケーション スタイルを超えてアクセスが拡張されます。
より明確な判決
自動化が繰り返しを処理する間、チームは判断により多くの時間を費やすことができます。
グループ化されたクエリ アテンションの将来
GQA は、わずかな品質コストをきれいに引き換えて大きなサービングの勝利を得ることができるため、現在、無差別級モデルの標準デフォルトとなっています。 FlashAttendant、KV キャッシュ量子化などの他の効率化手法や、キャッシュをさらに圧縮するマルチヘッド潜在アテンションなどの新しいスキームとの組み合わせが増えることが予想されます。コンテキスト ウィンドウが拡大しても、KV キャッシュ サイズの制御は設計上の問題の中心であり、GQA スタイルのヘッド共有が重要な手段であり続けるでしょう。
現実世界の実装
GQA を使用して、より小さい KV キャッシュで長いコンテキストを提供する Llama 2 70B および Llama 3
GPU メモリを削減して、大規模なチャット モデルを少数または安価なアクセラレータに適合させる
KV キャッシュ帯域幅がボトルネックとなっている運用 API でのトークンごとの生成を高速化します。
メモリを使い果たさずに多くのユーザーに同時にサービスを提供するために、より大きなバッチ サイズを有効にする
リスクとガードレール
幻覚のような事実が、レポート、サポート フロー、または研究結果に静かに組み込まれる可能性があります。
迅速な対応により、同様のリクエスト間で一貫性のない結果が生じる可能性があります。
アクセス制御が弱いと、機密テキスト データが漏洩する可能性があります。
実装ロードマップ
展開する前に、出力形式、トーン、品質基準を定義します。
正確さが重要な場合は常に、信頼できる情報源を使って地上対応を行ってください。
一か八かの成果物については人間によるレビュー チェックポイントを維持します。
失敗パターンを追跡し、プロンプトやワークフローを定期的に再トレーニングします。
探検を続けましょう
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 Grouped-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 Grouped-Query Attention?
グループ化クエリ アテンション (GQA) は、複数のクエリ ヘッドが同じキーと値のヘッドを共有できるようにすることで、テキスト生成中に必要なメモリを削減する方法です。これにより、品質をほとんど損なうことなく、大規模なモデルをはるかに高速に提供できるようになります。
グループ化されたクエリ アテンションでは、クエリ ヘッドのグループ間で何が共有されますか?
GQA は個別のクエリ ヘッドを保持しますが、クエリ ヘッドの各グループが 1 セットのキーと値のヘッドを共有できるため、KV キャッシュが縮小されます。
GQA は、どちらの両極端の中間点であると最もよく説明されますか?
マルチヘッドはすべてのヘッドに独自の KV を与えます。マルチクエリはすべてのヘッドに対して 1 つの KV を共有します。 GQA はいくつかの KV グループとの間に位置します。
GQA は主に推論のどの部分を安価にしますか?
節約効果は生成時に現れ、KV キャッシュの読み取りがメモリ帯域幅の主なコストとなります。
モデルに 32 のクエリ ヘッドと 8 つの KV グループがある場合、KV キャッシュはおよそ何倍に減少しますか?
32 のクエリ ヘッドを 8 つの共有 KV グループで割ると、キャッシュされたキーと値がおよそ 4 分の 1 に削減されます。
KV ヘッドを共有しているにもかかわらず、GQA はモデルの品質のほとんどを維持できるのはなぜですか?
アテンションは、個別のクエリ方向の喪失を許容するよりも、キーと値の共有を許容する方がはるかに優れているため、GQA は品質を高く保ちます。