Signals Desk に戻る
Signals Desk // ai-news検証済みブリーフ

IndexCache:長文コンテキストの推論を1.82倍高速化、スパースアテンションのボトルネックを克服

清華大学とZ.aiの研究チームが、IndexCacheと名付けられた新しいスパースアテンション最適化技術を発表しました。この技術は、モデルの異なる層で重要情報を選択する際の冗長性を利用し、ネットワーク層を計算層と共有層に分けることで、最大75%の冗長な計算を削減します。20万トークンの長文コンテキストを処理する際に、IndexCacheはモデルの初回トークン生成速度を1.82倍、スループットを1.48倍向上させることができます。この技術は主にDeepSeekやGLMなどDSAアーキテクチャを採用するモデルを対象としており、従来のKVキャッシュ圧縮ではなく、長文推論におけるインデクサーの計算ボトルネックの解決を目指します。

AI技术前沿大模型优化

20万トークンにも及ぶ長いコンテキストの処理は、いかなる大規模言語モデル(LLM)にとっても、高コストかつ低速な課題です。コンテキストが長くなるほど、コストとレイテンシは増大します。この問題に対し、清華大学とZ.aiの研究者チームは「IndexCache」と名付けられた新技術を提案しました。この技術は、スパースアテンションモデルにおける冗長な計算を最大75%削減し、長文テキストを処理する際の初回トークン生成速度(TTFT)を1.82倍、生成スループットを1.48倍向上させることができます。

この技術は、744B(7440億)パラメータを持つGLM-5モデルで初期検証が行われており、最新のDeepSeekやGLMシリーズなど、DeepSeekスパースアテンション(DSA)アーキテクチャを採用するモデルに適用可能です。これにより、企業が本番環境で長文対応アプリケーションを導入する際に、ユーザーにより高速な応答体験を提供できるようになります。

自己注意機構の「二乗の呪い」

大規模言語モデルの核となる能力は、自己注意機構(Self-Attention)に由来します。簡単に言えば、モデルが次のトークンを予測するために、現在のトークンとそれ以前のすべてのトークンとの関連性を計算する必要があります。このメカニズムは非常に強力ですが、致命的な欠点があります。それは、計算量とメモリ消費量がシーケンス長の二乗に比例して増加する(O(n²))という点です。

長文ドキュメントの処理、マルチステップのAIエージェントワークフロー、または長い思考連鎖の推論といった応用シーンでは、この「二乗の呪い」により、推論速度は急激に低下し、計算コストとメモリコストは高騰します。スパースアテンション(Sparse Attention)は、この問題を解決するために生まれました。各トークンが先行するすべてのトークンに注意を向けるのではなく、最適化によって最も関連性の高い一部のトークンのみを選択して注意を向けるようにすることで、二乗的な計算量の増加という制約を打ち破ります。

スパースアテンションの「隠れた税金」

DeepSeekスパースアテンション(DSA)は、この考え方を効率的に実装したもので、DeepSeek-V3.2で初めて導入されました。どのトークンが最も重要かを見つけ出すために、DSAはモデルの各層に軽量な「ライトニングインデクサーモジュール」を追加します。このインデクサーは、先行するすべてのトークンをスコアリングし、その中から少数のトークンを抽出して、中心となるアテンション機構に渡して処理させます。この方法により、DSAは中核となるアテンションの計算量を二乗から線形に削減することに成功し、モデルの性能を維持しつつ、大幅な高速化を実現しました。

しかし、研究者たちは見過ごされてきたボトルネックを発見しました。それは、DSAのインデクサー自体の計算量が、各層で依然として二乗オーダーであるという点です。インデクサーの計算量は中核となるアテンションよりもはるかに小さいものの、コンテキスト長が爆発的に増加するにつれて、モデルがこれらのインデクサーを実行するために費やす時間も急激に増加します。この「インデックス税」は、モデルのプレフィル段階(入力プロンプトを最初に処理する段階)の速度を著しく低下させていました。

IndexCacheの解決策:層間の冗長性を活用

インデクサーのボトルネックを解決するため、研究チームは重要な特性を発見しました。データがTransformerモデルの層を順に通過する際、インデクサーが選択する重要なトークンのサブセットが、驚くほど安定しているという点です。実証テストによると、DSAモデルでは隣接する層で選択されるトークンの一致率が70%から100%に達することが示されました。

この発見に基づき、IndexCacheが考案されました。この技術は、モデルのネットワーク層を2種類に分類します。少数の「フルレイヤー」(Full Layer, F層)と、残りの「共有レイヤー」(Shared Layer, S層)です。F層はインデクサーを保持し、最も重要なトークンのインデックスを能動的に計算してキャッシュします。一方、S層はインデックス計算を完全にスキップし、直近のF層がキャッシュしたインデックスを直接再利用します。

推論時には、モデルは現在の層がどちらのタイプかを判断するだけです。F層であれば計算を実行してキャッシュを更新し、S層であればキャッシュを直接読み込んで計算をスキップします。このメカニズムは、層間の冗長性を巧みに利用することで、総計算量を大幅に削減します。

メモリ圧縮ではなく、計算の最適化

特筆すべきは、IndexCacheが一般的なKVキャッシュ圧縮技術とは本質的に異なる点です。従来のKVキャッシュ最適化は、アテンション計算の結果を保存するために必要なメモリ空間を削減することを目的としていますが、IndexCacheは計算のボトルネックそのものに直接アプローチします。

論文の共著者であるYushi Bai氏はVentureBeatに対して次のように説明しています。「IndexCacheは、従来のKVキャッシュ圧縮や共有技術ではありません。これは層を越えてインデックスを再利用することで冗長性を排除し、メモリ使用量だけでなく計算量そのものを削減するものです。既存の手法とは相補的な関係にあり、組み合わせて使用することが可能です。」

導入を容易にするため、研究チームはトレーニング不要(training-free)な手法も開発しました。少量のキャリブレーションデータでモデルを実行する「貪欲法による層選択」アルゴリズムを通じて、F層とS層の最適な配置を自動的に決定でき、モデルの重みを一切更新する必要はありません。これにより、開発者は再学習が不可能または困難な既存のDSAモデルにもIndexCacheを容易に適用し、モデルに新たな活力を与え、長文AIアプリケーションを真にスムーズで効率的なものにすることができます。

引用とソースリンク