Prhub

#23471 [Fix] NVFP4 qwen3.5 quant error fix by add packed_modules_mapping

原始 PR 作者 TTThanos 合并时间 2026-04-29 04:36 文件变更 1 提交数 1 评论 3 代码增减 +11 / -13

执行摘要

修复 NVFP4 量化导致 Qwen3.5 精度下降

在 NVFP4 量化模式下运行 Qwen3.5-A35B 时,许多 linear_attn_in_proj 层日志中显示为被量化,导致计算精度受损。具体表现为 bench_one_batch 结果异常。PR 作者指出 'the computation precision would be damaged if these layers were quantized'。

建议精读该 PR 以理解 SGLang 量化打包映射的工作原理。虽然改动简单,但涉及量化精度关键设计,值得关注。

讨论亮点

评审过程中,gemini-code-assist[bot] 自动评论确认了变更效果:条件守卫被移除后,打包映射在所有环境中可用,不再受特定硬件限制。yizhang2077 两次 Approved。无额外讨论。

实现拆解

  1. Qwen3_5ForCausalLM 类中,将 packed_modules_mapping 字典的定义从 if _is_gfx95 or _is_npu: 条件块中移出,变为无条件定义。该映射将逻辑分组(如 qkv_proj, gate_up_proj)映射到具体子层(如 q_proj, k_proj, v_proj),用于在加载权重时识别哪些子层属于同一打包组,从而应被跳过量化。
  2. Qwen3_5ForConditionalGenerationQwen3_5MoeForConditionalGeneration 类中,同样移除了 if _is_gfx95 or _is_npu: 条件,使 packed_modules_mappinghf_to_sglang_mapper = None 赋值无条件执行。这两个类分别对应纯文本模型和 MoE 视觉语言模型。
  3. 编码调整删除 13 行、新增 11 行,净减少 2 行。文件变更仅限 python/sglang/srt/models/qwen3_5.py
文件 模块 状态 重要度
python/sglang/srt/models/qwen3_5.py 模型定义 modified 6.41

关键源码片段

python/sglang/srt/models/qwen3_5.py data-contract

核心修复文件,移除 packed_modules_mapping 和 hf_to_sglang_mapper 的条件守卫,使其在所有环境下生效。

# python/sglang/srt/models/qwen3_5.py 中 Qwen3_5ForCausalLM 类的变更
class Qwen3_5ForCausalLM(nn.Module):
    """Qwen3.5 Model with support for dense variant."""
​
    # 移除条件守卫,使 packed_modules_mapping 在所有环境中生效
    packed_modules_mapping = {
        "qkv_proj": ["q_proj", "k_proj", "v_proj"],
        "gate_up_proj": ["gate_proj", "up_proj"],
        "in_proj_qkvz": ["in_proj_qkv", "in_proj_z"],
        "in_proj_ba": ["in_proj_b", "in_proj_a"],
    }
​
    # ...

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

变更范围极小,仅涉及类属性的定义条件,不涉及运行时逻辑、权重加载或推理路径。风险极低。但需注意:如果 NPU 或其他后端未来需要不同的 packed_modules_mapping 值,此修改可能引入覆盖问题。目前映射定义相同,因此无实际回归风险。

对用户:在 CUDA 等非 NPU/GFX95 环境下运行 NVFP4 量化 Qwen3.5 模型时,linear_attn 等层不再被错误量化,精度恢复正常。对系统:无额外依赖或性能影响。对团队:小的修复,影响面窄。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论