# PR #35545 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[Qwen3.5][MTP] Preserve online NVFP4 draft quantization for mixed checkpoints
- 合并时间：2026-08-20 02:12
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/35545

---

# 执行摘要

- 一句话：修复混合检查点下 NVFP4 draft 量化被覆盖
- 推荐动作：值得精读，但改动极小，可快速理解量化检测逻辑。关注 `model_config.py` 中 `_verify_quantization` 的兼容性判断模式，以及后续是否有必要增加针对 `modelopt_mixed` 的单元测试。

# 功能与动机

当使用混合 ModelOpt 检查点并显式配置 `nvfp4_online` 作为推测性 draft 模型时，检查点检测会覆盖显式的 draft 量化选择，将其改为 `modelopt_mixed`，导致 MTP draft MoE 无法使用预期的加载时 NVFP4 转换和 FlashInfer CuTeDSL 执行路径。

# 实现拆解

1. 修改 `python/sglang/srt/configs/model_config.py` 中的 `_verify_quantization` 方法：将 `preserve_online_draft_quantization` 条件中的 `quant_method == "modelopt_fp4"` 扩展为 `quant_method in ("modelopt_fp4", "modelopt_mixed")`。
2. 该条件用于判断是否应保留显式的 `nvfp4_online` draft 量化设置，当条件成立时，跳过后续的检查点检测覆盖逻辑（`override_quantization_method`）。
3. 此改动是纯逻辑条件扩展，无新增依赖或 API 变更，不影响默认行为（未显式选择时，draft 模型仍继承 target 模型量化）。

关键文件：
- `python/sglang/srt/configs/model_config.py`（模块 sglang/srt；类别 source；类型 data-contract）: 源码主路径；+3/-3；以 data-contract 为主

关键符号：_verify_quantization


# 评论区精华

本 PR 无 review 评论，但作者自行触发了相关的测试。PR 说明中详细记录了验证情况：在 Blackwell 生产验证中，112/112 请求成功，自然平均接受长度 4.79792；速度测试显示相对旧配置吞吐提升约 +1.282%（属于完整配置变更的效果，而非本补丁单独效果）。

- 暂无高价值评论线程

# 风险与影响

- 风险：风险极低：改动仅扩展一个条件判断的匹配范围，不影响默认路径。但需注意，对于 `modelopt_mixed` 检查点且显式指定 `nvfp4_online` 的情况，如果实际 draft 权重已打包（非未量化），在线加载器会在加载时拒绝，这属于预期保护行为。另外，该路径受现有 SM100+ 和 FlashInfer MoE 后端检查限制，仅对支持的配置生效。
- 影响：影响范围：仅影响显式指定 `--speculative-draft-model-quantization nvfp4_online` 且使用 ModelOpt mixed 检查点的场景，使该类配置可以正常启动并走 NVFP4 在线转换路径。对默认用户无影响。
- 风险标记：参数校验增强 , 路径受限

# 关联脉络

- PR #36097 Fix MXFP8 MoE weight sizing for non-gated models: 同为量化相关 bugfix，涉及 MoE 权重量化处理
- PR #36237 [MegaMoE] Respect padded MXFP8 scale row strides in pre-dispatch: 同为量化与 MoE 执行路径相关的修复