「TurboQuant」の版間の差分

ページの作成:「'''TurboQuant'''(たーぼくあんと)とは 2026年3月にGoogle Research によって提案された、LLMのKVキャッシュおよびベクトル検索向けの極限量子化アルゴリズムです。 精度劣化を最小限に抑えつつ、メモリ使用量とバス帯域と計算コストを劇的に削減できるそうです。 かつてパソコンで大流行したRAM DoublerMagnaRAMみたいなものでしょう。 この発表…」
 
20行目: 20行目:
これにより、3〜4 bit という極低ビット量子化でも高精度を維持する。
これにより、3〜4 bit という極低ビット量子化でも高精度を維持する。


== 第1段階:PolarQuant ==
=== 第1段階:PolarQuant ===
PolarQuant は、入力ベクトルをランダム直交行列で回転し、統計的に均質な分布に変換した後、固定スカラーコードブックにマッピングする。
PolarQuant は、入力ベクトルをランダム直交行列で回転し、統計的に均質な分布に変換した後、固定スカラーコードブックにマッピングする。


=== 手順 ===
==== 手順 ====
* ランダム回転   
* ランダム回転   
   高次元空間でランダム直交行列 R を生成し、 x' = R x を計算する。   
   高次元空間でランダム直交行列 R を生成し、 x' = R x を計算する。   
32行目: 32行目:
   従来の量子化のような per-channel scale を保存する必要がない。
   従来の量子化のような per-channel scale を保存する必要がない。


=== メリット ===
==== メリット ====
* 量子化定数の保存が不要   
* 量子化定数の保存が不要   
* メモリオーバーヘッドがゼロ   
* メモリオーバーヘッドがゼロ   
* 低ビット量子化でも安定した誤差特性
* 低ビット量子化でも安定した誤差特性


== 第2段階:QJL (Quantized Johnson–Lindenstrauss) ==
=== 第2段階:QJL (Quantized Johnson–Lindenstrauss) ===
PolarQuant の量子化誤差(残差)を補正するために、QJL による 1-bit ランダム射影を追加する。
PolarQuant の量子化誤差(残差)を補正するために、QJL による 1-bit ランダム射影を追加する。


=== 手順 ===
==== 手順 ====
* ランダム射影   
* ランダム射影   
   Johnson–Lindenstrauss 行列 A を用いて r = A x を計算する。
   Johnson–Lindenstrauss 行列 A を用いて r = A x を計算する。
51行目: 51行目:
   内積推定において、PolarQuant のバイアスを QJL の符号情報で補正することで、不偏な推定値が得られる。
   内積推定において、PolarQuant のバイアスを QJL の符号情報で補正することで、不偏な推定値が得られる。


===メリット ===
====メリット ====
* 3-bit 量子化でも高精度   
* 3-bit 量子化でも高精度   
* 内積推定のバイアスが消失   
* 内積推定のバイアスが消失