Skip to content

Add MoVA training, weight sync, and rollout validation - #87

Draft
akhauriyash wants to merge 8 commits into
prodfrom
yash.akhauri/rollout-filter-mask-validation
Draft

Add MoVA training, weight sync, and rollout validation#87
akhauriyash wants to merge 8 commits into
prodfrom
yash.akhauri/rollout-filter-mask-validation

Conversation

@akhauriyash

Copy link
Copy Markdown
Collaborator

Summary

  • add MoVA/xLLM model-provider and Megatron-to-HF conversion support
  • synchronize MoVA parameters through the distributed weight-update paths
  • validate rollout filter masks and rollout weight versions before training
  • add rollout-temperature handling and focused unit coverage

Stack dependencies

This is the Miles 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.

Convert gated dense and routed-value attention tensors into the canonical xLLM inference layout. Keep MoVA value experts on attention TP rather than FFN expert parallelism, synchronize router bias buffers, and reject stale cache-preserving updates.
Register the MoVA and xLLM router CLI contract in Miles and select Megatron's MoVA config and heterogeneous block spec whenever value experts are enabled. Fail early on incompatible provider, checkpoint-conversion, and attention settings while preserving the ordinary Transformer provider unchanged.
Add a cheap opt-in acceptance check that queries every rollout engine after each synchronization. Keep the existing random CI sample as the default and avoid full tensor comparisons.
Include the upstream K3 estimator before pinning the acceptance image. Resolve the shared argument-test addition by retaining both MoVA and K3 coverage.
Weight-version metadata must never advance after a failed or timed-out RDMA write. Drain every submitted transfer, clear the queue reliably, and surface aggregate failures to abort the update before rollout resumes.
Training recomputes policy log probabilities by dividing logits by the rollout temperature, so greedy temperature zero creates NaNs only after an expensive rollout. Validate before runtime setup while retaining zero-temperature support for rollout-only generation.
P2P builds a sharded SGLang model locally before transferring weights. Passing only the model path discarded the rollout server dtype, so float32 HF metadata silently resolved auto to fp16 even when live engines explicitly used bf16. Preserve the queried rollout dtype and pin both explicit and auto behavior in regression coverage.
Rollout filters intentionally zero loss masks, but the fail-fast trainer validator could not distinguish those samples from corrupted data. Carry the filter decision through DP sharding, accept only explicitly filtered all-zero masks, and keep unexplained zeros fail-closed.
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