feat(modelopt): support real NVFP4 QAT rollout for MoE and Mamba - #2983
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
93c66ac to
be1d918
Compare
|
/ok to test 6a982e5 |
terrykong
left a comment
There was a problem hiding this comment.
@sharonyu-115 to review
terrykong
left a comment
There was a problem hiding this comment.
Nice feature — this closes out the real-quant rollout story from #1750, and the switch from the broad vLLM monkeypatch to registering ModelOpt NVFP4 through vLLM's public quantization registry (plus the new design doc) is a real improvement over the earlier revision.
This review was done by a multi-agent pass (6 agents) at head 62c766b. Summary of what was checked and found clean, plus a few informational notes:
- Existing review threads: all 12 inline threads from @mxinO and @zhangyimi were verified as resolved at the current head (nano3 quant configs net-reverted, monkeypatch removed, backend selection moved into
get_forward_loop_func(), rank-0 stale-cache warning added, etc.). - Verified clean: every vLLM 0.20.0 internal symbol used by
vllm_modelopt.py/vllm_quant_backend.pywas checked against the pinned wheel (incl. the retain-MoE-kernel-across-layerwise-reload design and the manuala1_gscale/a2_gscalecopy-back — both correct); the Megatron-Bridge submodule bump (fast-forward, required for nativew4a16_nvfp4export) and modelopt 0.46.0.dev86 bump were verified required; 174 unit tests from the PR pass locally;pre-commit run --all-filespasses at the PR head. - Super-120B recipes: the two 16-node real-quant recipes are registered as BF16/real-quant comparison smokes with no convergence claim — fine as-is; consider adding an evidence-table row in
docs/guides/quantization-aware-rl.mdonce those runs complete. - Sibling PR heads-up: open PR #3012 (Simulated KV cache QARL) touches 6 of the same files, including
vllm_quant_backend.pyandmegatron_quant_policy_worker.py— worth coordinating merge order to keep rebases cheap.
Inline comments: 5 for a dead-negative-assertion pattern in the new recipe scripts (with click-applyable fixes) and 2 for stale quant-config filenames in the guide.
Generated by Claude Code
|
/ok to test 81c44aa |
|
I reviewed the W4A4-related changes, and the implementation looks good to me. The training curves also look healthy. LGTM aside from the one remaining comment. |
Signed-off-by: Hollow Man <hollowman@opensuse.org>
Signed-off-by: Hollow Man <hollowman@opensuse.org>
Signed-off-by: Hollow Man <hollowman@opensuse.org>
Signed-off-by: Hollow Man <hollowman@opensuse.org>
Signed-off-by: Hollow Man <hollowman@opensuse.org>
Signed-off-by: Hollow Man <hollowman@opensuse.org>
Signed-off-by: Hollow Man <hollowman@opensuse.org>
|
/ok to test 66c5545 |
What does this PR do ?
Add ModelOpt NVFP4 real-quant vLLM reload support for W4A16 fused-MoE & w4a4 rollout weights.
Issues
List issues that this PR closes (syntax):
Summary
export_hf_weights_modelopt(..., quant_mode="w4a16_nvfp4").Usage
Run the Nano3 W4A16 real-quant rollout recipe directly:
Or enable real-quant rollout on an existing Megatron + vLLM recipe:
Before your PR is "Ready for review"
Pre checks:
Additional Information