How verl-project/verl-omni works
VeRL-Omni is a reinforcement-learning post-training framework for diffusion, unified multimodal, and omni-modality generative models. Its principal workflow prepares training data, generates model rollouts, scores outputs with rewards, and updates actors through distributed trainers; diffusion also supports teacher scoring and rollout correction. Model-specific pipeline adapters connect common training and rollout machinery to supported models and algorithms. The README documents asynchronous rewards and selectable training backends. Sampled excerpts are partial, so the graph shows documented orchestration and only source-supported internal wiring, not every model-specific route.
Main entry points: trainer_sync.py Diffusion trainer · ray_omni_trainer.py Omni trainer · engine_workers.py Actor workers · composite_agent_loop.py Agent loops
Components 21
Training orchestration
- Diffusion entry
verl_omni/trainer/main_diffusion_v1.py - Omni entry
verl_omni/trainer/main_omni.py - Diffusion trainer
verl_omni/trainer/diffusion/v1/trainer_sync.py - Async diffusion
verl_omni/trainer/diffusion/v1/trainer_separate_async.py - Omni trainer
verl_omni/trainer/omni/ray_omni_trainer.py - RL algorithms
verl_omni/trainer/diffusion/diffusion_algos.py
Rollout generation
- Agent loops
verl_omni/agent_loop/composite_agent_loop.py - Rollout worker
verl_omni/workers/rollout/base.py
Rewards and scoring
- Reward orchestration
verl_omni/reward_loop/reward_loop.py - Reward managers
verl_omni/reward_loop/reward_manager/multi.py - Reward scorers
verl_omni/utils/reward_score/unified_reward.py - Teacher scoring
verl_omni/trainer/diffusion/teacher_manager.py
Data and model adapters
- RL datasets
verl_omni/utils/dataset/rl_dataset.py - Offline DPO data
verl_omni/utils/dataset/offline_mllm_dpo_dataset.py - Model adapters
verl_omni/pipelines
Distributed runtime
- Actor workers
verl_omni/workers/engine_workers.py - Training engines
verl_omni/workers/engine - Weight synchronization
verl_omni/workers/checkpoint_engine.py
Other components
- Training user
- vLLM-Omni
- Scorer service
Connections 25
- Training user → Diffusion entry: starts training
- Training user → Omni entry: starts training
- Diffusion entry → Diffusion trainer: launches
- Diffusion entry → Async diffusion: launches
- Omni entry → Omni trainer: launches
- RL datasets → Diffusion trainer: provides batches
- Offline DPO data → Diffusion trainer: provides pairs
- Diffusion trainer → Agent loops: requests rollouts
- Async diffusion → Agent loops: requests rollouts
- Omni trainer → Agent loops: requests rollouts
- Agent loops → Rollout worker: dispatches requests
- Rollout worker → Model adapters: routes generation
- Model adapters → vLLM-Omni: generates outputs
- Diffusion trainer → Reward orchestration: submits rollouts
- Omni trainer → Reward orchestration: submits rollouts
- Reward orchestration → Reward managers: dispatches scoring
- Reward managers → Reward scorers: invokes scorers
- Reward scorers → Scorer service: requests scores
- Diffusion trainer → Teacher scoring: requests teacher scores
- Diffusion trainer → RL algorithms: computes updates
- Omni trainer → Actor workers: updates actor
- Diffusion trainer → Actor workers: updates actor
- Actor workers → Training engines: runs training
- Actor workers → Weight synchronization: sends weights
- Weight synchronization → Rollout worker: updates rollout weights