Skip to content

v0.2.0

Latest

Choose a tag to compare

@SamitHuang SamitHuang released this 13 Aug 09:35
· 11 commits to main since this release
49dedb6

Highlights

VeRL-Omni v0.2.0 focused on three themes:

  • Faster diffusion RL: diffusion GRPO training is significantly faster with request-level diffusion rollout batching and FA3 rollout kernels.
  • Stable Qwen3-Omni training: Qwen3-Omni support is rebuilt on a refactored omni model base and the verl v1 trainer, with full multimodal inputs (text, image, and audio) for DPO & GSPO training support.
  • State-of-the-art model coverage: added FlowGRPO training for LTX-2.3, the SoTA text-to-audio-video model, plus Qwen-Image-Edit support for image editing, and more.

Architecture

Rollout Engine

  • Upgraded the rollout stack to vLLM-Omni v0.24 and pinned the companion dependency versions. (#257)
  • Migrated the Diffusion Trainer to the verl v1 architecture, covering both the sync trainer and a separate async rollout path. (#296,#315)
  • Added request-level diffusion batching with a LoRA weight-update fix, plus rank-local ZMQ route preservation for LoRA updates. (#286,#349)
  • Added FA3 kernel support for diffusion rollout. (#261)
  • Integrated Qwen-Image step execution into FlowGRPO and MixGRPO, and added NFT and DPO step execution support. (#287,#310)
  • Refactored the agent loop to a multi-tokenizer prompt path for SD3.5. (#288)
  • Fixed rollout correctness issues around diffusion async semantics, request-batched diffusion log-probs, and final prompt embedding length. (#339,#334,#357)

Training

  • Added teacher-anchored continuous distillation losses for diffusion OPD. (#300)
  • Added rollout-train log-prob consistency monitoring, logged by default, with a dedicated v1 consistency monitor. (#291,#319)
  • Added rollout-server and reward-model-server profiling, including a lightweight profiling recipe for FlowGRPO. (#252,#256)
  • Rollout and validation videos are now saved as mp4, and wandb validation video media persists correctly. (#311,#330)
  • Supported BAGEL non-LoRA training with PickScore reward. (#218)
  • Mitigated CPU memory leaks in data serialization over Ray. (#259)

Reward

  • Added DiNa-LRM reward support for SD3.5 FlowGRPO. (#289)
  • Added batched PickScore inference for reward scoring. (#346)
  • Added CLAP and ImageBind rewards as part of the LTX-2.3 text-to-audio-video recipe. (#341)
  • Dropped duplicate reward score metrics in single- and multi-reward training. (#242,#246)

Model & Algorithm Supports

  • Reworked Qwen3-Omni on the verl v1 sync trainer, refactored the omni model base, and added FSDP2 training with text+image inputs. (#253,#258,#312)
  • Added the Omni DPO stack: an offline MLLM preference dataset pipeline plus Omni DPO config and OmniDPOLoss. (#268,#270)
  • Added Qwen-Image-Edit FlowGRPO support and a general image-editing interface. (#238,#260)
  • Added LTX-2.3 text-to-audio-video FlowGRPO training with CLAP / ImageBind rewards. (#341)
  • Added repo-native BAGEL atomic SFT primitives. (#333)
  • Added generic visual-reflection contracts and source adapters. (#313)

Hardware

  • Added Ascend NPU Dockerfiles and an install guide; NPU Docker builds now read vLLM backend refs from pins. (#225,#267)
  • Extended Qwen3-Omni Thinker to multimodal inputs (image, text, audio -> text) on NPU, and added the MMK12 image2text GSPO recipe on NPU. (#284,#231)

Documentation / Tooling

  • Added the L3 Qwen-Image FlowGRPO nightly regression workflow with reviewed baselines. (#303,#344)
  • Split GPU smoke CI into label-driven test groups and added L1 CPU coverage reporting. (#233,#263)
  • Added contributor-facing agent rules and skills under .agents/. (#323)
  • Refreshed docs for config explanation, examples, Qwen-Image-Edit / I2I integration, reward-server profiling, and stale setup guidance. (#324,#316,#273,#281,#318)
  • Deprecated the old omni scripts. (#359)

Breaking Changes

  • The Diffusion Trainer and Qwen3-Omni stacks now run on the verl v1 trainer architecture. Custom trainer / rollout code built against the pre-v1 interfaces should migrate before upgrading. (#258,#296,#315)
  • The rollout stack is pinned to vLLM-Omni v0.24. Refresh dependencies using the current install guide so the aligned vLLM / vLLM-Omni / verl versions are installed together. (#257)
  • The old omni scripts are deprecated and will be removed in a future release. (#359)

What's Changed

  • [doc] Update Wechat group QR code by @wtomin in #236
  • [trainer] feat: support BAGEL non-lora training with pickscore reward by @zhtmike in #218
  • [ci] fix: drop all ci labels on PR push/reopen by @wtomin in #240
  • [misc] fix: resolve verl-omni and vllm-omni accelerate dependency conflict by @SamitHuang in #241
  • [recipe, diffusion] fix: let Ray set Ascend visible devices in Qwen-Image NPU script by @Sky-Trigger in #227
  • [docker, doc] feat: add Ascend NPU Dockerfiles and install guide by @Sky-Trigger in #225
  • [reward] fix: drop duplicate critic/score metric for single-reward training by @cr-gao in #242
  • [reward] fix: drop duplicate reward//score metric for multi-reward training by @cr-gao in #246
  • [doc] Update WeChat Group QR Code by @wtomin in #255
  • [trainer, doc] feat: profile rollout servers + lightweight profiling recipe for FlowGRPO by @cr-gao in #252
  • [vllm_omni, ci, doc] feat: upgrade to v0.24 and pin vllm-omni to fe478a95 by @SamitHuang in #257
  • [omni, tests] feat: add general image editing interface by @NancyFyong in #238
  • [env] fix: mitigate CPU memory leaks in data serialization over Ray by @Sky-Trigger in #259
  • [1/N][omni] feat: Omni model base refactor by @zhtmike in #253
  • [omni, rollout, cfg, tests] feat: add Qwen-Image-Edit FlowGRPO support by @NancyFyong in #260
  • [docker] read NPU vLLM backend refs from pins by @Sky-Trigger in #267
  • [chore] fix: update code owner by @SamitHuang in #272
  • [doc] feat: add Qwen-Image-Edit and I2I integration guides by @NancyFyong in #273
  • [doc] Update WeChat Group QR Code by @wtomin in #277
  • [1/N][ci, tests, doc] test: add L1 CPU coverage reporting by @wtomin in #263
  • [trainer, reward, cfg, doc] feat: profile reward-model rollout servers by @cr-gao in #256
  • [omni] fix: drop stale vllm-omni 0.22 step-count mapping in BAGEL adapter by @cr-gao in #279
  • [diffusion, rollout, cfg] feat: support kernels FA3 for diffusion rollout by @SamitHuang in #261
  • [doc, cfg] chore: document reward-server profiling in reward docs by @cr-gao in #281
  • [2/N][ci, tests] refactor: split GPU smoke CI into label-driven test groups by @wtomin in #233
  • [trainer, doc, tests] feat: log rollout-train log-prob consistency metrics by default by @cr-gao in #291
  • [doc] fix: drop incorrect threshold caveat from rollout correction doc by @cr-gao in #292
  • [rollout, diffusion] refactor: integrate Qwen-Image step execution into FlowGRPO and MixGRPO by @Sky-Trigger in #287
  • [reward, rollout, diffusion] feat: add DiNa-LRM support for SD3.5 FlowGRPO by @GongyeLiu in #289
  • [doc] update slack invite link by @wtomin in #298
  • [doc] updates wechat group qr code by @wtomin in #301
  • [rollout, vllm_omni] feat: request-level diffusion batching with LoRA fix by @SamitHuang in #286
  • [doc] chore: update readme by @SamitHuang in #307
  • [doc] chore: fix link by @SamitHuang in #308
  • [1/N][omni] feat: Owen-3 Omni refactor & support verl v1 Sync trainer by @zhtmike in #258
  • [recipe, doc, reward] feat: add MMK12 image2text recipe for Qwen3-Omni Thinker GSPO based on npu by @wsc16 in #231
  • [1/N][data, omni, tests] feat: add Omni-Preference offline MLLM DPO dataset pipeline by @wtomin in #268
  • [1/N][trainer,rollout] feat: Support verl v1 for Diffusion Trainer by @knlnguyen1802 in #296
  • [rollout, diffusion] feat: support NFT and DPO step execution by @Sky-Trigger in #310
  • [1/N][omni] feat: Qwen3-Omni Thinker + FSDP2 supports Text+Image Inputs Training by @zhtmike in #312
  • [2/N][cfg, omni, tests] feat: add Omni DPO config and OmniDPOLoss by @wtomin in #270
  • [diffusion, cfg, tests] feat: save rollout and validation videos as mp4 by @NancyFyong in #311
  • [trainer, algo, cfg] feat: add teacher-anchored continuous distillation losses for diffusion OPD by @cr-gao in #300
  • [doc, docker] fix: correct stale setup and training guidance by @WenZheWang in #318
  • [doc] chore: Update documentation with examples by @chenyingshu in #316
  • [doc] update wechat group qr code by @wtomin in #326
  • [doc] feat: add Config Explanation section by @SamitHuang in #324
  • [doc, ci, tests] feat: add agent rules and skills under .agents/; fix two no-op sanity hooks by @NancyFyong in #323
  • [doc] fix: quote SKILL.md description so GitHub renders front matter by @NancyFyong in #328
  • [doc] chore: update gspo readme by @zhtmike in #317
  • [trainer, tests, doc] feat: monitor v1 rollout-train consistency by @WenZheWang in #319
  • [rollout,tests] fix: preserve request-batched diffusion logprobs by @wtomin in #334
  • [doc] fix: make commit-and-pr skill example tool-agnostic by @zhtmike in #338
  • [trainer, ci] fix: isolate Ray rendezvous ports for diffusion smoke tests by @wtomin in #335
  • [data,tests] feat: add generic visual-reflection contracts and source adapters by @BorisYang326 in #313
  • [ci, tests, doc] test: add Qwen-Image FlowGRPO nightly regression by @wtomin in #303
  • [rollout] refactor: multi-tokenizer prompt path in agent loop for SD3.5 by @AndyZhou952 in #288
  • [omni] feat: qwen3omni thinker supports multimodal inputs (image,text,audio->text) on npu by @ZihaoW123 in #284
  • [2/N][trainer,rollout] feat: Support verl v1 for Diffusion Trainer - Seperate Async by @knlnguyen1802 in #315
  • [ci] fix: move L3 nightly baseline download to setup job by @wtomin in #344
  • [rollout, reward, tests] fix: preserve diffusion async semantics by @WenZheWang in #339
  • [trainer, tests] fix: persist wandb validation video media by @NancyFyong in #330
  • [reward, perf, tests] feat: batch PickScore inference by @WenZheWang in #346
  • [rollout] fix: preserve rank-local ZMQ routes for LoRA weight updates by @Sky-Trigger in #349
  • [cfg] fix: fix generated omni yaml by @zhtmike in #350
  • [model,tests] feat: add repo-native BAGEL atomic SFT primitives by @BorisYang326 in #333
  • [misc] fix: Fix links in README by @chenyingshu in #353
  • [rollout, diffusion, doc, reward] feat: Ltx2.3 t2av flowgrpo + clap/imagebind reward by @ZihaoW123 in #341
  • [rollout, diffusion] fix: preserve final prompt embedding length by @Wx727 in #357
  • [misc] chore: add depreciation message for old omni scripts and fix screte scan ci error by @zhtmike in #359
  • [misc] chore: bump version to 0.2.0rc1 by @SamitHuang in #361
  • [doc] QR code update by @wtomin in #362
  • [recipe, doc] feat: add Qwen3-Omni MMK12 NPU recipe by @Sky-Trigger in #364
  • [3/N][omni, data, trainer, tests] feat: wire offline MLLM DPO inputs and OmniDirectPreferenceRayTrainer by @wtomin in #271
  • [ci, tests] fix: default L3 nightly to 1 GPU and relax decoded-image dump thresholds by @wtomin in #370
  • [diffusion] feat: Add GPU support for wan22 by @ZihaoW123 in #264
  • [doc] chore: update readme by @SamitHuang in #371
  • [rollout] minor: Fix potential out of memory for Qwen Image Flowgrpo on H800 by @knlnguyen1802 in #369
  • [worker, trainer, cfg, tests, doc] feat: teacher runtime MVP for diffusion OPD (#293) by @cr-gao in #325
  • [trainer,rollout] bugfix: Fix convergence issue of QwenImage by @knlnguyen1802 in #378
  • [trainer] feat: add Qwen3-Omni multimodal DPO training by @wtomin in #269
  • [docs] bugfix: Fix chat template for SD3.5 v1 by @knlnguyen1802 in #384

New Contributors

Full Changelog: v0.1.0...v0.2.0