← 最新の論文
🤖 machine learning

A JoLT for the KV Cache: Near-Lossless KV Cache Compression via Joint Tucker and JL-Residual Allocation for LLMs

JoLTは、トークン軸と特徴量軸に対して部分的なタッカー分解を適用し、破棄された情報をジョンソン=リンデンストラウス回転を用いた低ビット残差によって復元することで、大規模言語モデルにおけるKVキャッシュのほぼロスレスな2〜3倍の圧縮を実現しており、これらすべては、パープレキシティおよびダウンストリームタスクにおけるベースライン性能を維持するために、統一されたバイト予算の下で最適化されている。

原著者: Rahul Krishnan, Volker Schulz

公開日 2026-07-15
📖 1 分で読めます☕ さくっと読める

原著者: Rahul Krishnan, Volker Schulz

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

あなたは、巨大で超スマートなロボットの脳(大規模言語モデル)を動かし、物語を語ろうとしているところだと想像してください。物語を継続するために、ロボットは現在の会話でこれまでに発したすべての単語を記憶しておく必要があります。ロボットはこの記憶を、「KVキャッシュ」と呼ばれる特別な「ノート」に保管しています。

問題は、物語が長くなるにつれて、このノートが巨大化していくことです。ノートが大きくなりすぎると、ロボットのメモリを食いつぶし始め、動作を遅くしてしまいます。それはまるで、マラソンを走っている最中にバックパックの中に図書館を詰め込もうとするようなもので、最終的には動けなくなってしまいます。

科学者たちは以前、このノートを縮小しようと試みてきました。ある者は全体を小さな箱に押し込めようとし(量子化)、またある者は行や列のパターンを見つけることでページを要約しようとしました(低ランク手法)。しかし、この論文の著者である Rahul Krishland と Volker Schulz は、他の手法が見落としていたことに気づきました。それは、ノートは単なる平らな紙の束ではないということです。ノートは、ヘッド(思考の多様な方法)、トークン(単語)、特徴量(詳細)という3つの異なる側面を持つ、3次元のブロックなのです。

彼らは、これら2つの側面には、簡単に押しつぶせる退屈で繰り返しの多い内容が詰まっている一方で、もう一方の側面はユニークであり、押しつぶすとロボットの知能を損なってしまうことを発見しました。

大発見: 「JoLT」手法

チームは、JoLT(Joint Tucker and JL-residual allocation)と呼ばれる新しいトリックを考案しました。これは、あなたのバックパックのための超スマートなパッキング・サービスのようです。

  1. スマートな絞り込み(部分的Tucker): 3次元ブロック全体を押しつぶそうとするのではなく、JoLTはデータを見てこう判断します。「よし、『ヘッド』と『レイヤー』はユニークで貴重だから、そのままにしておこう。でも、『トークン』と『特徴量』は無駄な部分が多いな」。つまり、これら特定の2つの側面だけを圧縮するのです。それは、巨大でふわふわした枕を取り出し、頑丈な端の部分はそのままにして、真ん中の空気だけを抜くようなものです。
  2. セーフティネット(JL-residual): 枕を押しつぶすと、いくらかの空気が逃げてしまいます。そのままにしておくと、枕は平らで使い物にならなくなります。JoLTはこの「逃げた空気」(失われた情報)を捉え、JL-residualと呼ばれる、非常に効率的な小さなセーフティネットに保存します。このネットはパッキングが非常に得意なので、わずかなビット数で足りない詳細を保持することができます。
  3. 完璧なバランス(ラグランジュ・デュアル): ここに魔法があります。ロボットには、使用できるスペースの厳格な予算(例えば1バイト)があります。JoLTは数学的な「スマート・アロケーター(賢い配分器)」を使用して、枕をどれくらい押しつぶすか、そしてセーフティネットにどれだけのスペースを与えるべきかを正確に決定します。Jo-LTは、メモリの特定のパーツ(「Key」)は圧縮しやすい一方で、別のパーツ(「Value」)は頑固でより多くのセーフティネット・スペースを必要とすることを理解しています。そして、最高の結果を得るために予算をダイナミックに動かします。

彼らが証明したもの(そして証明できなかったもの)

著者らは、この手法を2つの有名なロボットの脳、Mistral-7B(「Grouped-Query」スタイルを使用)と LLaMA-2-13B(「Multi-Head」スタイルを使用)でテストしました。

  • 「フリーゾーン」: 彼らは、メモリを2〜3倍(2–3×)縮小しても、ロボットのパフォーマンスが全く低下しないスイートスポットを見つけました。これは「ニアロスレス(ほぼ損失なし)」です。

    • GSM8K(数学の問題)や RULER(テキストの干し草の山の中から針を探すタスク)のようなテストにおいて、圧縮されたロボットは、統計的な誤差の範囲内で、圧縮されていないものと全く同じスコアを記録しました。
    • メモリを再構成する際の誤差は極めて小さく、Keyについては約0.009、Valueについては約0.006でした。これは、4ビット量子化やクロスレイヤーSVDといった従来の手法よりも、約10倍(1桁)優れた結果です。
  • 「崖(クリフ)」: 彼らは限界も発見しました。メモリを圧縮しすぎると(3倍を超えると)、状況は混乱します。

    • Mistralのロボットは、より多く圧縮しても性能が緩やかに低下する、緩やかな劣化を示しました。
    • しかし、LLaMAのロボットは、4倍から5倍の圧縮の間で「崖」に突き当たりました。その性能は急落し、パープレキシティ(予測の悪さを示す指標)が5.39から9.07へと大きく跳ね上がりました(これは、予測能力が大幅に悪化したことを意味します)。

高速版:FlashJoLT

完璧な絞り込みを計算するには時間がかかります。これを解決するために、彼らはFlashJoLTを作成しました。毎回重い数学的計算を完璧に行う代わりに、主要なパターンを素早く推測する「ランダム化された」ショートカットを使用します。

  • 結果: 圧縮スピードは、通常の(遅い)完璧なバージョンと比較して5〜13倍速いですが、品質は全く同じに保たれています。

彼らが否定したもの

論文は、この特定の問題において何がうまくいかないのかについても明確に述べています。

  • すべてを押しつぶすこと: 3つの側面すべて(ヘッド、トークン、特徴量)を圧縮しようとすることは、悪いアイデアです。「ヘッド」と「レイヤー」はあまりにユニークであるため、それらを押しつぶすとロボットの脳を傷つけてしまいます。
  • 固定ビット量子化: すべての数字に対して一律にビット数を下げること(例えば、すべてを4ビットに強制すること)では、この「スイートスポット」である2〜3倍の圧縮には到達できません。圧縮が足りないか、あるいは品質を失いすぎてしまいます。
  • 一律の扱い: 「Key」と「Value」を同じように扱うことはできません。「Value」は圧縮するのがずっと難しいため(2〜3倍難しい)、異なる予算配分が必要です。

結論

著者らはこれを実際のハードウェア(A100 GPU)で測定し、JoNTがロボットの知能を損なうことなく、メモリを2〜3倍に縮小するニアロスレスな方法であることを明らかにしました。

しかし、彼らはこれがあらゆるものに対する魔法の杖ではないことも慎重に述べています。

  • 「フリーゾーン」(2〜3倍)では非常にうまく機能しますが、特定のロボット(LLaMAなど)でさらに強く押し進めると、品質が急激に低下します。
  • メモリの「保存」自体は小さくなりますが、ロボットが話すたびに、そのメモリを「解凍(展開)」するための計算を行う必要があります。これを実用的なものにするためには、圧縮されたメモリを、展開することなく直接読み取れる特殊なコンピューターチップ(融合カーネル/fused kernels)をエンジニアが構築する必要があると彼らは示唆しています。

要約すると、JoLTは、長い会話のために膨大なスペースを節約する、数学的に高度なパッキング技術ですが、限界があり、フルスピードで動作させるためにはハードウェアからの助けを必要とします。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →