让 Prefill 与 Decode 各用一套量化方案:DQ 如何兼顾速度与精度
大语言模型推理通常被视为一个连续过程,但 Prefill 和 Decode 面临的瓶颈并不相同。Prefill 需要一次处理大量输入 token,计算吞吐更重要;Decode 则逐 token 生成,权重读取和显存带宽往往成为主要限制。论文《Disaggregated Quantization: Specializing LLM Prefill and Decode》据此提出“解耦量化”(Disaggregated Quantization,DQ),不再要求同一份量化模型同时服务两个阶段。
核心思路
DQ 为 Prefill 与 Decode 分别安排计算格式、权重精度和存储位置:
- Prefill 偏向计算效率。 研究者训练面向 Prefill 的计算原生权重,使其能够更好地利用低精度算术,在处理长提示词时减少计算开销。
- Decode 偏向内存效率。 生成阶段仍可使用紧凑的低比特权重,以降低权重搬运和存储压力。
- 激活量化不再一刀切。 在 Qwen 3 和 Gemma 3 的实验中,Decode 阶段移除激活量化后,部分以生成质量为主的任务精度得到改善,同时没有增加推理成本。
- 兼容已有量化检查点。 论文还评估了共享权重格式的阶段解耦,并通过后训练量化验证了方法在更大规模模型上的适用性。
实验结果显示,单独训练的 Prefill 权重在 2 至 3 bit Decode 设置下,准确率可以达到或超过权重-only 推理方案,同时加速提示词处理。针对 Qwen3.8-27B,研究者发布了 NVFP4 Prefill 权重;在不改动 Decode 检查点的情况下,低比特设置下的 MMLU-Pro 和 MMMU-Pro 表现分别获得明显提升。这里的关键并不是简单提高某一阶段的精度,而是让每个阶段使用更匹配自身硬件访问模式的表示方式。
如何落地到单设备
额外保存一份 Prefill 检查点会带来容量压力。为此,论文提出 Offloaded Disaggregated Prefill(ODP):将 Prefill 权重放在 SSD 中,并在处理较长提示词时流式读取,使加载成本能够被更长的输入计算摊销。在 llama.cpp 对同一 27B 模型的测试中,8K 提示词长度下,ODP 相比权重-only 基线实现了 1.78 倍的首 token 时间改进。
意义与限制
DQ 的价值在于把量化从“模型级固定选择”变成“阶段级系统设计”。它为长上下文服务、Decode 密集型应用以及单卡部署提供了新的折中路径:Prefill 可以追求算力利用率,Decode 则继续压缩内存流量。不过,系统需要管理两套权重,并处理加载、调度和服务框架适配问题;ODP 的收益也会受到提示词长度、SSD 性能和模型结构影响。论文在 vLLM 中评估了分离式服务,并报告了覆盖超大模型的后训练量化验证,但实际部署仍需结合硬件与工作负载进行测试。
评论
正在确认登录状态……
正在加载评论……