feat(inf-train parity): add Qwen3-MoE train-inference parity plugin, part 1/2 — vLLM integration - #504
Open
cboss6 wants to merge 1 commit into
Open
feat(inf-train parity): add Qwen3-MoE train-inference parity plugin, part 1/2 — vLLM integration#504cboss6 wants to merge 1 commit into
cboss6 wants to merge 1 commit into
Conversation
cboss6
requested review from
CjhHa1,
celve and
leviking98z-rgb
as code owners
September 23, 2026 06:34
2 tasks
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Part 1 of 2: vLLM integration for the Qwen3-MoE train–inference parity plugin.
This two-PR series splits #430 into reviewable components that together implement one end-to-end train–inference parity plugin feature, following the design in #431. Neither part alone provides the complete verified training-and-rollout workflow.
feat/qwen3-moe-parity-vllm-pluginfeat/qwen3-moe-parity-trainingThis PR packages the rollout-side component separately. Part 2 integrates it with differentiable actor replay and verifies the complete feature before and after an optimizer update.
Rollout and differentiable replay can produce different policy log-probabilities even for the same weights and sampled tokens. Such numerical differences affect importance ratios, clipping, and KL-related terms. This plugin supplies the inference-side numerical providers needed to align Qwen3-MoE rollout with the companion training-side implementation.
Changes
vllm.general_plugins, with no changes to the baseline runtime unless explicitly enabled throughUNIRL_PARITY_ENABLE=1.o_projwithout generic meta staging.Scope and merge order
All changes are contained in:
This PR does not modify core UniRL, the training algorithm, the weight-sync transport, or training recipes.
Merge order: Part 1/2 → Part 2/2. Part 1 can be reviewed and merged independently, but the complete experimental recipe and end-to-end parity verification require both parts. The training-side adapter, parity gate, verification pipeline, and example belong to Part 2.
Related Issue
This is a split of the existing implementation, not an additional implementation intended to coexist with the original large PR.
Test Plan
No test; Reason: no need.
Plugin and local regression checks
Passed:
pre-commit run --hook-stage manual \ --files $(git diff --name-only c8af5d6 HEAD)python -S, confirming that it imports neither Torch, vLLM, nor UniRL.One-off verification harnesses and generated artifacts are not committed.
End-to-end integration validation
Passed on September 22, 2026, using Part 1/2 + Part 2/2 together. These results validate the complete train–inference parity feature, not this plugin-only branch in isolation.
The tested integration commit is
b9e8ede407d3bb0c0dd47a773c1074527c988e04. The two split branches have disjoint diffs, and their merged source tree matches that tested commit exactly.ad44e777bcd18fa416d9da3bd8f70d33ebb85d39Command, with the companion training changes and documented environment configured:
initial_checkpointpost_update_reloadBoth phases completed one optimizer update with finite gradient norms. The post-update phase confirmed changed actor parameters, receipts from all four TP workers, prefix-cache reset, and publication of model version 1 containing 18,867 tensors.
Final verification status:
PASS; process exit code:0; source tree: clean.Local artifact:
SHA-256:
Compatibility / Risk
Reviewer Notes
Checklist