テクニカルガイド

KV キャッシュの最適化

KV キャッシュには、トランスフォーマーがすでに計算したキーと値が保存されるため、新しいトークンごとに作業をやり直すことはありませんが、そのキャッシュはギガバイトにまで膨れ上がる可能性があります。

このガイドを聴くAIによるナレーション · ~2 min

このページでは2分の読書
  1. 概要
  2. ディープダイブ
  3. 現実世界の実装
  4. KV キャッシュ最適化の将来
  5. 実践する
  6. 探検を続けましょう
  7. よくある質問

概要

KV cache optimization shrinks and manages that memory so models serve longer contexts to more users at once.

ディープダイブ

In a transformer, each new token attends to all previous tokens via attention's keys (K) and values (V). Recomputing K and V for the whole sequence at every step would be quadratic and wasteful, so models cache them: the KV cache. The downside is size. The cache grows linearly with sequence length, batch size, layers, and heads, so a long-context request can consume more GPU memory than the model weights themselves. Optimization tackles this from several angles: paged memory (vLLM's PagedAttention) stores the cache in non-contiguous blocks to reduce fragmentation and enable sharing; quantization stores K and V in 8-bit or 4-bit; and architectural changes like Grouped-Query Attention (GQA) and Multi-Query Attention (MQA) let many query heads share fewer key/value heads, slashing cache size at the source.

現実世界の実装

vLLM's PagedAttention serving many concurrent chat sessions by packing KV blocks while reducing memory fragmentation

Llama モデルのグループ化されたクエリ アテンションにより、KV キャッシュ サイズが削減され、より長いコンテキストが GPU メモリに収まるようになります。

KV キャッシュを 8 ビット (KV8) に量子化し、長い文書の要約時にキャッシュ メモリを約半分にします

数千の API リクエストにわたって共有システム プロンプトの KV ブロックを再利用するプレフィックス キャッシュ

KV キャッシュ最適化の将来

コンテキスト ウィンドウが数十万または数百万のトークンに拡張されると、KV キャッシュがサービス提供の主なコストになります。積極的なキャッシュ圧縮とエビクション (注目度の低いトークンの削除)、デフォルトとしてのクロスリクエスト プレフィックス共有、CPU または NVMe へのコールド キャッシュのオフロード、および MLA や GQA などのアーキテクチャが標準になることが予想されます。キャッシュ管理は、階層とスマート プリフェッチを備えた完全なメモリ階層にますます似てきます。

実践する

なぜそれが重要なのか

  • 費用と予算. アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
  • より明確な判決. 技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
  • 品質管理. より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

気をつけてください

  • 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
  • インフラストラクチャとメンテナンスのコストは過小評価されがちです。
  • システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

次のステップ

  1. 実装前にレイテンシ、品質、コストの目標を定義します。
  2. 現実的な負荷とデータ条件でのベンチマーク。
  3. エラー、ドリフト、ユーザーへの影響を計測器で監視します。
  4. スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

探検を続けましょう

無料ニュースレター

毎日のAIブリーフィングを受け取る

毎週平日の朝に英語で書かれた3つの検証済みAIストーリー。無料で永続的、広告なし。

毎週平日に1通のメール。ワンクリックで購読解除。住所を販売または共有しません。

自分自身をテストしてください

Take the KV Cache Optimization quiz

すべての回答に即時フィードバック、合格後は検証可能なID付きの共有可能な証明書を取得。

クイズを開始する

無料AI教育をサポート。AI Understandingは501(c)(3)の非営利団体です — 広告なし、課金壁なし、常に。 寄付をする

よくある質問

What is KV Cache Optimization?

KV キャッシュには、トランスフォーマーがすでに計算したキーと値が保存されるため、新しいトークンごとに作業をやり直すことはありませんが、そのキャッシュはギガバイトにまで膨れ上がる可能性があります。 KV キャッシュの最適化は、そのメモリを縮小して管理するため、モデルはより多くのユーザーに一度に長いコンテキストを提供します。

KV キャッシュには何が保存されますか?またその理由は何ですか?

以前のトークンのキーと値をキャッシュすると、新しいトークンごとにアテンションの計算をやり直す必要がなくなり、時間を節約できます。

KV キャッシュがメモリの問題になるのはなぜですか?

キャッシュ サイズはコンテキストの長さと同時実行性に応じて変化するため、長いリクエストでは膨大な量の GPU メモリが使用される可能性があります。

PagedAttendant はどのようなオペレーティング システムの概念を借用していますか?

PagedAttendance は、OS ページングと同様に、テーブルを通じてマップされた不連続な固定サイズのブロックにキャッシュを保存します。

グループ化クエリとマルチクエリ アテンションはどのようにして KV キャッシュ サイズを削減しますか?

複数のクエリ ヘッド間でキー/値ヘッドを共有すると、保存する K ベクトルと V ベクトルがはるかに少なくなります。

KV キャッシュでのプレフィックス共有の利点の 1 つは何ですか?

共有システム プロンプトは同一の KV エントリを生成するため、複数のリクエストが重複することなく同じブロックを指すことができます。