---
title: KV Cache 量化教程：TurboQuant 与常用方法
jupyter: python3
---


更新时间：2026-05-25

本目录包含 3 张标准 `.excalidraw` 图稿，配合 `inference/kv_cache_quantization_tutorial_2026.html` 使用。

## 文件

1. `00_kvcache_quant_overview.excalidraw`：KV cache 内存公式、读写路径、量化插入点和常见误区。
2. `01_turboquant_pipeline.excalidraw`：TurboQuant 论文算法和 vLLM 工程实现的差异。
3. `02_kvcache_quant_methods_comparison.excalidraw`：FP8、HF QuantizedCache、KIVI、KVQuant、GEAR/SKVQ/WKVQuant、TurboQuant 的对比和选型。
4. `generate_kvcache_quant_tutorial.py`：重新生成 HTML 与 Excalidraw 的脚本。

## 主要资料源

- TurboQuant paper: https://arxiv.org/abs/2504.19874
- TurboQuant OpenReview PDF: https://openreview.net/pdf?id=tO3ASKZlok
- vLLM TurboQuant study: https://vllm.ai/blog/2026-05-11-turboquant
- vLLM quantized KV cache docs: https://docs.vllm.ai/en/stable/features/quantization/quantized_kvcache/
- vLLM TurboQuant docs: https://docs.vllm.ai/en/latest/api/vllm/model_executor/layers/quantization/turboquant/
- Hugging Face KV cache docs: https://huggingface.co/docs/transformers/kv_cache
- TensorRT-LLM GPT attention docs: https://nvidia.github.io/TensorRT-LLM/advanced/gpt-attention.html
- KIVI: https://arxiv.org/abs/2402.02750
- KVQuant: https://arxiv.org/abs/2401.18079
- GEAR: https://arxiv.org/abs/2403.05527
- SKVQ: https://arxiv.org/abs/2405.06219
- WKVQuant: https://arxiv.org/abs/2402.12065
- Quantize What Counts: https://arxiv.org/abs/2502.15075

## 练习题

1. 手算一个 32 层、batch=8、context=32k、kv_heads=8、head_dim=128 的 FP16 KV cache 显存，再分别估算 FP8、INT4 和 2bit 的理想压缩上限。
2. 设计一个评测表格，同时记录 TTFT、TPOT、peak VRAM、最大上下文、needle retrieval accuracy 和困惑度变化。
3. 选 KIVI、KVQuant、TurboQuant 三种方法，写出它们对 K/V 采用的粒度、scale 保存方式和反量化位置。
4. 给一个长上下文 RAG 服务设计量化回滚策略：什么指标触发回滚，回滚到 FP8 还是 FP16，如何避免请求中断。

## 面试题

1. 为什么 K cache 和 V cache 的量化敏感性不同？请从 attention score 和 value aggregation 两条路径解释。
2. FP8 为什么经常是工程默认起点，而不是直接追求 4bit 或 2bit？
3. TurboQuant 的旋转、norm correction 和 inner-product bias 分别在解决什么误差来源？
4. 如何判断 KV cache 量化收益来自显存容量提升，还是来自 decode kernel 实际更快？


