Add unscaled E5M2 fake quantization and Slurm eval support - #2019
Add unscaled E5M2 fake quantization and Slurm eval support#2019ChenhanYu wants to merge 9 commits into
Conversation
Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2019 +/- ##
==========================================
- Coverage 75.79% 75.19% -0.60%
==========================================
Files 518 519 +1
Lines 58658 59687 +1029
==========================================
+ Hits 44459 44884 +425
- Misses 14199 14803 +604
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
What does this PR do?
Type of change: new feature
Adds an unscaled E5M2 fake-quantization configuration for weights, activations, and KV cache. It also adds a Qwen3-4B vLLM fake-quant evaluation example and completes the ModelOpt MCP handoff needed to run and monitor it on Slurm.
The MCP changes:
container_mountsandsrun_argsfrom cluster inventory;NEMORUN_HOMEwhen configured, otherwise NeMo Run's native~/.nemo_rundefault consistently across submission and status;wait_for_experimentby default.The previous log reader spawned
uv run nemo. In an installeduv toolenvironment, that child command resolved against the MCP working directory instead of the tool environment, so it could reportFailed to spawn: nemoeven thoughnemo-runwas installed withmodelopt-mcp. Loading the experiment and using its tunnel in-process removes that PATH dependency and uses the MCP's declarednemo-rundependency directly.Using one canonical
NEMORUN_HOMEis also necessary because the tunnel and executor configuration are stored in the local experiment sidecar. Submission, status, wait, and log retrieval must resolve the same sidecar directory.The Slurm evaluation path additionally:
python3with apythonfallback because the vLLM image does not expose apythonalias;pyproject.tomlandLICENSE_HEADER, allowing the source-only launcher payload to create validnvidia-modeloptdistribution metadata;lm_eval[api]extra required by the local OpenAI-compatible completion client.Usage
The example expects Qwen3-4B at
/hf-local/Qwen/Qwen3-4Band usesE5M2_DEFAULT_CFGfor a 20-sample GSM8K smoke evaluation.Testing
uv run --project tools/mcp --with pytest pytest -q tools/mcp/tests— 69 passeduv run --project tools/launcher --with pytest pytest -q tools/launcher/tests/test_examples_resolve.py— 59 passedbash -n tools/launcher/common/vllm/fakequant_eval.sh— passede6700897609f49c7401b0ba0b522effbbb206ab2with resolved mounts and--mpi=pmix— passed3288165/ experimentcicd_1785097664— completed successfully in 5m21s0.75, strict and flexible extraction)Before your PR is "Ready for review"
Make sure you read and follow Contributor guidelines and your commits are signed (
git commit -s -S).Make sure you read and follow the Security Best Practices.
CONTRIBUTING.md: N/AAdditional Information
Related work item: OMNIML-5492.