Skip to content

Add MoVA inference and MP2 parity support - #48

Draft
akhauriyash wants to merge 5 commits into
prodfrom
yash.akhauri/xllm-router-mp2-parity
Draft

Add MoVA inference and MP2 parity support#48
akhauriyash wants to merge 5 commits into
prodfrom
yash.akhauri/xllm-router-mp2-parity

Conversation

@akhauriyash

Copy link
Copy Markdown
Collaborator

Summary

  • add the MoVA inference layer and wire it into the xLLM model
  • support the model-parallel-2 MoVA routing and weight layout used by the RL stack
  • preserve required top-k routing behavior
  • add focused MoVA, transfer-engine, and CPU top-k coverage

Stack dependencies

This is the SGLang side of the internal MoVA RL stack and is reviewed together with:

The validated training recipe must use --no-rope-fusion for MoVA. The pinned Megatron fused packed-THD RoPE path does not preserve rotary_interleaved=True, causing trainer/rollout policy mismatch. Keep fusion disabled until the permanent Megatron fix passes end-to-end parity.

Validation

Draft for internal review. No merge requested.

Serve the 36B MoVA checkpoint with packed Q/K/gate projections, output-sharded routed values, native router and norm semantics, ordinary RadixAttention caching, and live-update mappings. Reuse the fused-MoE first GEMM behind a compile-safe custom-op boundary and preserve the legacy K2 path.
Transformers 5 materializes a null rope_scaling field as an explicit default-RoPE dictionary. Treat that normalized representation as unscaled while retaining the fail-fast guard for actual scaling modes.
xLLM applies sigmoid, correction bias, expert selection, and top-k normalization in FP32 after the BF16 router projection. Match that contract in the native fallback so near-boundary routes do not change during serving.
The remote-instance seed path re-imported get_local_ip_auto from the utils package root after that API moved to utils.network. This caused every TP scheduler to fail before Mooncake initialization. Use the existing canonical module-level import and cover the transfer-engine and bootstrap contracts.
Preserve legacy router behavior when source topology is absent. For explicit MP1 or MP2 provenance, reproduce native BF16 local GEMM rounding and FP32 logits at both FFN and value routers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant