从内存占用、MTP、输出头精度和运行时栈等维度,分析不同 NVFP4 构建版本对实际推理速度的影响。
AI translation, not an official translation. Refer to the original for technical details.
Adapted from @Oluwaphilemon1我花了一些时间对比了多个 Qwen3.8-27B NVFP4 变体,有趣的是,准确率并没有真正把它们区分开来。 更大的差异体现在内存占用和推理速度上。 如果你受 VRAM 限制,minima-ai/mnma_qwen3.8_27b_nvfp4 是一个值得关注的选项。 其代价是不附带 MTP,因此你无法通过推测解码来获得潜在的更快生成速度。 NVIDIA 的 NVFP4 构建版本确实包含 MTP。 但在我的长上下文代码测试中,MTP-4 的速度仅比不使用 MTP 时快约 2 倍。 这个结果还不错,但 NVIDIA 的实现在 RTX Pro 6000 上仍然比 Unsloth 慢大约 2.5 至 3 倍。 所以量化格式本身并不能说明全部问题。 推理栈至关重要。 一个可能的解释在于模型输出头的处理方式。 NVIDIA 将 lm_head 量化为 NVFP4,而 Unsloth 则将其保留为 FP8。 这一点对 MTP 来说可能相当重要,因为推测 token 仍需与目标模型进行评估,而 MTP 共享的正是该目标模型的 lm_head。 如果较低精度的输出头使预测可靠性下降,推测草稿被拒绝的频率就会更高。 较低的接受率意味着 MTP 理论上的加速效果更少能真正体现在最终解码速率上。 这仍是一个假设,并非经过实验验证的结论。 但它可以解释为什么两个在纸面上看起来非常相似的构建版本,一旦用于长上下文代码测试,行为表现却大相径庭。 对我来说,结论很简单: 不要仅凭模型名称或标称精度来选择量化版本。 要审视完整的推理路径。 权重。 输出头。 MTP。 KV 缓存。 运行时。 上下文长度。 接受率。 这些因素都可能产生影响。 就我目前的配置而言,我会继续使用 Unsloth 的 NVFP4 构建版本。 现在我要进入更有意思的测试: 当你给它布置长周期的智能体代码任务时,它的实际表现如何? 这才是我期望看到各构建版本差异变得更加清晰的地方。