Nvidiaの研究者たちは、モデル自体を変更することなく、対話履歴を追跡するために大規模言語モデルが必要とするメモリ量を劇的に削減する新しい手法を発表しました — 最大で20倍にも。手法としては KV Cache Transform Coding (KVTC) と呼ばれ、JPEGのような画像・動画圧縮フォーマットのアイデアを適用して、マルチターンAIシステムの背後にあるキーと値のキャッシュを縮小し、GPUメモリの需要を減らし、最初のトークン生成までの時間を最大8倍速くします。
エンタープライズAIアプリケーションで代理人と長い文脈に依存する場合、これはGPUメモリコストの削減、プロンプト再利用の改善、落とされたKVキャッシュ値を再計算する必要を避けることによる待機時間の最大8倍削減へとつながります。
大規模に提供するには、特にマルチターンの会話や長いコーディングセッションにおいて、膨大なデータを管理する必要があります。ユーザーがプロンプトに追加するたびに、システムは会話履歴全体を一から再計算しないよう、記憶に保存されたデータに依存します。
しかし、このメモリ占有量は急速に増大し、待機時間とインフラコストという深刻なボトルネックを生み出します。
大規模化時にKVキャッシュがボトルネックとなる理由
コーディングアシスタントやチャットアプリのようなマルチターンAIアプリケーションを動かすには、大規模言語モデルは「キーと値(KV)キャッシュ」として知られる仕組みに依存しています。このキャッシュは、会話の過去の各トークンに対する隠れた数値表現を保存します。モデルが過去の会話を記憶しているため、ユーザーが新しいプロンプトを送信するたびに、全てのチャット履歴を一から再処理する必要がありません。
しかし、長い文脈タスクを持つAIアプリケーションにとって、このキャッシュは容易に数ギガバイト以上に膨らむことがあります。モデルがスケールアップして、ますます長い推論チェーンを生成するにつれて、KVキャッシュはシステムのスループットと待機時間の重要なボトルネックとなります。
これは本番環境にとって難しい課題を生み出します。推論中、LLMは非常にメモリに依存するため、複数のユーザーを同時に提供することは、計算時間よりもGPUメモリの枯渇によって制約されます。「効果的なKVキャッシュ管理が極めて重要になります。待機中のキャッシュは他のユーザーに対応できるようにGPUメモリから迅速にオフロードされ、再開された会話のために迅速に復元されなければなりません」と、Nvidiaのシニアディープラーニングエンジニア、Adrian Lancucki氏はVentureBeatに語りました。「これらのインフラストラクチャコストは現在、商用価格に反映されています(例:'prompt caching')キャッシュに対する追加料金とともに。」
妥協的な解決策として、キャッシュをCPUメモリやSSDなどの低階層ストレージへオフロードすることも、ネットワーク帯域を飽和させ、ボトルネックを生み出す重大なデータ転送オーバーヘッドを招く可能性があります。
一般的な解決策の1つは、KVキャッシュを圧縮してメモリ使用量を減らすことです。しかし、既存の解決策は問題を全体的に解決するには十分ではないことが多いです。ネットワーク伝送のためにキャッシュを圧縮するように設計されたツールは、低い圧縮率しか達成しません。その他の圧縮手法は、各ユーザープロンプトごとにリソース集約的な計算をその場で行う必要があります。一方、量子化 やスパーシフィケーションのような一般的な手法は、待機時間と精度の低下を招くことがあり、モデルのウェイトを永久に変更する必要がある場合があり、それらの実用性を制限します。
Nvidiaの研究者は、既存のアプローチは「KVテンソルの強力な低ランク構造をほとんど活用していない」と指摘しています。これは、次元数が非常に多く、サイズがギガバイト級であるにもかかわらず、KVキャッシュに含まれる実際の基礎情報が高度に相関しており、はるかに少ない変数で正確に表現できることを意味します。これを活用するのがKVTCの焦点です。
メディアコーデックの工夫を借りる
概略として、KVTCはクラシックなメディアから実証済みの概念を借用してAIのメモリのボトルネックに対処します。JPEGのような画像・動画圧縮形式を支えるトランスフォームコーディングです。フレームワークは、推論フェーズ間に実行される高速な多段階プロセスを通じてキャッシュのフットプリントを縮小し、実際のトークン生成を遅らせません。『この「メディア圧縮」アプローチは、エンタープライズ展開に有利です。モデルのウェイトやコードの変更を必要とせず、伝送層の近くで動作します』とLancuckiは語りました。
まず、KVTCは 主成分分析を用いて、KVキャッシュデータの特徴を重要度に基づいて整列させます。PCAは、データの最も重要な特徴を分離し、冗長性を削ぎ落とすことでモデルをより効率的にするために機械学習でよく用いられる統計的手法です。このプロセスのこの部分は、モデルごとに初期の較正フェーズで一度だけ実行されます。PCA整列マトリクスはオフラインで計算され再利用されるため、個々のユーザープロンプトの推論時に圧縮処理を遅くすることはありません。
次に、システムは動的計画法アルゴリズムを用いて、特定のデータ次元ごとに実際に必要なメモリ量を自動的に予算配分します。最も重要な主成分には高精度を割り当て、末尾の、より重要でない成分にはビット数を減らすか、ゼロビットを割り当てて完全に削除します。
最後に、この最適化された量子化データをバイト配列に詰め込み、DEFLATEと呼ばれるエントロピー符号化器を通します。このステップは、NvidiaのnvCOMPライブラリを使用してGPU上で並列に実行されるため、非常に高速に動作します。
ユーザーが戻ってきたときにデータを解凍するには、KVTCは計算を単純に逆順で実行します。プロセスを速めるために、解凍の重い作業をチャンクごと、層ごとに実行します。これにより、最初の解凍チャンクを用いてAIモデルが次の応答の計算を早期に開始でき、以降のチャンクはバックグラウンドで解凍されていきます。
20xの圧縮、精度低下は1%未満
Nvidiaの研究者は、1.5Bから70Bパラメータの多様なモデル群でKVTCをテストしました。Llama 3ファミリー、Mistral NeMo、推論重視のR1-distilled Qwen 2.5モデルなどが含まれます。これらのモデルは、MATH-500やLiveCodeBenchのような複雑な数学・コーディング課題、長文文脈検索タスクのNeedle In A Haystackやキー-バリュー検索などのベンチマークで評価されました。
KVTCを、いくつかの人気のベースラインと対比させました:トークン排除法(例:H2OとTOVA)、高度な量子化技術(例:KIVIとGEAR)、およびxKV(特異値分解に基づくプロンプト圧縮技術)です。
実効的な20倍の圧縮比で、KVTCはほとんどのタスクにおいて、元の未圧縮のバニラモデルと比較して、精度低下を1パーセンテージ未満の範囲に保つパフォーマンスを一貫して維持しました。研究者がシステムを32倍および64倍の圧縮という極端な限界まで押し進めたとき、KVTCは驚くほど安定してその地位を保ちました。
対照的に、KIVIやGEARのような一般的なベースラインは、5xの圧縮比でも大幅な精度低下を被り始め、特に長文文脈タスクで顕著です。H2OやTOVAのような標準的なキャッシュ排除法は、汎用の圧縮機として全く不十分で、深い文脈情報の取得を求められると機能を崩します。
コーディングアシスタント向けにQwen 2.5 1.5Bのような小型の推論モデルを展開することを考えてみてください。通常、このモデルは1つのトークンにつき29KBのメモリを必要とします。8xの圧縮設定を使用すると、KVTCはそのフットプリントをトークンあたり約3.2KBに縮小し、コーディングの精度はほとんど0.3ポイントの低下にとどまります。
企業アーキテクトにとって、この技術をいつ導入すべきかの判断は、ユースケースに大きく依存します。『KVTCは長い文脈・マルチターンのシナリオに最適化されています』と Lancucki は述べました。彼はコーディングアシスタント、反復的なエージェント推論ワークフロー — 特に高遅延ツール出力を待つ場合 — および反復的RAGを理想的な適用例として挙げました。『ただし、短い会話にはKVTCをスキップすべきです』と彼は付け加えました。新しいトークンの未圧縮のスライディングウィンドウが短い対話ではシーケンスを支配し、意味のある圧縮比を妨げるためです。
KVTCは非常に移植性が高く、最適化された実装は近くDynamoフレームワーク内のKV Block Manager(KVBM)に統合され、vLLMのような人気のオープンソース推論エンジンと互換性を持つようになる予定です。
ユーザーエクスペリエンスの観点で最も重要なのは、最初のトークンまでの時間(TTFT)を大幅に短縮することです。プロンプトを送信してモデルが最初の応答トークンを生成するまでの遅延です。8,000トークンのプロンプトでは、Nvidia H100 GPU上で動作する通常の12Bモデルが履歴を0から再計算するのに約3秒かかります。一方、KVTCキャッシュを解凍するにはシステムはわずか380ミリ秒で済み、最初のトークンを生成するまでの時間を最大8倍短縮します。
KVTCはモデルがトークンに注意を払う方法を変更しないため、理論的には Dynamic Memory Sparsification(DMS)といった高度な圧縮手法と互換性があります。DMSは文脈ウィンドウから最も重要度の低いトークンを完全に削除することでメモリを最適化する自己回帰的なトークン排除法です。
「原則として、KVTCはDMSの補完的存在です」とLancuckiは述べました。「DMSが時間軸に沿って個々のトークンを追い出すのに対し、KVTCは各位置でデータを個別に圧縮します。」ただし、彼は、彼らが異なる次元を対象としている一方で、「KVTCをスパース化されたキャッシュ上で達成できる圧縮比はまだ検証されていません」と警告しました。
モデルがネイティブに数百万トークンのコンテキストウィンドウへとスケールし続けるにつれて、堅牢なメモリ管理の必要性はさらに高まるだろうとLancuckiは述べました。「さまざまなモデルアーキテクチャにおけるKVキャッシュの構造的類似点と繰り返し現れるパターンを踏まえると、専用の標準化された圧縮レイヤーの出現は可能性が高い」と。ハードウェアの進歩に支えられ、AIインフラは近い将来、KVキャッシュの圧縮を不可視の標準化レイヤーとして扱うようになるかもしれず、まるで動画圧縮が今日のストリーミングにとって不可欠なレイヤーであるかのように。




