Repository navigation
Add VeRL-Omni v0.3.0 release post - #14
Conversation
SamitHuang
left a comment
There was a problem hiding this comment.
Requesting changes. The writeup tracks the v0.3.0 themes, but the two case studies state results a reader cannot reproduce from the tagged recipes, and the MiniCPM conclusion points at a 2+2 launcher the prose says never wins.
The H3 table mixes launcher defaults with a different 8-GPU README example, drops the 96 GB constraint, and presents a v0 DiffusionNFT run beside a V1-default release. The MiniCPM timing table is a different experiment from PR #629, cannot be the documented 128×16 batch on 3 trainer GPUs, and the crossover / constant 2+2-deficit claims are not in the table. The upgrade list also skips offline DPO staying on v0 and the named-media and attention fail-closed breaks.
The PR body's proposal-issue line is empty. Please link the proposal if one was opened.
|
|
||
| The reference article documents these recipe settings. They describe that case | ||
| study's configuration rather than a performance comparison between release | ||
| versions; the article specifies eight GPUs but does not identify their model. |
There was a problem hiding this comment.
This table does not match one documented command, and it is less specific about hardware than the recipe it cites. On tag v0.3.0 the T2VA launcher defaults to TP=2 and ROLLOUT_N=16, while the README's 8-GPU example is ROLLOUT_TP=4 ROLLOUT_N=4, and the FL2VA section uses ROLLOUT_N=4 because TP=2 does not leave room for weight sync on a 96 GB GPU. Those DiffusionNFT launchers set trainer.use_v1=false (the V1 H3 scripts are FlowGRPO), the default FL2VA path is first-frame only (FRAME_INDICES='[0]'), and "0.27 to above 0.4" is critic/rewards/mean over ~60 noisy steps that only clear 0.4 at the end. Please name the exact command and GPU, and note that ImageBind is CC-BY-NC-SA.
There was a problem hiding this comment.
It's true that T2VA launcher defaults to TP=2 and ROLLOUT_N=16, but in the readme, it uses ROLLOUT_TP=4 ROLLOUT_N=4. However, FL2VA launcher's defaults are ROLLOUT_TP=4 and ROLLOUT_N=16, and the readme example stays to its default.
I supplement the other information too, like the trainer.use_v1=false, reward model license, curves description, etc..
| tokens**, and the margin widens with generation share — 5.8% faster at 512 | ||
| tokens, 12.6% faster at 1024. The experiment is set by the generation share of | ||
| the colocated step (≈0.45× the trainer chain on this recipe), not by GPU count: | ||
| the 2+2 split never wins up to 1024 tokens, its deficit staying a constant ≈107 s |
There was a problem hiding this comment.
This comparison does not isolate placement, and a 3+1 arm cannot be the shipped 128×16 batch. docs/algo/separate_async_omni.md requires ppo_mini_batch_size × rollout.n to divide the actor pool; with n=16, no divisor of train_batch_size=128 is divisible by 3, which is why that doc uses an 8 × 15 reshape instead of 16 × 16. PR #629's published H800 result is the shipped 2+2 recipe (the 0.764 vs 0.762 scores above), at 285 s/step versus 410 s for colocated with parameter offload left on — this table is a different sweep, with no run link, and it does not say whether offload stayed fixed. There is no 256-token row for "overtakes between 256 and 512", steps 3–22 are not 20 independent trials, and the 2+2 "≈107 s at every tier" figure is not in the table, but the launcher below is that 2+2 script.
There was a problem hiding this comment.
I removed the 2+2 description, because it does not appear in the table.
I also updated the batch size.
| for your model, task, and hardware, then follow the matching installation | ||
| instructions. If you are reusing an older launcher, check these changes first: | ||
|
|
||
| - **Trainer:** V1 is the default (`trainer.use_v1=true`); legacy V0 is |
There was a problem hiding this comment.
"Check these changes first" skips the breaks that fail closed on existing launchers. Offline DPO stays on the v0 trainer, including the MiniCPM offline-DPO row above, so trainer.use_v1=false is required there and not only for unmigrated scripts. Unlabelled diffusion rollout tensors are now rejected, and a missing FlashAttention kernel errors at startup instead of falling back to SDPA. Those are already in the v0.3.0 breaking-changes list and will hit current recipes before the Qwen3-Omni launcher rename does.
There was a problem hiding this comment.
Good catch — the section currently leads with the launcher rename, but these fail-closed breaks hit existing recipes first. I'll add them ahead of the Qwen3-Omni bullet, matching the release notes:
- Offline DPO stays on v0 (#650): it needs explicit trainer.use_v1=false — this applies to the MiniCPM offline-DPO recipe referenced in the table above, not just to unmigrated scripts.
- Unlabelled diffusion rollout tensors are rejected (#557): custom rollout adapters/rewards must move to the named media artifact contract.
- Missing FlashAttention kernels fail at startup (#530): no silent fallback to SDPA anymore.
What this changes
Adds the VeRL-Omni v0.3.0 release post. It covers async and decoupled RL
execution, the V1 trainer becoming the default, and two end-to-end recipes:
MiniMax H3 audio-video post-training with DiffusionNFT, and MiniCPM-o 4.5 GSPO
with a sync vs. separate-async crossover study.
For a new post
Checklist
python3 scripts/check_posts.pypasseshugo --buildDrafts --buildFuturebuilds without errorspython3 scripts/check_links.pyreports no broken internal linksdraft: trueremoved, anddateis the intended publication dateNotes on the checklist (for your reference)