本地大模型为何不如官方版?实测:推理栈的每一层都在制造偏差
Level1Techs 用户实验显示,注意力后端、KV 缓存量化、权重量化方案等推理栈差异,会让同一份权重在长上下文中产…
本地部署的开源大模型,明明用了官方权重和同一张显卡,输出却总是与官方版本对不上——Level1Techs 论坛用户 thr3e 通过超过 10 万 token 的全量 logit 捕获实验,给出了一个系统性的解释:推理软件栈里的每一个环节,都可能在制造与原始基准不同的数学结果。
实验背景:同一份权重,不同的数学结果
thr3e 使用 Qwen3.6-27B 在 RTX PRO 6000 Blackwell 显卡上运行,输入是一段约 10 万 token 的真实 Agent 工作流数据,其中包含多次工具调用。作者强调,该数据不出现在任何公开基准或训练集中,无法被针对性优化。
测试方法为每隔 32 个 token 采样一次全词表 logit,再以 FP64 精度事后计算 KL 散度和 Top-1 一致性。关键观察是 Top-1 翻转:模型在某个位置选出的贪心解码 token,与基线不同。同后端多次运行的对照实验显示,同一配置下隐藏状态的 logit 逐位相同,因此分歧完全来自不同 CUDA 核函数在 prefill 阶段执行矩阵乘法与累加时的数值差异。
注意力后端:换个核函数就变傻
vLLM 为 Qwen3.6-27B 提供三种全注意力后端:FlashAttention 2、FlashInfer 和 Triton Attention。thr3e 仅切换这一项配置,其余硬件、权重、KV 缓存精度均保持不变。
结果前几千个 token 三个后端输出一致,但随着上下文增长分歧开始出现,且分布不均匀。具体案例中,模型目标是为 Cisco 路由器接口 GigabitEthernet0/0/1.201 执行工具调用,FlashAttention 2 将接口错认为 GigabitEthernet0/0/1,并在后续两次工具调用中执行了错误命令。
KV 缓存量化:INT4 让智商断崖式下跌
保持权重为 BF16、注意力后端固定为 Triton,仅改变 KV 缓存量化精度。实验对比 BF16、INT8 和 INT4 三种配置:
- BF16:全程保持稳定,成功完成所有工具调用。
- INT8:出现 Top-1 翻转,但模型最终挣扎回到正确轨道。
- INT4:长上下文中 Top-1 翻转率急剧攀升,工具调用彻底失败且无法自我纠正。
这一发现专门影响那些为节省显存而将 KV 缓存压到 INT4 的本地用户。短上下文中差异可能不易察觉,但当对话或 Agent 工作流拉长到数万 token,累积的数值漂移足以让模型做出致命错误决策。
权重量化横评:英伟达 NVFP4 垫底
将 KV 缓存统一为 BF16,thr3e 又比较了五种权重量化方案:
- Qwen 官方 BF16(基线)
- Qwen 官方 FP8(W8A8)
- TheHouseOfTheDude 发布的 INT8(W8A16,无校准数据集的一次性量化)
- 英伟达官方 NVFP4
- cyankiwi 发布的 AWQ INT4(W4A16,使用 STEM 和 Agentic 数据集校准)
最亮眼的是社区版 INT8(W8A16)。它没有使用任何校准数据集,仅做了通道级对称量化,但 Top-1 一致性碾压了官方 FP8 和英伟达 NVFP4。原因在于 W8A16 保留了 BF16 激活精度,且该量化排除了 Gated DeltaNet 投影和 lm_head 层。
英伟达 NVFP4 表现最差,到 88k 上下文时 Top-1 翻转率逼近 50%。在实际工具调用测试中,NVFP4 和 AWQ W4A16 都未能正确关闭工具调用,并搞错了 Cisco 命令行语法(执行了 show run 而非 show arp),而 FP8 和 INT8 均顺利完成。
thr3e 还展示了张量并行的诡异现象:同一份 BF16 权重,TP1 单卡能正确完成工具调用,切到 TP2 双卡反而失败,再切到 TP4 四卡又成功了。进一步调试显示这通常由 NCCL 跨卡归约操作的数值差异导致。
734 个依赖包:每一层都可能是坑
thr3e 指出,他下载的 vLLM nightly 容器镜像包含 734 个软件包,其中 252 个是 Python 的 uv/pip 包。这些代码库各有各的 bug 和未记录行为,特定硬件与模型配置在这座代码山中走出的路径是独一无二的。
因此 HuggingFace 模型卡上标注的极低 KL 散度数字不应轻信。除非作者完整披露参考检查点、运行时环境、评估文本、校准数据、上下文长度、采样位置、KL 方向、词表截断方式以及聚合方法,否则该数字根本无法解读。
thr3e 表示,他已完成不同权重、不同模型、不同 KV 缓存量化、不同张量并行度、不同 NCCL 配置、不同注意力后端、不同显卡等维度的全量 logit 捕获与分叉追踪,正将测试工具和数据集打包成可分发版本,供其他用户在自己的设备上运行并上报结果。
