
2026/06/05 0:18
Huawei による KV キャッシュ量子化のためのネイティブ vLLM バックエンド KVarN
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
KVarN は、vLLM の革命的なキャリブレーション不要型アップデートであり、基盤となるモデルアーキテクチャを変更せず、長文脈の人工知能タスクのパフォーマンスを大幅に向上させることを目的としています。内部メモリキャッシュを 4 つの段階に分けられたプロセス(回転と分散正規化を含む)によって量子化することで、KVarN は KV キャッシュ容量を 3~5 倍増加させ、FP16 と同等あるいはそれ以上の精度で困難な推論ベンチマーク(例:AIME25)において最大約 1.3 倍の処理能力を提供します。重要なのは、高リスクな意思決定に必要な完全な数値精度を保ちながら、単一の構成フラグを通じてアクセシブルなプラグアンドプレイ型のソリューションとして動作することです。Apache 2.0 ライセンスの下で公開されており、vLLM バージョン 0.22.0 を基盤とする KVarN のデフォルトプリセットは、固定サイズのトークンタイル(128)内で 4 ビットのキーおよび 2 ビットの値を使用し、厳格な生産環境での精度基準を満たします。論文「KVarN: Variance-Normalized KV-Cache Quantization Mitigates Error Accumulation in Reasoning Tasks」の公式実装であり、企業はこれにより高負荷なバーストシナリオを即座に処理できます。マルチ GPU セットアップでは自動的に最大限の恩恵が得られますが、単一 GPU ユーザーの場合には完全な容量を実現するために環境変数の微調整が必要な場合があります。結局のところ、KVarN は再キャリブレーションなしで大規模な文脈長を管理するためのスケーラブルシステムにおける新たな基準を設定します。
本文
KVarN:分散正規化 KV キャッシュ
代理モデルや長いコンテキスト長のタスク向けに設計された最適化技術です。
メインのメリット
- 容量の向上:KV キャッシュ容量を 3〜5 倍に増加させます。
- 処理性能(throughput)の向上:FP16 の水準を維持しつつ、最大で約 1.3 倍の処理速度を実現します。
- 用途への適合:はるかに長いコンテキスト長を扱い、同時に多数のリクエストを処理できるようになります。
特徴
-
校正不要のプラグ&プレイ機能
- vLLM のネイティブな注意力(attention)バックエンドとして動作します。
- 単一のフラグを追加するだけで利用可能で、モデルの変更や特別的な校正手順は一切不要です。
-
高性能
- 同等の容量を維持しつつ精度も向上させるため、TurboQuant 相当の実装でも約 2.4 倍の高い処理性能を発揮します。
-
優れたバランス性能
- 他の手法では到達できない「右上隅」に位置します。
- FP16 と同等の精度、FP16 以上(またはそれ以上)の処理速度、そして何倍にもなるコンテキスト長を実現しています。
KVarN とは何か
- 発音:
/kvɑːɳ/ - 語源(スウェーデン語由来)
- 名詞で、「穀物、種子、スパイス、コーヒー豆」などを変えて小さく粉砕するための研磨装置という意味です。
- 「KV キャッシュ」も同じく変えて小さく処理(量子化)するという意味の隠喩です。
なぜ KVarN は必要なのか
通常、KV キャッシュの量子化には代償が伴います。既存の手法は容量を増やしますが、代わりに処理速度を犠牲にする傾向があります(TurboQuant では容量が 2.3〜3.7 倍になる代わりに、処理速度が 40〜52%低下)。また、激しい低ビット量子化は精度低下をもたらします。
- KVarN は、このスピードと品質の両方を維持するように構築されています。
- Qwen3-32B(AIME25 テスト、16K コンテキストバースト、TP=2)での実装では:
- FP16 と同等の精度を達成しつつ処理速度も上回ります。
- KV キャッシュ容量は約 4 倍に向上しました。
クイックスタート
KVarN は vLLM のフォークとして配布されています。vLLMと同様にインストールし、設定で KVarN を有効にします。
インストール
以下の手順でリポジトリをセットアップしてください。
# 1. リポジトリをクローンする git clone https://github.com/huawei-csl/KVarN.git cd KVarN # 2. インストールする # ※上流の先行コンパイル済み wheel を使用し、KVarN の kernels は Triton 製(実行時 JIT コンパイル)となります。 VLLM_USE_PRECOMPILED=1 pip install -e .
使用方法
Python による推論:
from vllm import LLM, SamplingParams llm = LLM( model="Qwen/Qwen3-32B", dtype="float16", # KVarN は float16 で動作 kv_cache_dtype="kvarn_k4v2_g128", # KVarN を有効化 block_size=128, # KVarN のタイルサイズ ) print(llm.generate("Explain KV-cache quantization in one sentence.", SamplingParams(max_tokens=64))[0].outputs[0].text)
モデルの提供(serve):
vllm serve Qwen/Qwen3-32B \ --dtype float16 \ --kv-cache-dtype kvarn_k4v2_g128 \ --block-size 128
注記:KVarN は
の計算精度で動作します。現在のタイル/ページサイズは固定され、128(1 つの vLLM ブロック=1 つの KVarN タイル)です。他のページサイズについては近日公開予定です。float16
最適化ヒント(容量に関する事項)
KVarN は、小さな固定化のデコードワークスペースを平準化できる余白があるときに、最大限の KV キャッシュ容量を実現します。
-
マルチ GPU またはメモリ利用率高い環境:
を寛大な値に設定した場合は自動的に適用されます。--gpu-memory-utilization -
単一 GPU かつメモリ制約が厳しい環境:vLLM の CUDA グラフメモリプロファイラが過剰予約を行い、KV プールを縮小することがあります。その際は以下のいずれかの方法で完全な容量を取り戻すことができます。
を設定するVLLM_MEMORY_PROFILER_ESTIMATE_CUDAGRAPHS=0- または
の値を引き上げる--gpu-memory-utilization
KVarN の仕組み
KVarN は、固定サイズのトークンタイルごとに KV キャッシュを量子化します。各タイルは以下の 4 つの段階を経て処理されます:
-
キャッシュ
- 注意力から直接得られた生の
KV タイル(チャネル × トークン)。fp16
- 注意力から直接得られた生の
-
回転済みキャッシュ
- チャネル次元に沿うアダマール回転を用いて、チャネルごとの外れ値を広範囲に分散させます。
- これによりタイルを量子化しやすくし、直交性により注意力スコアが保持されます。
-
正規化済みキャッシュ
- 反復的な分散正規化(シンクホーン法のような手法)を用います。
- 対数空間で列方向および行方向の標準偏差正規化を行交互に実施し、タイル全体の変散を均等化します。
- これにより量子化誤差を削減します。
-
量子化済みキャッシュ
- 低位ビット幅における非対称な「近傍丸め」を行います。
- 読み出し時にスケーリング係数(チャネルごとのキー、トークンごとのバリュー)を組み込みます。
プリセットの構成
- 配布されているプリセットでは、キーに比べてバリューよりも多くビットを割り当てています(例:
:4 ビットのキー、2 ビットのバリュー)。kvarn_k4v2_g128 - この構成が選ばれた理由は:
- 最も厳しい精度基準を満たすこと。
- 量産環境で要求される FP16 水準の精度を達成すること。
- FP16 を上回る処理速度を提供できるためです。
引用
KVarN は当社の論文における公式な vLLM 実装です。
📄 論文タイトル:KVarN: Variance-Normalized KV-Cache Quantization Mitigates Error Accumulation in Reasoning Tasks
- arXiv: 2606.03458
KVarN をご使用の場合は、以下の BibTeX 引用を記載してください:
@misc{muller2026kvarn, title={KVarN: Variance-Normalized KV-Cache Quantization Mitigates Error Accumulation in Reasoning Tasks}, author={Lorenz K. Muller and Philippe Bich and Chiara Boretti and Hyun-Min Chang and Jiawei Zhuang and Lukas Cavigelli}, year={2026}, eprint={2606.03458}, archivePrefix={arXiv}, primaryClass={cs.LG}, url={http://arxiv.org/abs/2606.03458} }
ライセンスと出典先
- KVarN は vLLM(v0.22.0)を基盤として構築されています。
- Apache 2.0 ライセンスの下で公開されています。
- 元の vLLM の README は
として保存されています。README_vLLM.md