世界を動かす技術を、日本語で。

TurboQuant: 極限圧縮によるAI効率の再定義

概要

  • TurboQuant は高次元ベクトル圧縮の新技術
  • QJLPolarQuant を活用し、メモリ効率と精度を両立
  • キー・バリューキャッシュベクトル検索 のボトルネックを解消
  • 実験で GemmaMistral 等LLMにて高効率・高精度を実証
  • 検索・AI分野 での大規模応用に期待

TurboQuant:高効率ベクトル量子化技術の概要

  • TurboQuant は、AIモデルの高次元ベクトルを圧縮し、 メモリ消費の大幅削減 を実現するアルゴリズム
  • キー・バリュー(KV)キャッシュ の圧縮や ベクトル検索 の高速化に最適
  • 精度劣化ゼロ でモデルサイズを大幅圧縮、LLMの性能維持
  • 2段階の圧縮プロセスを採用
    • PolarQuant による高品質圧縮
    • QJL による残差誤差補正

PolarQuant:角度ベースの新しい圧縮手法

  • ベクトルを 極座標 に変換し、「半径(強度)」と「角度(方向)」に分離
  • 角度情報のパターンが予測可能なため、 高コストな正規化処理が不要
  • 従来法で発生する メモリオーバーヘッド を解消
  • データを「円形グリッド」にマッピングし、境界管理を簡素化

QJL:ゼロオーバーヘッド・1ビット圧縮

  • Johnson-Lindenstrauss変換 を応用し、データの本質的な距離・関係性を保持
  • 各ベクトル要素を 符号ビット(+1/-1) のみで表現
  • 記憶コストゼロ で高速な類似度検索を実現
  • 高精度なクエリと低精度データをバランスよく組み合わせ、 精度維持

TurboQuantの実験結果

  • LongBenchNeedle In A Haystack など長文ベンチマークで評価
  • GemmaMistral 等オープンソースLLMで検証
  • ドット積歪みリコール 両面で最適なスコア
  • KVメモリサイズを6倍以上削減 しつつ、下流タスクの精度を維持
  • 3ビット量子化 で追加学習不要、精度劣化なし
  • H100 GPU 上で 4ビットTurboQuant は32ビット未量子化キー比で最大8倍の高速化
  • PQRabbiQ 等の最先端手法と比較しても高リコール率を実現

高次元ベクトル検索へのインパクト

  • TurboQuant3ビット相当の効率重いモデル並みの精度 を実現
  • データ非依存型で最適な歪み率を達成
  • 近傍探索エンジン の大規模・高速化に貢献
  • 巨大なベクトルインデックス の構築・検索を省メモリ・短時間で実現

理論的基盤と今後の展望

  • TurboQuant、QJL、PolarQuant は理論的証明に裏付けられたアルゴリズム
  • 実応用だけでなく、 理論的下限近傍の効率性 を実証
  • Gemini 等大規模モデルのKVキャッシュボトルネック解消に有効
  • 意味検索意図理解型検索 への応用でGoogle規模の高速化・効率化に寄与
  • LLMから検索まで、AI全般で今後ますます重要となる基盤技術

共同研究者

  • Praneeth Kacham (Google研究者)
  • Insu Han (KAIST准教授)
  • Majid Daliri (NYU博士課程)
  • Lars Gottesbüren (Google研究者)
  • Rajesh Jayaram (Google研究者)

Hackerたちの意見

polarQuantが何なのかよくわからなかったんだけど、パターンベースの圧縮みたいなもので、アルゴリズムが繰り返し出てくるパターンを見つけて、共通のシンボルや数字のインデックスを作るってことなのかな?

  1. kv埋め込みを極座標に効率的に再帰変換する 2. 明示的な正規化なしで結果の角度を量子化する。これにより、メモリを節約できるんだ。なぜなら、角度は分布に従っていて、解析的な形を持っているから。

https://mesuvash.github.io/blog/2026/turboquant-interactive/ にちょっとしたビジュアライゼーションがあるよ。

私の理解では、これはベクトルをコンポーネントごとの表現から極座標表現に切り替えて圧縮する方法なんだ。近くのベクトルが一つのラインに集まって、異なる長さで表現できるようになる。

これは、最近見た中で一番ひどい一般人向けのAIコンポーネントの説明だわ。AIが生成したようにも見えないし。

でも、そうだと思うよ。「TurboQuant、QJL、PolarQuantは、単なる実用的なエンジニアリングソリューション以上のもので、強力な理論的証明に裏打ちされた基本的なアルゴリズムの貢献なんだ。この方法は、実際のアプリケーションでもうまく機能するだけじゃなく、証明可能に効率的で、理論的な下限に近いところで動作する。」

これはAI生成だね。あるいは、技術の進展からちょっと離れた人が書いたんじゃないかな。ジョンソン・リンデンストラウスの補題はすごく特定的で強力な概念なのに、記事のQLJの説明は空っぽだよ。知識のある人なら、読者がその補題との関係を知りたがることはないはず。

極座標って、n次元ベクトルの場合、半径のためにn-1 + 1じゃないの?そうだとしたら、角度はより良く量子化できるって理解してるけど、半径rが大きいと、高度に量子化された角度の誤差が大きくなるよね?何か見落としてる?

rはベクトルごとに1つの値だよ。量子化する必要はなくて、そのままにして、ベクトルの他の十億以上の座標を量子化すればいいんだ。

基本的なことは理解してるんだけど、ここでちょっと困ってる。圧縮がパフォーマンスにどう影響するのか教えてくれる人いる?

簡単に言うと、多くの推論タスクではボトルネックがメモリ帯域幅なんだ。例えば、256 GB/sのメモリ帯域幅を持つマシンがあって、4Bモデル(パラメータが40億のモデル)で推論をしたいとしよう。もしBF16フォーマット(16ビット)でモデルを読み込むと、各フォワードパス(生成されるトークンごとに)約8 GBのメモリ帯域幅が必要になる。だから、256/8 = 32 t/sで、処理能力がexaFLOPSで測られていても、これが厳密に制限される生成速度になる。でも、モデルを量子化して量子化版を実行することにしたとしよう。Q4_K_M版(4ビット+いくつかの重みがもっとかかる)を作ったと仮定すると、各フォワードパスは約2-3 GB(ざっくりした近似で、実際は違うけど)必要になる(実際には約2 GB)。最悪の場合でも256/3 = 85.3、256/2 = 128 t/sになる。量子化はモデルの質を下げてパフォーマンスを落とすことがあるけど、ほとんどの現代の量子化手法ではその損失は通常無視できるものだよ(もちろん、完全にゼロではないけど)。だから、量子化はメモリのボトルネックを「広げる」(完全に取り除くわけではない)ことができて、まだ許容できる質を保つことができるって結論づけられるね。(英語が下手でごめん、母国語じゃないから)

じゃあ、すごくシンプルなデコーダートランスフォーマーを一層、一つのアテンションヘッドで始めて、テキストのシーケンスで次のトークンを予測するように訓練しよう。次のトークンを予測するには、いくつかのものが必要だよ:シーケンスの最後のトークンのクエリと、以前のすべてのトークンのキーとバリュー。クエリを使って、以前のすべてのキーとドット積を計算するんだ(入力は2つの大きなベクトル、出力はスカラーのアテンションスコア)。そのスカラーアテンションスコアはまずソフトマックスを通って、次にバリューの加重平均を計算するための重みになる。新しいバリューはMLPを通り、MLPの出力はロジットに投影されて、そこから次のトークンをサンプリングする(これが一般的なアイデアで、いくつかのステップは省略したけど)。シーケンスの最後のクエリは、予測する新しいトークンごとに新しくなるけど、以前のキーとバリューのセットは同じまま、つまりキーとバリューは再利用可能なんだ。キー・バリューキャッシュは、シーケンスに新しいトークンを追加するごとにどんどん大きくなっていく。それが圧縮の出番だね。キーとバリューをVRAMに保存する必要があるから、生の非圧縮テンソルを保存せずにサイズを小さく保ちたい。これをうまく機能させるためには、圧縮が速くて、リアルタイムで圧縮・解凍できる必要があるし、ソフトマックスアテンションとうまく連携する必要がある。過去の圧縮の試みは、どちらか一方がうまくいかないことが多くて、解凍速度が遅すぎてトークンが遅くなるか、重要な精度を失ってモデルの出力品質が落ちるかのどちらかだった。この論文の主張は、両方の進展があったということだね。

KVキャッシュ圧縮にとって、これは素晴らしい進展だね。ただ、関連する研究の中で、コアの数学的メカニズムについての引用が抜けてるのが気になった。特に、高次元の幾何学を管理して、適切なバイアス補正を可能にするために、極端な量子化の前に幾何学的回転を適用するという基本的な技術は、私たちのNeurIPS 2021の論文「DRIVE」で紹介したんだ。正確にこの回転アプローチと似たようなバイアス補正メカニズムを使って、最適な分散平均推定を達成したよ。この研究とその後の論文を、出版直後にGoogleでのプライベートな招待講演で発表したんだ。TurboQuantやPolarQuantのメカニズムとの理論的な重なりが強いから、今後のカメラレディ版でこの先行研究が認められることを期待してる。

今日、マルチヘッド潜在アテンションについて知ったんだけど、これはKVキャッシュを圧縮する方法の一つでもあるみたい。誰かこの新しい開発がMHLAとどう関係してるのか説明してくれない?

簡単な質問でごめんだけど、回転って言うと、実際には対角化のことを言ってるんだよね?だから、対角を行列として保存して、新しい基底がもっとコンパクトになるってこと?

論文での説明とブログ記事での説明のギャップはかなり大きいね。研究チームからもっとアクセスしやすい文章が見られるといいな — 読んでいる人全員がMLエンジニアってわけじゃないから。

これらは非常に異なるメディアタイプで、目的も全然違うよね。

同意!実際の影響は、数学よりも面白いことが多いよね — 小さなモデルがローカルで動くってことは、クロスバリデーションのために複数のモデルを並行して動かせるってことだから、コード分析やバグ検出のようなタスクへのアプローチが変わるんだ。

「TurboQuantは、トレーニングやファインチューニングなしで、キー・バリューキャッシュをたった3ビットに量子化できることを証明した。モデルの精度に妥協はない」ってあるけど、この3ビットはそれぞれ何に対応してるの?個々のキーやバリューじゃないよね、そうするとそれぞれ8つの異なるベクトルに制限されちゃうし。

説明はひどいけど、実際にはロスレスじゃないってことは明らかだね。

僕の頭では理解できないから、誰かこれをもっと簡単に説明してくれない?これって、48GBのマックブックで500Bモデルを品質を落とさずに動かせるってこと?

KVキャッシュの圧縮についてだけど、モデルがコンテキストを拡張するのにどれくらいメモリを使うかってこと。重みのサイズには影響しないよ。

それに、今日独立した実装を発表したグループがあって、見てて嬉しいね:https://github.com/tonbistudio/turboquant-pytorch

精度の保持はすごいけど、量子化後の敵対的評価も見てみたいな。単なるベンチマークスコアだけじゃなくて。圧縮モデルはクリーンな入力では同じように動作するけど、エッジケースでは異なる動作をすることがあるから。もし安全が重要な動作が分布の長い尾にあるなら、最近接のセントロイドに丸める量子化器はガードレールを外しちゃうかも。誰もその数字を公表しないのは、誰も知りたくないからだよね。