「TurboQuant」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
| 23行目: | 23行目: | ||
PolarQuant は、入力ベクトルをランダム直交行列で回転し、統計的に均質な分布に変換した後、固定スカラーコードブックにマッピングする。 | PolarQuant は、入力ベクトルをランダム直交行列で回転し、統計的に均質な分布に変換した後、固定スカラーコードブックにマッピングする。 | ||
; ランダム回転 | |||
高次元空間でランダム直交行列 R を生成し、 x' = R x を計算する。 | |||
これにより、各次元の分布が等方的になり、量子化誤差が均一化される。 | |||
; 固定グリッドへのマッピング | |||
回転後のベクトル x' は、事前計算された円形または球面状のコードブックに直接量子化される。 | |||
従来の量子化のような per-channel scale を保存する必要がない。 | |||
==== メリット ==== | ==== メリット ==== | ||
| 40行目: | 39行目: | ||
PolarQuant の量子化誤差(残差)を補正するために、QJL による 1-bit ランダム射影を追加する。 | PolarQuant の量子化誤差(残差)を補正するために、QJL による 1-bit ランダム射影を追加する。 | ||
; ランダム射影 | |||
Johnson–Lindenstrauss 行列 A を用いて r = A x を計算する。 | |||
; 1-bit 符号化 | |||
r の符号 sign(r) のみを保存する。 | |||
これにより、元のベクトルとの差分の方向情報を 1 bit で保持できる。 | |||
; 不偏推定 | |||
内積推定において、PolarQuant のバイアスを QJL の符号情報で補正することで、不偏な推定値が得られる。 | |||
====メリット ==== | ==== メリット ==== | ||
* 3-bit 量子化でも高精度 | * 3-bit 量子化でも高精度 | ||
* 内積推定のバイアスが消失 | * 内積推定のバイアスが消失 | ||
2026年3月30日 (月) 01:23時点における最新版
TurboQuant(たーぼくあんと)とは 2026年3月にGoogle Research によって提案された、LLMのKVキャッシュおよびベクトル検索向けの極限量子化アルゴリズムです。
精度劣化を最小限に抑えつつ、メモリ使用量とバス帯域と計算コストを劇的に削減できるそうです。 かつてパソコンで大流行したRAM DoublerやMagnaRAMみたいなものでしょう。 この発表と同時にメモリ関連企業の株価が大暴落しました。
特徴[編集 | ソースを編集]
- KV キャッシュを最大 6 分の 1 に圧縮
- H100 GPU で最大 8 倍の高速化
- 量子化定数(scale)を保存しないためメモリオーバーヘッドがゼロ
- 内積推定が不偏(unbiased)
- トレーニング不要の後処理量子化 (PTQ)
アルゴリズム全体構造[編集 | ソースを編集]
TurboQuant は、PolarQuant と Quantized Johnson–Lindenstrauss (QJL) の 2 段階処理によって構成されます。
- PolarQuant による幾何学的量子化
- QJL による 1-bit 残差補正
これにより、3〜4 bit という極低ビット量子化でも高精度を維持する。
第1段階:PolarQuant[編集 | ソースを編集]
PolarQuant は、入力ベクトルをランダム直交行列で回転し、統計的に均質な分布に変換した後、固定スカラーコードブックにマッピングする。
- ランダム回転
高次元空間でランダム直交行列 R を生成し、 x' = R x を計算する。 これにより、各次元の分布が等方的になり、量子化誤差が均一化される。
- 固定グリッドへのマッピング
回転後のベクトル x' は、事前計算された円形または球面状のコードブックに直接量子化される。 従来の量子化のような per-channel scale を保存する必要がない。
メリット[編集 | ソースを編集]
- 量子化定数の保存が不要
- メモリオーバーヘッドがゼロ
- 低ビット量子化でも安定した誤差特性
第2段階:QJL (Quantized Johnson–Lindenstrauss)[編集 | ソースを編集]
PolarQuant の量子化誤差(残差)を補正するために、QJL による 1-bit ランダム射影を追加する。
- ランダム射影
Johnson–Lindenstrauss 行列 A を用いて r = A x を計算する。
- 1-bit 符号化
r の符号 sign(r) のみを保存する。 これにより、元のベクトルとの差分の方向情報を 1 bit で保持できる。
- 不偏推定
内積推定において、PolarQuant のバイアスを QJL の符号情報で補正することで、不偏な推定値が得られる。
メリット[編集 | ソースを編集]
- 3-bit 量子化でも高精度
- 内積推定のバイアスが消失
- ベクトル検索でも高い Recall を維持
非対称量子化[編集 | ソースを編集]
TurboQuant は Key と Value に異なるビット数を割り当てることを推奨する。
- Key: 2〜3 bit(強圧縮)
- Value: 3〜4 bit(高精度)
これにより、KV キャッシュ全体のメモリ削減と精度維持のバランスが最適化される。
パフォーマンス[編集 | ソースを編集]
| 指標 | 32-bit baseline | TurboQuant (4-bit) | 改善率 |
|---|---|---|---|
| KV キャッシュサイズ | 100% | 約 16.7% | 6x 削減 |
| Attention 計算速度 | 1.0x | 最大 8.0x | 8x 高速化 |
| 精度損失 | なし | 無視可能 | 品質中立 |