恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
VeRL-Omni开发者指南:如何集成新扩散模型、新策略梯度算法与新Omni模型
首页
资讯中心
/
VeRL-Omni开发者指南:如何集成新扩散模型、新策略梯度算法与新Omni模型
VeRL-Omni开发者指南:如何集成新扩散模型、新策略梯度算法与新Omni模型
发布时间:2026/10/13 22:52:32
【免费下载链接】verl-omniMultimodal RL training framework for diffusion omni models项目地址https://gitcode.com/gh_mirrors/ve/verl-omni点击查看免费下载VeRL-Omni 是一个专注于多模态生成模型的强化学习训练框架核心能力是为扩散模型Diffusion和全模态模型Omni提供稳定、快速的 RL 后训练。如果你想在社区贡献一个新模型、一套新策略梯度算法或一个 Omni 多模态模型本文会用通俗的语言带你走通三条集成路径——从目录结构、注册机制到冒烟测试帮你在动手写代码前建立完整的 mental model避免踩坑。一、先看懂架构三层设计决定了集成方式VeRL-Omni 的代码组织遵循清晰的三层结构理解它才能知道新代码该放在哪层级负责什么对应组件算法层选择 RL 算法FlowGRPO、Omni-PPO、DPO 等verl_omni/trainer/训练系统层Actor 权重更新、数据流转verl_omni/workers/engine/FSDP2 / VeOmni / Megatron 后端生成与奖励层轨迹采样Rollout 多模态打分Rewardverl_omni/pipelines/、verl_omni/reward_loop/关键认知模型与算法是正交的两个维度。一个算法可以配任意多个模型一个模型也可以被多种算法训练。这也是为什么框架用字符串注册表做分发——你只需声明(架构名, 算法名)二元组框架会自动找到对应实现。 想深入理解各层职责可参考 README.md 中的 Model and Algorithm Support 支持矩阵。二、集成新扩散模型的完整步骤完整文档见 integrating_a_diffusion_model.md。以 Qwen-Image 的 FlowGRPO 集成为范例核心流程只有三步2.1 前置条件上游必须先支持diffusers提供 transformer 与参考推理 pipeline训练侧依赖vllm-omni提供 rollout 侧的NamePipeline采样侧依赖。两者缺一不可缺少时请先向上游提 PR。2.2 三文件 两处注册新建一个包结构固定verl_omni/pipelines/你的模型_flow_grpo/ ├── __init__.py # 导出两个适配器 ├── diffusers_training_adapter.py # 训练侧DiffusionModelBase 子类 └── vllm_omni_rollout_adapter.py # 采样侧VllmOmniPipelineBase 子类然后在 verl_omni/pipelines/init.py 中加一行 star-import让注册表在导入时认识你的模型。2.3 两个适配器必须对齐的契约架构字符串必须与模型目录model_index.json中的_class_name完全一致如QwenImagePipeline调度器默认复用 FlowMatchSDEDiscreteScheduler保证采样与训练侧 log-prob 可比较字段命名prompt_embeds、prompt_embeds_mask等字段名由 diffusion_agent_loop.py 原样读取不能改名。2.4 交付示例脚本 冒烟测试在examples/flowgrpo_trainer/下放一个可运行启动脚本参考 run_qwen_image_ocr_lora.sh在tests/special_e2e/增加冒烟测试并注册进 run_gpu_smoke_diffusion_e2e.sh。 若你的模型不能被 diffusers 加载请改走非 diffusers 路径见 integrating_a_non_diffusers_model.md。三、集成新策略梯度算法四件套完整文档见 integrating_a_new_policy_gradient_algorithm_for_diffusion_model.md。以 FlowGRPO 为参考实现新算法需要补齐四个注册点SDE 步长公式—— 通常是给 flow_match_sde.py 增加一个sde_type分支除非族系不同才写全新 scheduler优势估计器—— 在 diffusion_algos.py 用register_diffusion_adv_est(...)注册损失函数—— 同文件用register_diffusion_loss(...)注册并加入DiffusionLossConfig的合法名单每对 (架构, 算法) 一个适配器—— 复用第二节的两个适配器装饰器里的algorithm换成新算法名即可。✨亮点设计框架通过 OmegaConf 模板把四个注册点全部绑到actor_rollout_ref.model.algorithm这一个 CLI 标志上。也就是说启动时只要传一个算法名训练适配器、采样适配器、优势估计器、损失函数会被一次性联动选中——这是 VeRL-Omni 配置系统最优雅的地方。如果新算法复用了现有估计器或损失例如 MixGRPO 直接复用 FlowGRPO有两种做法在启动脚本中显式回指旧名字或在diffusion_algos.py中给旧函数注册别名。四、集成新 Omni 模型阶段拆分是核心完整文档见 integrating_an_omni_model.md。以 Qwen3-Omni Thinker 为运行示例Omni 模型与扩散模型的最大区别是它产生离散 token且常由多阶段组成thinker → talker → code2wav。4.1 先想清楚三件事训练哪个阶段RL 后训练通常只训一个自回归阶段如 thinker其余组件在 FSDP 包裹前剥离以省显存编码器冻结视觉/音频编码器通常freeze_vision_towerTrue算法解耦GSPO、GRPO、RLOO 等算法通过标准 verl 配置字段选择适配器本身与算法无关。4.2 训练适配器OmniModelBase 子类需要实现的核心钩子参考 thinker_training_adapter.pyget_strip_modules声明要在 FSDP 包裹前删除的子模块configure_processor/configure_tokenizer加载多模态处理器与分词器configure_model重定向forward、设置_no_split_modules错名字会让整个模块被当成单叶参数分片失效。4.3 Rollout 适配器OmniRolloutPipelineBase 子类实现build_stage_configs、rollout_flags、get_pipeline_id三个方法参考 omni_rollout_adapter.py。部署配置 YAML 会从pipeline_name自动生成无需手写。4.4 注册与启动注册同样用装饰器架构键对应 HuggingFace config 的architectures[0]。启动时设置环境变量VERL_USE_EXTERNAL_MODULESverl_omni适配器会通过 Python 导入自动完成注册不需要external_lib参数。完整示例见 run_qwen3_omni_thinker_gspo_lora_v1.sh。五、常见陷阱这些坑前人替你踩过集成完成后务必通读 common_pitfalls.md。最容易中招的几个float32 精度损失scheduler 的step()若把prev_sample截断回 bfloat16会在第 1 步就出现ratio_mean 1.0的系统性偏差。规则scheduler 全程 fp32 返回 latentrollout 适配器在 forward 前才转回模型 dtype分词一致性数据预处理脚本的 chat template、special tokens 必须与上游_encode_prompt逐字节一致不一致会导致奖励静默崩塌——这是最隐蔽的 bug条件跳过的编码器FSDP2 下若某 micro-batch 跳过已分片的 tower各 rank 的集合通信顺序会错位最终表现为晚来的 hang 或垃圾梯度需通过get_fsdp_ignored_module_names声明。六、提交前检查清单与资源导航 打开 PR 前确认以下事项全部满足架构字符串与model_index.json::_class_name一致algorithm与目标算法匹配verl_omni/pipelines/init.py 已 star-import 新包新配置字段同时镜像到 diffusion_rollout.yaml 与 diffusion_model.yaml示例脚本 数据预处理 冒烟测试三者齐全本地pre-commit run通过见 CONTRIBUTING.md。延伸阅读速查表你的目标入口文档集成扩散模型FlowGRPOintegrating_a_diffusion_model.md集成非 diffusers 模型integrating_a_non_diffusers_model.md集成 image-to-image 模型integrating_an_i2i_diffusion_model.md新策略梯度算法integrating_a_new_policy_gradient_algorithm_for_diffusion_model.md新直接偏好算法DPO/NFT 类integrating_a_new_direct_preference_algorithm_for_diffusion_model.md新 Omni 模型integrating_an_omni_model.md测试与 CI 规范testing_guide.md、gpu_smoke_tests.md 记住一条心法代码即权威参考。文档描述契约verl_omni/pipelines/ 下的现有实现Qwen-Image、SD3、Qwen3-Omni才是最佳模板。动手前先读一遍参考实现能省下数天调试时间。赞分享【免费下载链接】verl-omniMultimodal RL training framework for diffusion omni models项目地址https://gitcode.com/gh_mirrors/ve/verl-omni点击查看免费下载相关推荐如何为扩散模型RL训练选择引擎后端VeRL-Omni的FSDP2与VeOmni完整对比指南如何为扩散模型RL训练选择引擎后端VeRL Omni的FSDP2与VeOmni完整对比指南 VeRL Omni 是面向扩散模型与全模态模型的强化学习RL训Claudian 安装指南把 Claude Code 嵌进 Obsidian 侧边栏的 3 条路径Claudian 安装指南把 Claude Code 嵌进 Obsidian 侧边栏的 3 条路径 你在 Obsidian 里写完一段内容想让 ClaudeAI 应用代码智能体交互助手人工智能AI AgentvLLM-Omni 中 TeaCache 加速扩散模型推理从 Hook 机制到新模型接入的完整指南vLLM Omni 中 TeaCache 加速扩散模型推理从 Hook 机制到新模型接入的完整指南 TeaCacheTimestep Embedding A人工智能大模型模型推理服务多模态语音音频媒体生成本地部署创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考