テクニカルガイド

KV キャッシュの最適化

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

概要

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

KV キャッシュの最適化は、大規模なモデルの品質、インフラストラクチャのコスト、遅延、信頼性に影響を与える技術的な構成要素です。

ディープダイブ

トランスフォーマーでは、新しいトークンはそれぞれ、アテンションのキー (K) と値 (V) を介して以前のすべてのトークンに対応します。すべてのステップでシーケンス全体の K と V を再計算することは 2 次的で無駄が多いため、モデルはそれらをキャッシュします (KV キャッシュ)。欠点はサイズです。キャッシュはシーケンスの長さ、バッチ サイズ、レイヤー、ヘッドに応じて直線的に増加するため、長いコンテキストのリクエストはモデルの重み自体よりも多くの GPU メモリを消費する可能性があります。最適化では、いくつかの角度からこれに取り組みます。ページ メモリ (vLLM の PagedAttendance) は、キャッシュを非連続ブロックに保存して断片化を排除し、共有を可能にします。量子化では、K と V を 8 ビットまたは 4 ビットで保存します。また、Grouped-Query Attendant (GQA) や Multi-Query Attendance (MQA) などのアーキテクチャの変更により、多くのクエリ ヘッドが共有するキー/値ヘッドの数が減り、ソースのキャッシュ サイズが大幅に削減されます。

技術的な洞察

PagedAttendance はオペレーティング システムから仮想メモリ ページングを借用します。キャッシュはルックアップ テーブルを通じてマップされた固定サイズのブロック内に存在するため、リクエストは必要なブロックのみを使用し、同一のプレフィックス (共有システム プロンプトなど) が同じブロックを指すことができます。 DeepSeek モデルで使用されるマルチヘッド潜在アテンション (MLA) は、K と V を小さな共有潜在ベクトルに圧縮し、精度を維持しながらメモリを大幅に削減します。

KV キャッシュの最適化をマスターする

KV キャッシュには、トランスフォーマーがすでに計算したキーと値が保存されるため、新しいトークンごとに作業をやり直すことはありませんが、そのキャッシュはギガバイトにまで膨れ上がる可能性があります。 KV キャッシュの最適化は、そのメモリを縮小して管理するため、モデルはより多くのユーザーに一度に長いコンテキストを提供します。 KV キャッシュの最適化は、大規模なモデルの品質、インフラストラクチャのコスト、遅延、信頼性に影響を与える技術的な構成要素です。深い理解を得るには、KV キャッシュ最適化を単一の機能ではなくオペレーティング モデルとして扱います。望ましい結果を定義し、前提条件を明確にし、システムが確実に実行できることと、専門家の判断が必要なことを分離します。

実際、KV キャッシュ最適化を使用する強力なチームは、信頼性とコストに照らしてアーキテクチャ、データ、インフラストラクチャの選択を最適化します。明示的な成功基準を文書化し、現実的なデータとワークフローに対してテストし、一度限りのベンチマークの成功ではなく、観察された失敗パターンに基づいて反復します。ここで、理論的な理解が、製品、ポリシー、運用全体にわたる永続的な機能に変わります。

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。同時に、1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。最も回復力のあるアプローチは、実験のスピードとガバナンスの規律を組み合わせることであり、パイロットを実行し、証拠を取得し、意思決定ログを公開し、モデルの動作、ユーザーの期待、規制要件の進化に応じて安全対策を継続的に更新します。

戦略的影響

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。高品質の導入では、これが測定可能な運用ルール、所有権の境界、定期的なレビューの儀式に変換されるため、チームは曖昧さを拡大するのではなく、自信を拡大することができます。

技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。

技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。高品質の導入では、これが測定可能な運用ルール、所有権の境界、定期的なレビューの儀式に変換されるため、チームは曖昧さを拡大するのではなく、自信を拡大することができます。

より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。高品質の導入では、これが測定可能な運用ルール、所有権の境界、定期的なレビューの儀式に変換されるため、チームは曖昧さを拡大するのではなく、自信を拡大することができます。

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

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

現実世界の実装

メモリの断片化を起こさずに KV ブロックをパックすることで、多数の同時チャット セッションを処理する vLLM の PagedAttending

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

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

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

実装パターン

KV キャッシュ最適化の実践

vLLM の PagedAttendance は、メモリの断片化を起こさずに KV ブロックをパックすることで、多数の同時チャット セッションを処理します。

メモリの断片化を起こさずに KV ブロックをパックすることで、多くの同時チャット セッションを提供する vLLM の PagedAttend チームは、通常、品質のしきい値を事前に定義し、エッジ ケースに対する人的エスカレーション パスを確保し、生産性の向上とエラー コストの両方を長期的に追跡すると、より良い結果が得られます。

KV キャッシュ最適化の実践

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

Llama モデルのグループ化されたクエリ アテンションにより、KV キャッシュ サイズが削減され、より長いコンテキストが GPU メモリに収まるように チームは通常、品質のしきい値を事前に定義し、エッジ ケースに対する人間によるエスカレーション パスを維持し、生産性の向上とエラー コストの両方を長期的に追跡すると、より良い結果が得られます。

KV キャッシュ最適化の実践

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

KV キャッシュを 8 ビット (KV8) に量子化し、長い文書の要約中にキャッシュ メモリをおよそ半分にします。チームは通常、品質のしきい値を事前に定義し、エッジ ケースに対して人的エスカレーション パスを確保し、生産性の向上とエラー コストの両方を長期的に追跡すると、より良い結果が得られます。

KV キャッシュ最適化の実践

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

数千の API リクエストにわたって共有システム プロンプトの KV ブロックを再利用するプレフィックス キャッシュ チームは通常、品質のしきい値を事前に定義し、エッジ ケースに対する人的エスカレーション パスを確保し、生産性の向上とエラー コストの両方を長期にわたって追跡すると、より良い結果が得られます。

リスクとガードレール

!

1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。

!

インフラストラクチャとメンテナンスのコストは過小評価されがちです。

!

システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

実装ロードマップ

1

実装前にレイテンシ、品質、コストの目標を定義します。

実装前にレイテンシ、品質、コストの目標を定義します。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

2

現実的な負荷とデータ条件でのベンチマーク。

現実的な負荷とデータ条件でのベンチマーク。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

3

エラー、ドリフト、ユーザーへの影響を計測器で監視します。

エラー、ドリフト、ユーザーへの影響を計測器で監視します。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

4

スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

スケーリングの前に、ロールバックとインシデント対応のパスを準備します。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

探検を続けましょう