KIVI:key 按通道 / value 按 token 的免调优非对称 2bit KV 缓存量化
本页为第 8 篇(解码加速与量化类)。定量内容取自本地论文 PDF 08_KIVI_2402.02750.pdf(arXiv:2402.02750v2,ICML 2024 / PMLR 235,共 15 页)并逐条标注 PDF 页码;第 1、3、4、5、6、7、8、9、13 页已渲染原页逐项目检,图 5 的逐点坐标值为读图近似并单独标注(见 #evidence 与 sources/kivi.evidence.json)。
快速标签与阅读说明
- 生命周期:推理(KV 缓存压缩)
- 形态:即插即用算法 + GPU kernel(免训练、免校准)
- 目标硬件:单卡 NVIDIA A100(80GB,效率实验口径,第 7-8 页)
- 核心资源:KV 缓存显存 · 显存带宽(KV 搬运)· batch 容量
- 证据状态:P(论文,页码级核验)+ R(摘要印明仓库,未在线核验)+ E/I
最后核验日期:。证据完整度:论文核心数字(摘要、表 1-5、图 2-5、§3-§4 结论)已回 PDF 原页逐项核验并标注页码;附录第 12、14、15 页经文本提取交叉核对;图 5 无数据表,逐点数值为编辑读图近似(标 I);TTFT/TPOT、量化统计量存储精度论文未披露,页面写「论文未明确披露」。
证据标签图例: P=论文 R=仓库 E=外部资料 I=编辑推断
1. 摘要与一句话判断
| 题名 | KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache(编辑译名:KIVI——面向 KV 缓存的免调优非对称 2bit 量化) |
|---|---|
| 作者 / 机构 | Zirui Liu*、Jiayi Yuan*(Rice);Hongye Jin(Texas A&M);Shaochen (Henry) Zhong(Rice);Zhaozhuo Xu(Stevens);Vladimir Braverman(Rice);Beidi Chen(CMU);Xia Hu(Rice)。*共同一作,脚注注明作者顺序由抛硬币决定(第 1 页) |
| 发表 | ICML 2024(Proceedings of the 41st International Conference on Machine Learning, Vienna, PMLR 235, 2024);arXiv:2402.02750v2,2024-07-25;本地 PDF 08_KIVI_2402.02750.pdf(15 页)P |
| 代码 | 摘要末句印明 github.com/jy-yuan/KIVI(第 1 页)R;本次会话未在线核验可达性,使用前复核(见 #links) |
| 评估范围 | 模型:Llama/Llama-2(7B/13B)、Falcon-7B(MQA)、Mistral-7B,另有 Llama-3-8B-Instruct、Mistral-7B-v0.2、LongChat-7B-v1.5(附录);任务:CoQA、TruthfulQA、GSM8K(LM-Eval)、LongBench 8 任务、大海捞针 NIAH;效率:ShareGPT 合成负载(第 6-9、13-15 页)P |
| 实验硬件 | 效率实验:单卡 NVIDIA A100 GPU(80GB),Llama-2-7B(第 8 页);精度实验 GPU 型号/数量:论文未明确披露 |
3 分钟速读
- 问题:批量与上下文一大,KV 缓存就成为显存与速度瓶颈——540B PaLM 在批 512、上下文 2048 时 KV 缓存达 3TB(参数量的 3 倍,第 1 页);OPT-175B 在批 512、输入 512、输出 32 时 KV 缓存 1.2TB(权重的 3.8 倍,第 3 页);GPU 每生成一个 token 都要把整个 KV 缓存从显存搬进 SRAM,期间计算核空闲(第 1、3 页)P。
- 关键观察:仿真量化显示(Llama-2-13B、组大小 32,第 3 页表 1):双 per-token 的 2bit 掉到 52.93/24.98(CoQA/TruthfulQA),value 也按通道则崩到 2.88/0.74,而 key 按通道 + value 按 token 拿到 63.53/28.60,几乎追平 16bit 的 66.37/29.53 P。
- 为什么:key 的离群集中在少数固定通道,按通道分组把误差锁在通道内(注意力分数误差 9.60 vs 47.00,第 4 页表 2);value 是注意力输出的「混合器」且注意力稀疏 84.3%,按 token 分组把误差锁在单个 token 内(输出误差 3.55 vs 49.89)P。
- 工程化:key/value 都拆成「2bit 分组部分 + 全精度残差」:value 队列天然流式;key 攒满 R 个 token 再按通道成组量化(R 能被 G 整除);反量化用 CUDA 融合进矩阵乘(Q_MatMul),组量化 kernel 用 Triton;与 weight-only 权重量化完全兼容(第 5-6 页)P。
- 结果与边界:Llama-2-7B 峰值显存(含权重)降至约 1/2.6;相近峰值显存下 batch 至多 4×、吞吐 2.35×~3.47×(单卡 A100-80GB、ShareGPT 负载均值输入 161/输出 338,第 1、7-8 页图 5)P;Llama/Mistral 上 2bit 精度损失至多约 2%,但 Falcon-7B(MQA 单 KV 头)需 4bit(第 6、8 页)P;论文未报告 TTFT/TPOT 与单请求延迟I(口径核对)。
2. 问题背景
瓶颈的量级:KV 缓存随 batch 与上下文线性增长。540B PaLM、批 512、上下文 2048 时 KV 缓存 3TB,是参数量的 3 倍(第 1 页,引 Pope et al., 2023);OPT-175B、批 512、输入 512、输出 32 时 KV 缓存 1.2TB,是权重的 3.8 倍(第 3 页,引 Sheng et al., 2023)P。同时解码期 GPU 每产出一个 token 都要把整个 KV 缓存从显存搬入 SRAM,期间计算核基本空闲——KV 既吃容量也吃带宽P(第 1、3 页)。
既有路线及其代价:P(第 1 页)论文把已有工作分三类:①减少 KV 头数(MQA/GQA)——需从头训练或微调;②驱逐不重要 token(H2O、Scissorhands、StreamingLLM)——丢弃信息;③系统层手段(FlexGen 卸载、vLLM 分页)——改内存管理、不缩小 KV 本身。量化是最直接的「省字节」手段,但此前 KV 量化研究很少,多是对全量 KV 直接套 4bit round-to-nearest;GPTQ 这类优化型方法因 KV 流式到达、开销不适用(第 3 页)P。
目标工作负载与约束:长上下文与批量推理服务;约束是:不训练、不微调、不用校准数据(tuning-free),精度损失可忽略,且实现必须对 GPU 亲和(第 1 页摘要主张;第 6 页 System Support)P。
基线口径:精度基线为同模型 16bit KV(FP16 缓存);效率基线为 FP16 KV + FP16 权重的标准推理,批量从小到大扫描直至 OOM(第 6-8 页)P。I 因此论文数字回答的是「KIVI 比 FP16 缓存强多少」,不回答「与其他 KV 压缩方案比谁优」。
3. 核心机制
3.1 量化原语与关键实验观察
KV 缓存是流式结构,作者采用最灵活的 round-to-nearest(RTN)对称区间量化P(第 3 页):
z_X = min X(零点),s_X = (max X − min X) / (2^B − 1)(B 为位宽缩放因子)
仿真(fake)量化实验P(第 3 页表 1;Llama-2-13B、CoQA/TruthfulQA、组大小 32,先量化再在注意力层反量化):
| 配置 | CoQA | TruthfulQA |
|---|---|---|
| 16bit | 66.37 | 29.53 |
| 4bit(K-T, V-T) | 66.48 | 29.51 |
| 2bit(K-C, V-T)(最优) | 63.53 | 28.60 |
| 2bit(K-T, V-T) | 52.93 | 24.98 |
| 2bit(K-C, V-C) | 2.88 | 0.74 |
| 2bit(K-T, V-C) | 2.80 | 0.26 |
三条观察P(第 3 页 OB1-OB3):INT4 双 per-token 尚可保持精度、INT2 明显掉点(OB1);value 一旦按通道,无论 key 怎样都显著恶化(OB2);INT2 下最优组合是 key 按通道 + value 按 token(OB3)。
3.2 为什么 K/V 的量化维度必须不同
- Key:离群锁在少数固定通道。图 2(第 4 页)显示 Llama-2-13B 第 16/31 层与 Falcon-7B 第 16/20 层的 key 缓存存在少数幅值极大的固定通道,value 无此模式。按通道分组使离群通道「独享」自己的零点/缩放,不污染其他通道:key 重建误差 4.55(按通道)vs 13.67(按 token),注意力分数误差 9.60 vs 47.00(按 token 差约 5×)P(第 4 页表 2)。
- Value:注意力输出的「混合器」,误差要按 token 锁。注意力输出是 value 向量按注意力分数的加权和,而注意力高度稀疏(平均 84.3%,第 4 页表 2)——输出只依赖少数重要 token。按 token 量化把误差限制在单个 token 内,量化其他 token 不伤害重要 token:输出相对误差 ∆ 为 3.55(按 token)vs 49.89(按通道,约 15× 差距)P(第 4 页 §3.2)。
3.3 KIVI 算法:分组缓存 + 全精度残差滑窗
按通道量化跨 token 成组、无法「来一个 token 量化一个」;KIVI 的解法是把 key 与 value 各拆成两段P(第 5 页 §3.3,图 3 与附录 A Algorithm 1,第 12 页):
- key 拆分:
X_Kg = X_K[:l−r](分组段,2bit)+X_Kr = X_K[l−r:](残差段,全精度,≤R 个 token)。新 token 的 key 追加进 X_Kr;攒满 R 个即按通道维量化(每 G 个 token 一组)并入 Q(X_Kg),X_Kr 清空。约束:R 必须能被 G 整除P(第 5 页)。 - value 拆分:FIFO 队列 X_Vr 保留最新 R 个全精度 value;队列超过 R 时弹出最旧的,按 token 维分组量化并入 Q(X_Vg)。按 token 量化与自回归流式天然对齐P(第 5 页)。
- 注意力拼接:A = Concat([A_g, A_r]),其中 A_g = t_Q·Q(X_Kg)ᵀ(经 Q_MatMul,反量化融合在 tiling 级完成)、A_r = t_Q·X_Krᵀ;输出 t_O = A_g·Q(X_Vg) + A_r·X_VrP(第 5 页式 3)。
- 全精度滑窗:KIVI 实际为局部相关 token 维护一个全精度 KV 滑窗,窗口大小预期为 key R/2、value R(第 6 页;注:
kivi.txt提取把两者归属写反,已按 PDF 原页更正)。该滑窗对 GSM8K 等硬任务拿到理想性能至关重要——fake 2bit(K-C,V-T) 全量化在 Llama-2-7B GSM8K 只有 5.76,KIVI-2 保留滑窗后为 12.74(16bit 13.50)P(第 6 页 §4.2.1、第 8 页表 3)。 - 开销可控:实验取 R ≤ 128,序列长度通常远大于 R,残差显存开销可忽略;prefill 阶段传给下一层的是精确张量(精度不受影响),内存中只保留量化 KVP(第 5-6 页)。
3.4 系统支持(GPU kernel)
P(第 6 页 System Support)为压低开销:①反量化融合进矩阵乘——Q_MatMul(混合精度矩阵乘,CUDA 实现,反量化在 tiling 级完成);②组量化 kernel 用 Triton 实现;③方法与 weight-only 权重量化完全兼容,可叠加。
4. GPU/系统数据路径
端到端文字序列(与图中编号一致)
- ① 前向投影:当前 token 嵌入 t 经 W_Q/W_K/W_V 得到 t_Q、t_K、t_V(每层每头各一份);prefill 逐层传精确张量,解码期每步只有一个 token 到达(流式)P(第 2、5 页)。
- ② 写缓存(残差):t_K 直接追加进全精度残差缓冲 X_Kr(≤R 个 token);t_V 进入 FIFO 队列 X_Vr(保留最新 R 个)。两者此时都是 FP16P(第 5 页)。
- ③ 触发量化:len(X_Kr)=R 时 KeyQuant——沿通道维分组、每 G=32 个 token 一组、组内按通道算零点/缩放,量化为 2bit 并入 Q(X_Kg),X_Kr 清空;len(X_Vr)>R 时弹出最旧 token、沿 token 维量化并入 Q(X_Vg)P(第 5 页、第 12 页 Algorithm 1)。
- ④ 读缓存(注意力):A = Concat([t_Q·Q(X_Kg)ᵀ, t_Q·X_Krᵀ]),量化段经 Q_MatMul(CUDA 反量化融合矩阵乘);Softmax 后输出 t_O = A_g·Q(X_Vg) + A_r·X_VrP(第 5 页式 3、第 6 页)。
- ⑤ 存储布局:每层每头一个四元组 ⟨Q(X_Kg) 2bit+统计量, X_Kr 全精度 ≤R, Q(X_Vg) 2bit+统计量, X_Vr 全精度 R⟩;R≤128 时残差开销可忽略P(第 5 页)。统计量(零点/缩放)的存储精度:论文未明确披露。
- ⑥ 循环与收益:每步重复 ②→④ 并回写四元组;KV 显存下降 → 同显存可容更大 batch → 吞吐上升。单卡 A100-80GB、Llama-2-7B 上:峰值显存(含权重)约 1/2.6,batch 至多 4×,吞吐 2.35×~3.47×P(第 1、7-8 页图 5);上下文/输出越长收益越大P(第 8 页)。
| 事实/数值 | 对象与条件 | 论文定位 |
|---|---|---|
| 组大小 G=32(所有实验);残差 R=128,且 R ≤ 128、R 可被 G 整除 | 量化超参(KIVI-2/KIVI-4 共用) | P 第 6 页 §4.1、第 5 页 §3.3 |
| key 按通道维分组、value 按 token 维分组(2bit) | 非对称量化几何 | P 第 1 页摘要、第 2 页图 1、第 4 页 §3.2 |
| 全精度滑窗:预期 key R/2、value R;对 GSM8K 至关重要 | 精度保持机制 | P 第 6 页 §3.3(提取文件方向颠倒已按原页更正) |
| Q_MatMul=反量化融合矩阵乘(CUDA,tiling 级);组量化 kernel 用 Triton;兼容 weight-only 量化 | GPU 实现 | P 第 5 页图 3 注、第 6 页 System Support |
| prefill 传给下一层的是精确张量;内存只保留量化 KV | prefill/decode 边界 | P 第 5 页 §3.3 |
| 量化统计量(零点/缩放)存储精度、KV 量化/反量化算子的绝对耗时:论文未明确披露 | 数据路径运行细节 | P(本次证据源未载明,页面不补写) |
5. 架构权衡
-
显存下降 ↔ 精度风险(模型相关)
P KV 存 2bit 后 Llama/Mistral 精度损失至多约 2%(第 6 页);但 Falcon-7B 用 MQA、KV 只有单头,本已高度压缩,2bit 明显掉精度(CoQA 57.48 vs 16bit 59.83,GSM8K 3.41 vs 4.55),需 KIVI-4(第 6、8 页)。I 位宽档位(2bit/4bit)是按模型注意力结构选的,不是全局常数。
-
非对称收益 ↔ 写路径复杂度
P value 按 token 天然流式;key 按通道跨 token 成组,必须维护残差缓冲、攒满 R 个才量化,且 R 要能被 G 整除(第 5 页)。I 这是「更优量化几何」换来的状态机复杂度:两套触发阈值、两种队列语义,配置错误会直接打击精度(见 GSM8K 敏感性)。
-
精度保持 ↔ 全精度滑窗依赖
P 全量化 2bit(K-C,V-T) 在 Llama-2-7B GSM8K 仅 5.76,KIVI 靠滑窗拉回 12.74(16bit 13.50);残差长度对常规任务不敏感({32,96,128} 无显著差异)但对困难任务重要(R=64 最差 19.86 vs R=128 20.77)(第 6-9 页)。I 滑窗是精度生命线:窗口被配小或失效时,硬任务先受伤且不易在常规评测中发现。
-
吞吐上升 ↔ 反量化开销与融合深度
P 吞吐 2.35×~3.47× 的同时,论文承认量化开销尚未充分融合——「若把 KV 量化进一步与前序算子融合,加速还能大幅提升」,留作未来工作(第 8-9 页)。I 即当前实现存在可回收的开销;但绝对耗时论文未披露,无法估算上限。
-
批量容量 ↔ 单请求延迟(未量化)
P 论文报告批处理吞吐与峰值显存,未报告 TTFT/TPOT 或单请求延迟;图 5 中 FP16 基线的吞吐峰值出现在小批量(读图约 batch 32 处 ~760 tokens/s),更大批量反而回落P+I(读图)。I 引用「4× batch」时必须明确:那是 OOM 边界的容量收益,不是「任何 batch 下都快 4×」。
-
正交可组合 ↔ 集成面
P KIVI 与 weight-only 量化、token 驱逐(H2O 等)、系统分页(vLLM PagedAttention、S3)正交、可叠加(第 6、9 页)。I 代价是集成面在推理框架的 KV 读写关键路径上:自研 CUDA/Triton kernel 的版本、兼容性与性能回归都成为平台责任。
6. 云上部署映射
以下映射为厂商中立示例;具体产品命名/规格仅作说明并标 E,以厂商当时目录为准,未逐一在线核验。论文事实单独标注 P。
| 论文需求 | 云上映射(示例) | 证据与说明 |
|---|---|---|
| 计算:单卡即可承载(A100-80GB、Llama-2-7B 效率实验) | E 单卡 GPU 推理实例起步(如各云 A10G/L4/A100 类);KV 显存节省可换更大 batch 或更长上下文,按吞吐 SLO 决定是否升配 | 单卡实验口径为论文事实 P(第 7-8 页);实例规格为厂商目录示例 E |
| KV 显存容量规划:KV 字节数 × 序列长 × batch ≪ FP16 | E 容量模型进编排:按「权重 + KIVI 量化 KV + 残差 + 激活」估算单实例可容并发;为回退 FP16 预留显存余量或配置降载 | KV 结构(四元组、残差 ≤R)为论文事实 P(第 5 页);容量公式与回退余量为工程建议 I |
| 推理框架集成:HF Transformers 代码库上的 CUDA/Triton kernel | E 自建推理服务(vLLM/TGI 类或云托管模型服务)集成 KIVI kernel 时走制品化镜像;kernel 版本与框架版本配对 pin | 论文实现在 HF Transformers 之上、kernel 自研 P(第 6 页);论文未绑定任何服务框架 P;框架选型为云实践 E |
| 配置面:G、R、位宽(KIVI-2/4)按模型选择 | E 配置随模型制品下发(模型卡注明 G=32、R=128、MQA 模型用 4bit);变更走灰度 + 精度回归 | 参数口径为论文事实 P(第 6、9、14-15 页);配置治理为工程建议 I |
| 弹性:容量收益在批量侧兑现 | E 相同显存水位提高单实例并发上限或接入更多并发路由;长上下文流量优先路由到 KIVI 实例(收益随上下文增大) | 「batch 至多 4×、吞吐随上下文/输出增长」为论文事实 P(第 8 页);路由策略为工程建议 I |
| 可观测:显存水位、吞吐、精度抽样 | E 监控峰值显存/批量上限、tokens/s、GSM8K 类硬任务抽样分数与 NIAH 类检索抽测;异常回退 FP16 缓存并告警 | 论文以吞吐/峰值显存/精度基准为口径 P(第 6-9 页);监控指标设计为编辑建议 I、接入为云实践 E |
7. 成本 / 性能 / SLO
7.1 指标口径(论文使用的)
P(第 6-9 页)精度:CoQA(精确匹配)、TruthfulQA(BLEU)、GSM8K(精确匹配)、LongBench 8 任务平均、NIAH 检索;效率:批处理吞吐(tokens/s,全并发合计)与峰值显存(GB),负载为 ShareGPT 合成(平均输入 161/输出 338),扫描 batch 直至 OOM。TTFT、TPOT、单请求延迟:论文未明确披露。
7.2 容量与成本公式(参数化,编辑推断)
KIVI-2 KV 显存/token ≈ 2 × L × d × (2bit + 组统计量摊销)/8 (组统计量:每组零点+缩放)
单实例可容 batch ≈ (HBM 容量 − 权重 − 激活/框架开销 − 回退余量) ÷ (单请求 KV 字节)
每百万 token 成本 ≈ 实例时单价 ÷ (batch × 单请求 tokens/s × 3600) × 10^6(记录单价查询日期)
I 公式中可由论文支撑的量:KIVI 相对 FP16 的 KV 压缩与「相近峰值显存下 batch 至多 4×」(Llama-2-7B、A100-80GB,第 8 页);峰值显存(含权重)约 1/2.6(第 1 页)。其余(单价、激活开销、回退余量、请求长度分布)需按部署实测填写,本页不给出伪精确数字。E Llama-2-7B 的 L=32、d=4096 取自公开模型卡(非论文内容),仅作代入示例。
7.3 图 5 数字上下文(A100-80GB · Llama-2-7B)
| 条目 | 数值/结论 | 条件 | 来源 |
|---|---|---|---|
| 硬件 / 模型 / 负载 | 单卡 NVIDIA A100(80GB);Llama-2-7B;ShareGPT 合成负载(均值输入 161/输出 338);batch 扫描至 OOM | 效率实验总口径 | P 第 7-8 页 §4.2.4 |
| batch 容量 | 相近峰值显存下 KIVI 至多 4×(读图:基线 ~96 处 OOM vs KIVI-R32 ~384) | 对比 FP16 KV 基线 | P 第 8 页;读数 I |
| 吞吐 | 2.35×~3.47×(读图:基线峰值 ~760 tokens/s;KIVI-R128 ~1780 @bs~256;KIVI-R32 ~2640 @bs~384) | 同上;上下文/输出更长时倍数更大 | P 第 8 页;读数 I |
| 峰值显存 | 读图:基线 ~60GB@bs~96;KIVI-R128 ~56GB@bs~256;KIVI-R32 ~54GB@bs~384 | 含权重;KIVI 残差 32 压缩率更高(附录 C) | 读数 I;残差结论 P 第 13 页 |
| 残差 32 vs 128 | R32 显存压缩率显著更高、吞吐随之增加;精度差距不大(Llama-2-7B GSM8K:R32 13.57 vs R128 12.74) | KIVI-2,LM-Eval | P 第 13 页附录 C、表 6 |
| 基线形状 | FP16 吞吐峰值在小批量(读图 ~760 @bs~32),加大批量反而回落直至 OOM | 图 5 下子图 | 读数 I |
7.4 敏感项与数据缺口
- P 敏感项排序(各自条件下):模型注意力结构(MQA 的 Falcon 2bit 掉精度,需 4bit)> 组大小(G=128 时 GSM8K 降到 17.29,G=32/64 相当)> 残差长度(常规任务不敏感、困难任务忌 R=64)> 任务类型(GSM8K 等硬任务对滑窗最敏感)。
- P 数据缺口:TTFT/TPOT/单请求延迟、量化与反量化算子绝对耗时、精度实验的 GPU 型号与数量、不同上下文长度下的吞吐曲线(只有定性「越长越大」)——论文未明确披露。
- I 云价格、能耗、kernel 集成的一次性工程成本:论文未涉及,部署时自测。
8. 安全与可运维性
8.1 安全
- KV 缓存即用户数据:I KIVI 不改变 KV 缓存的语义——它仍完整保留全部输入 token(论文明确「保留所有 token、只压缩精度」,第 9 页),量化不是加密。多租户实例复用前必须重置/清零 KV 显存,防止跨会话残留;显存 dump 即数据泄露(通用推理服务要求)。
- 数据驻留与边界:P KV 缓存全程驻留 GPU 显存(四元组,第 5 页),论文无外置/卸载设计。I 云上驻留边界=实例边界;跨可用区不复制 KV。
- 供应链:R 代码来自摘要印明的
github.com/jy-yuan/KIVI(第 1 页);I 引入时 pin commit/镜像 digest、扫描 CUDA/Triton kernel 与依赖、保留可回退版本;本页未在线核验仓库,接入前先人工复核归属、许可与活跃度。 - 输出风险继承:P 论文 Impact Statement 表示无额外需特别强调的社会影响(第 9 页)。I 但 2bit 量化改变了输出分布(精度基准内「至多约 2%」是均值口径),合规审查应以「KIVI 实际输出」为对象。
8.2 可运维性(含恢复与回滚)
- 天然回退路径=FP16 缓存:I KIVI 是推理时配置(论文基线即 FP16),回退=关闭量化开关重新加载模型。关键运维约束:回退后 KV 显存占用上升(容量收益消失),必须预留显存余量或同步降载,否则回退动作本身会触发 OOM。
- 配置变更管理:P G=32、R=128 是全部实验的验证口径;G=128 精度显著下降、R 必须能被 G 整除(第 5-9 页)。I 把 (G, R, 位宽) 作为与模型版本绑定的配置资产管理,变更走灰度+GSM8K/检索类硬任务回归;禁用未经校验的组合。
- 故障恢复:I 推理服务无训练态,故障恢复=实例重启+模型制品重载;KV 缓存不持久化、丢失即重算(prefill 重放)。多实例无状态水平扩展,单实例故障由负载均衡摘除(云编排能力,E)。
- 监控告警:I 建议:①显存水位与 OOM 边界批量(量化失效会先表现为显存回升);②吞吐相对基线的漂移;③GSM8K 类硬任务与 NIAH 检索的抽样分数(滑窗配置错误时硬任务先受伤);④残差/队列长度分布(异常增长提示触发逻辑故障)。
- 升级与回滚:I kernel(CUDA/Triton)与推理框架版本配对 pin;升级走金丝雀+双基线回归(开/关量化各测一组吞吐与精度);回滚=回退上一配对制品或运行时关闭量化。模型升级需重验 (G, R, 位宽) 组合,发布计划包含再评测周期。
- 验收基线:I 上线前固定「关量化(FP16)vs 开量化」两组读数:吞吐、峰值显存、GSM8K/检索抽测,形成可复核差值;此后任何变更以差值回归验收。
9. 适用 / 不适用场景
适用(触发条件 + 理由)
- KV 显存已成瓶颈的批量/长上下文服务(Llama/Mistral 类)。触发:显存水位随并发或上下文增长触顶、OOM 限制并发上限。理由:Llama-2-7B 峰值显存(含权重)约 1/2.6,相近显存下 batch 至多 4×、吞吐 2.35×~3.47×(A100-80GB)P(第 1、7-8 页);上下文/输出越长收益越大 P(第 8 页)。
- 不能训练/微调、也没有校准数据的部署。触发:只用现成权重、零改动接入。理由:KIVI 免调优(RTN、无训练无校准),plug-and-play P(第 1 页摘要、第 3 页)。
- 权重已做 weight-only 量化、还想继续压显存的实例。触发:INT4/INT3 权重量化后 KV 成为剩余大头。理由:论文明示与 weight-only 量化完全兼容、可叠加 P(第 6、9 页)。
- 已用/计划用 token 驱逐或分页系统、想叠加压缩的团队。触发:vLLM 分页、H2O 驱逐已上线或规划中。理由:KIVI 保留全部 token 只压精度,与驱逐/分页正交可组合 P(第 9 页);长上下文精度有 NIAH 27K/30K token 证据 P(第 7 页)。
不适用(触发条件 + 理由)
- Falcon 等 MQA/单 KV 头模型追求 2bit。触发:模型 KV 头数已被 MQA/GQA 压缩。理由:Falcon-7B 上 2bit 明显掉精度(CoQA 57.48 vs 59.83),需 KIVI-4,压缩收益打折 P(第 6、8 页)。
- 短上下文、低并发、KV 不构成瓶颈的场景。触发:序列短、批量小,KV 显存占比低且无 OOM 压力。理由:论文收益口径是批量/长上下文;残差占比在短序列下上升(论文以「序列远大于 R≤128」论证开销可忽略)P(第 5 页)+I(外推判断)。
- 把单请求延迟(TPOT/TTFT)当首要 SLO 的交互式场景。触发:目标是个位数字毫秒级的每 token 延迟。理由:论文只报批处理吞吐与显存,未报 TTFT/TPOT;反量化开销绝对值未披露且论文承认量化融合尚有提升空间 P(第 8-9 页)。I 期望「单请求变快」属于误读收益对象。
- 无法保证 (G, R, 滑窗) 配置正确、也没有硬任务回归能力的团队。触发:无评测流水线、配置随意改动。理由:G=128 显著掉精度(GSM8K 17.29 vs 20.77)、R=64 最差、滑窗失效直接打击 GSM8K 类任务 P(第 7、9 页)。
10. 实验与指标
10.1 实验设置与口径 P(第 6-8 页)
| 模型 | Llama/Llama-2(7B/13B)、Falcon-7B(MQA)、Mistral-7B;附录另含 Llama-3-8B-Instruct(8K 上下文、GQA 8 KV 头)、Mistral-7B-Instruct-v0.2(32K)、LongChat-7B-v1.5-32K P(第 6、14-15 页) |
|---|---|
| 精度/位宽 | KV:KIVI-2(2bit)/ KIVI-4(4bit),基线 16bit(FP16);权重精度:论文未明确披露(兼容 weight-only 量化)P(第 6 页) |
| 超参 | 组大小 G=32(所有实验);残差 R=128(另测 R=32)P(第 6、13 页) |
| 任务 | LM-Eval:CoQA(EM)、TruthfulQA(BLEU)、GSM8K(EM);LongBench:Qasper/QMSum/MultiNews/TREC/TriviaQA/SAMSum/LCC/RepoBench-P(最大序列 Mistral 8192、其他 4096);NIAH P(第 6 页) |
| 效率负载 | 仿 vLLM 用 ShareGPT 合成(均值输入 161/输出 338);batch 扫描至 OOM,报峰值显存与吞吐;硬件单卡 NVIDIA A100(80GB)、Llama-2-7B P(第 7-8 页) |
| 基线 | 精度:同模型 16bit KV;效率:FP16 KV + FP16 权重 P(第 6-8 页) |
| 精度实验硬件 | 论文未明确披露(GPU 型号/数量未载明) |
10.2 主精度结果(表 3 全量转录)
| 模型 | 配置 | CoQA | TruthfulQA | GSM8K |
|---|---|---|---|---|
| Llama-2-7B | 16bit | 63.88 | 30.76 | 13.50 |
| 4bit(K-T, V-T) | 64.82 | 29.85 | 12.28 | |
| 2bit(K-C, V-T) | 59.08 | 33.10 | 5.76 | |
| 2bit(K-T, V-T) | 39.88 | 18.29 | 0.83 | |
| 2bit(K-C, V-C) | 3.60 | 0.27 | 0.00 | |
| 2bit(K-T, V-C) | 1.30 | 0.49 | 0.08 | |
| KIVI-4 | 63.78 | 30.80 | 13.80 | |
| KIVI-2 | 63.05 | 33.95 | 12.74 | |
| Llama-2-13B | 16bit | 66.37 | 29.53 | 22.67 |
| 4bit(K-T, V-T) | 66.73 | 29.14 | 20.92 | |
| 2bit(K-C, V-T) | 63.53 | 28.60 | 12.21 | |
| 2bit(K-T, V-T) | 52.93 | 24.98 | 4.55 | |
| 2bit(K-C, V-C) | 2.88 | 0.74 | 0.00 | |
| 2bit(K-T, V-C) | 2.80 | 0.26 | 0.08 | |
| KIVI-4 | 66.38 | 29.49 | 23.65 | |
| KIVI-2 | 66.23 | 29.84 | 20.77 | |
| Falcon-7B(MQA) | 16bit | 59.83 | 23.20 | 4.55 |
| 4bit(K-T, V-T) | 58.53 | 22.94 | 3.26 | |
| 2bit(K-C, V-T) | 43.93 | 20.82 | 1.29 | |
| 2bit(K-T, V-T) | 25.72 | 0.91 | 0.53 | |
| 2bit(K-C, V-C) | 41.95 | 17.11 | 1.52 | |
| 2bit(K-T, V-C) | 19.53 | 0.94 | 0.15 | |
| KIVI-4 | 59.67 | 22.58 | 4.47 | |
| KIVI-2 | 57.48 | 24.98 | 3.41 | |
| Mistral-7B | 16bit | 67.40 | 30.45 | 38.36 |
| 4bit(K-T, V-T) | 67.80 | 29.83 | 36.85 | |
| 2bit(K-C, V-T) | 61.65 | 29.64 | 26.46 | |
| 2bit(K-T, V-T) | 54.55 | 25.86 | 5.00 | |
| 2bit(K-C, V-C) | 24.40 | 24.86 | 2.27 | |
| 2bit(K-T, V-C) | 10.73 | 19.12 | 0.99 | |
| KIVI-4 | 66.95 | 30.49 | 37.30 | |
| KIVI-2 | 66.35 | 32.17 | 36.01 |
P 论文口径:Llama 与 Mistral 上 KIVI 2bit 仅至多约 2% 精度损失;Falcon-7B 因 MQA 单 KV 头已高度压缩,需 4bit 保持精度、2bit 可能大幅掉点(第 6 页)。
10.3 长上下文、消融与其他证据
| 证据 | 数值/结论 | 条件 | 定位 |
|---|---|---|---|
| LongBench 平均(表 4) | Llama2-7B:16bit 44.52 / KIVI-4 44.59 / KIVI-2 44.27;Llama2-13B:44.85/44.48/44.69;Llama2-7B-Chat:45.95/45.83/45.67;Llama2-13B-Chat:45.96/46.44/45.52;Falcon-7B:8.71/8.78/7.95;Mistral-7B:46.58/46.56/45.85 | 8 任务平均;G=32、R=128 | 第 9 页 |
| NIAH(图 4) | 2bit 下检索能力保持(Llama-3-8B-Instruct 20K 词/27K token;Mistral-7B-Instruct-v0.2 20K 词/30K token,全深度×深度网格基本满命中) | 统计词数以消除 tokenizer 差异 | 第 7 页、附录 B 第 13 页 |
| 组大小消融(表 5) | G=32/64/128 → GSM8K 20.77/21.00/17.29(G=128 显著下降) | Llama2-13B、R=128 | 第 9 页(讨论第 7 页) |
| 残差消融(表 5) | R=32/64/96/128 → 20.62/19.86/20.55/20.77({32,96,128} 无显著差异;R=64 最差;「合理较大的残差长度重要」) | Llama2-13B、G=32 | 第 9 页(讨论第 7 页) |
| R32 复测(附录 C、表 6) | R=32 压缩率更高、吞吐增加;Llama-2-7B KIVI-2 R32 62.85/33.01/13.57 vs R128 63.05/33.95/12.74(GSM8K 反而略高) | KIVI-2,LM-Eval | 第 13 页 |
| 补充模型(表 8-10) | Llama-3-8B-Instruct(8K/GQA)、Mistral-7B-Instruct-v0.2(32K/GQA)、LongChat-7B-v1.5-32K:KIVI-2/4 与全精度基线接近(如 Llama-3 平均 45.21 → KIVI-4 45.31) | G=32、R=128 | 第 14-15 页 |
| 实验 | 硬件 | 精度 | 批量/负载 | 基线 | 定位 |
|---|---|---|---|---|---|
| LM-Eval 精度(表 3) | 论文未明确披露 | KV 2bit/4bit vs 16bit;权重未披露 | 评测集默认参数;批量未披露 | 同模型 16bit KV | P 第 8 页 |
| LongBench(表 4) | 论文未明确披露 | 同上 | 最大序列 8192/4096 | 同上 | P 第 9 页 |
| 效率(图 5) | 单卡 A100(80GB) | KIVI-2 vs FP16 | ShareGPT 合成 161/338,batch 扫描至 OOM | FP16 KV + FP16 权重 | P 第 7-8 页;逐点读数 I |
| 消融(表 5) | 论文未明确披露 | KIVI-2 | GSM8K | 组内互比 | P 第 9 页 |
10.4 建议复现步骤(编辑推断)
- I 从摘要印明仓库取代码(先人工复核归属与许可,pin commit/digest);确认 CUDA/Triton kernel 与推理框架版本配对。
- I 精度复测:Llama-2-7B/13B、Mistral-7B、Falcon-7B 各跑 16bit 基线与 KIVI-2/KIVI-4(G=32、R=128),对齐 LM-Eval 默认参数与 LongBench 序列上限(8192/4096)。
- I 效率复测:单卡 A100-80GB、Llama-2-7B,ShareGPT 合成负载(均值 161/338),batch 从小到大至 OOM,记录峰值显存与吞吐;对照图 5 形状(基线小批量峰值、KIVI 大批量胜出)。
- I 敏感性扫描:G∈{32,64,128}、R∈{32,64,96,128}、R=32 全量评测;重点观察 GSM8K 与检索类任务(滑窗敏感性最高)。
- I 目标业务实测:在真实上下文长度分布与并发区间测「开/关量化」差值(吞吐、峰值显存、硬任务抽样精度),再决定启用范围与位宽档位。
11. 论文 / 代码 / 延伸链接
| 来源 | 链接 / 文件 | 级别与核验 |
|---|---|---|
| 论文(arXiv abstract) | https://arxiv.org/abs/2402.02750 | P arXiv:2402.02750v2(2024-07-25,PDF 水印逐字核验);ICML 2024 / PMLR 235(第 1 页版权行,论文未给出 PMLR 链接,故不外链);本地 PDF:08_KIVI_2402.02750.pdf(15 页) |
| 官方代码仓库 | https://github.com/jy-yuan/KIVI | R 论文摘要末句印明(第 1 页逐字核验:The source code is available at https://github.com/jy-yuan/KIVI)。本次会话未在线访问该 URL;接入前请人工复核归属、活跃度与许可。 |
| 其他仓库 | 不提供 | I 遵循本站「不猜测仓库」策略:论文未印明且未经核验的第三方/镜像/集成仓库(如各推理框架的适配)一律不链接。 |
12. 给架构师的决策清单
I 以下为落地前的勾选项;标注(P)的条目对应论文证据,(R)对应仓库核验项,其余为工程判断。
-
需求与规模
-
兼容性
-
PoC(1-2 周量级)
-
容量
-
SLO 与恢复
-
成本
-
安全
-
运维与回滚
-
退出策略
13. 证据台账
下表为核心结论的证据映射;逐条引文与核验记录见构建文件 sources/kivi.evidence.json。核验日期为 。
sources/kivi.txt 可读并用作检索索引,PDF 全部 15 页经 pdftoppm 渲染,其中第 1、3、4、5、6、7、8、9、13 页逐项目检(含图 5 高分辨率放大读图),第 2、12、14、15 页经 pdftotext 与提取文本交叉核对。一处提取错误已在核验中纠正:第 6 页「全精度滑窗 key R/2、value R」在 kivi.txt 中方向颠倒,本页以 PDF 原页为准。
| 关键结论 | 级别 | 定位(PDF 页码) | 核验状态 |
|---|---|---|---|
| 题名/作者/机构/ICML 2024 PMLR 235/arXiv:2402.02750v2;仓库 github.com/jy-yuan/KIVI 印于摘要 | P/R | 第 1 页 | 已核验(原页目检);仓库未在线访问 |
| 摘要级结论:免调优非对称 2bit(K 按通道/V 按 token);峰值显存(含权重)1/2.6;batch 至多 4×;吞吐 2.35×~3.47× | P | 第 1 页摘要 | 已核验(原页目检) |
| 瓶颈量级:PaLM 540B 批 512/上下文 2048 → KV 3TB=3× 参数;OPT-175B → 1.2TB=3.8× 权重;每 token 全量搬运 KV、计算核空闲 | P | 第 1 页引言、第 3 页 | 已核验(原页目检) |
| 既有三类路线(MQA/GQA 需训练、token 驱逐、系统分页/卸载);GPTQ 因流式开销不适用;此前 KV 量化多为 4bit RTN | P | 第 1、3 页 | 已核验(原页目检) |
| 表 1:2bit 下 (K-C,V-T) 63.53/28.60 最优,(K-C,V-C) 崩至 2.88/0.74(Llama-2-13B、G=32);OB1-OB3 | P | 第 3 页 | 已核验(原页目检) |
| RTN 公式 Q(X)=⌊(X−z)/s⌉,z=min,s=(max−min)/(2^B−1) | P | 第 3 页 §3.1 | 已核验(原页目检) |
| 图 2:key 少数固定通道幅值极大、value 无明显离群(Llama-2-13B L16/L31、Falcon-7B L16/L20) | P | 第 4 页 | 已核验(原页目检) |
| 表 2:K 重建误差 4.55 vs 13.67、注意力分数误差 9.60 vs 47.00、稀疏 84.3%;V 输出误差 ∆ 3.55 vs 49.89(约 15×) | P | 第 4 页 | 已核验(原页目检) |
| 图 3/算法:分组+残差拆分、R 可整除 G、式(3) 拼接注意力、value FIFO、prefill 传精确张量、R≤128 开销可忽略 | P | 第 5 页;伪代码第 12 页 | 已核验(第 5 页原页目检;第 12 页文本交叉) |
| 全精度滑窗预期 key R/2、value R;对 GSM8K 至关重要(fake 5.76 vs KIVI-2 12.74 vs 16bit 13.50) | P | 第 6 页;表 3 第 8 页 | 已核验(400dpi 放大目检;提取方向颠倒已更正) |
| 系统支持:CUDA 融合 Q_MatMul、Triton 组量化 kernel、兼容 weight-only 量化 | P | 第 6 页 | 已核验(原页目检) |
| 设置:G=32 全实验、R=128;HF Transformers 实现;LM-Eval/LongBench/NIAH 任务与序列上限 8192/4096 | P | 第 6 页 | 已核验(原页目检) |
| 表 3 全量:4 模型 × 8 配置精度;Llama/Mistral 2bit 至多约 2% 损失;Falcon 需 4bit | P | 第 8 页(结论第 6 页) | 已核验(原页目检) |
| 图 4 NIAH:2bit 保持 27K/30K token 检索能力 | P | 第 7 页、附录 B 第 13 页 | 已核验(原页目检) |
| 表 4 LongBench 平均(6 模型 KIVI-2/4 vs 16bit) | P | 第 9 页 | 已核验(原页目检) |
| 表 5 消融:G=128 显著下降(17.29);R 无一致规律但忌 64(19.86)、合理较大残差重要 | P | 第 9 页(讨论第 7 页) | 已核验(原页目检) |
| 效率口径:ShareGPT 161/338、batch 扫描至 OOM、单卡 A100-80GB、Llama-2-7B | P | 第 7-8 页 | 已核验(原页目检) |
| 图 5:相近显存下 batch 至多 4×、吞吐 2.35×~3.47×;越长越大;融合量化可再提升(未来工作) | P | 第 8 页图 5 及正文 | 已核验(原页目检);逐点坐标为读图近似 I |
| 附录 C:R32 压缩率更高、吞吐增加、精度差距不大(表 6);附录 D 补充模型(表 8-10) | P | 第 13-15 页 | 第 13 页原页目检;第 14-15 页文本交叉 |
| 与 H2O/StreamingLLM/vLLM/S3/weight-only 正交可组合;KVQuant 为独立并发工作;未来优化量化开销 | P | 第 9 页 §5-§6 | 已核验(原页目检) |
| 云实例/服务/存储/监控映射示例 | E | 各云厂商公开目录与推理服务文档 | 未逐一在线核验;使用前按当时目录复核 |
| 成本公式、图 5 逐点读数、SLO/监控/回滚/清单、控制面-数据面划分等工程内容 | I | 本报告 §4、§6-§9、§12 | 编辑标注完成;不含伪精确数字,读图值已注明近似 |