verl 架构入门指导
verl 架构入门指导面向想快速理解 verl 在做什么、核心组件如何协作、如何跑通第一条 RL 训练链路的读者。依据HybridFlow 论文、verl 官方文档、verl-project/verl 当前主线设计。1. 一句话理解 verlverlVolcano Engine Reinforcement Learning是字节开源的大模型后训练 / RLHF 框架对应论文 HybridFlow。它解决的核心问题是大模型时代的 RL 既要像「写单机算法伪代码」一样灵活改训练流程又要能高效对接 FSDP / Megatron、vLLM / SGLang 等分布式训练与推理引擎。verl 的答案是控制流单进程Driver 计算流多进程Worker二者通过 Ray 与统一数据协议DataProto解耦。2. 为什么需要这套架构2.1 RL 是两层 Dataflow层级含义例子Control Flow控制流算法步骤怎么排PPO先 rollout → 算 advantage → 更新 actor/criticComputation Flow计算流神经网络怎么算模型 forward / backward / optimizervLLM 生成小模型时代可以把计算直接嵌进控制流单进程。LLM 时代训练与生成本身已是多进程程序于是出现两条路统一多 Controller控制流也改成多进程和计算流绑死 → 性能好但换后端/换算法都难。分离verl 选择控制流保持单进程计算流交给 Worker →算法好写、后端可插拔代价是 Driver↔Worker 有数据搬运。2.2 HybridFlow 的直觉图┌─────────────────────────────┐ │ Driver / RayPPOTrainer │ ← 单进程写 PPO/GRPO 主循环 │ (main_task / fit) │ └──────────────┬──────────────┘ │ DataProto register 分发/收集 ┌─────────┼─────────┬──────────────┐ ▼ ▼ ▼ ▼ ActorRollout Critic Reward/Ref ResourcePool(GPU) (训练生成) (价值) (打分/参考) │ ├── TrainingEngine (FSDP2 / Megatron / ...) └── RolloutEngine (vLLM / SGLang / HF)记住三句话即可入门算法写在 Driver 上看起来像单机 for-loop。重活跑在 Worker 上每个 Worker 占 GPU。WorkerGroup 是代理一次调用 自动切分数据 → RPC → 汇总结果。3. 核心概念速查概念是什么入门只需知道Driver / main_taskRay remote 的控制器进程不要跑在 Ray head省内存里面构造 Trainer 并fit()RayPPOTrainerPPO及同类算法训练器负责数据加载、建 WorkerGroup、跑主循环Worker远程 GPU 上的计算单元暴露init_model、generate_sequences、update_actor等 RPCWorkerGroupWorker 列表的代理Driver 调用wg.generate_sequences(data)即可ResourcePoolGPU 资源组决定 Worker 放在哪些节点/卡上DataProto统一数据容器batch tensor meta是分发/收集的标准接口register(dispatch_mode…)把「切分-分发-收集」绑到 Worker 方法上例如Dispatch.DP_COMPUTE_PROTOActorRolloutRefWorker可组合的混合 Worker可只做 actor / rollout / ref或任意组合方便权重同步与 LoRARewardManager奖励组装器可规则奖励 模型奖励最终给出 token-level reward4. 仓库地图先认路verl/ trainer/ main_ppo.py # RL 入口main_task RewardManager ppo/ray_trainer.py # PPO 主循环 config/ # Hydra 配置模板 workers/ protocol.py # DataProto engine_workers.py # ActorRolloutRefWorker / TrainingWorker现行统一入口 engine/ # FSDP / Megatron / TorchTitan / VeOmni ... rollout/ # vLLM / SGLang / HF utils/ dataset/ # RLHFDataset 等 reward_score/ # gsm8k、math 等规则奖励 examples/ # 可直接改的启动脚本说明旧版fsdp_workers/megatron_workers已收敛到engine_workers EngineRegistry入门时直接看现行 API 即可。5. PPO 主循环用「像单机一样」的代码读懂架构Driver 上的逻辑近似如下与文档一致便于建立心智模型forpromptindataloader:outputactor_rollout_ref_wg.generate_sequences(prompt)old_log_probactor_rollout_ref_wg.compute_log_prob(output)ref_log_probactor_rollout_ref_wg.compute_ref_log_prob(output)valuescritic_wg.compute_values(output)rewardsreward_fn(output)# 也可先 rm_wg.compute_rm_scoreadvantagescompute_advantages(...)# 轻量计算可留在 Driveractor_rollout_ref_wg.update_actor(batch)critic_wg.update_critic(batch)读这段时请对照generate_sequences在 Rollout 引擎常为 vLLM上采样。compute_log_probActor 重算旧策略 logπ。compute_ref_log_prob参考策略用于 KL。compute_valuesCritic 估价值。reward_fn/ RM得到 token-level score。compute_advantagesGAE 等常在 Driver 上算。update_*真正的分布式训练步。这就是 HybridFlow 的「可编程性」换算法 改这个 for-loop 的步骤顺序与公式而不必重写 FSDP/vLLM 内部。6. 一次完整训练链路从配置到跑通推荐按这个顺序上手环境按官方 Installation 安装确认 Ray、训练后端、推理后端版本匹配。数据准备 parquetprompt 等字段用RLHFDataset做 chat template、padding、截断、tokenize。奖励在RewardManager/reward_score实现规则奖励或挂 Reward Model。配置从ppo_trainer.yaml/examples脚本起步先改data.train_files/train_batch_sizeactor_rollout_ref.model.pathtrainer.n_gpus_per_node/nnodesactor_rollout_ref.actor.strategy如fsdp2actor_rollout_ref.rollout后端vLLM / SGLang启动python -m verl.trainer.main_ppo或 examples 里的 bash先用小模型如 0.5B 小 batch 验证链路。观察关注timing/gen、timing/update_actor、reward / KL / response length 等指标。6.1 入门必懂的几个 batch 概念配置项含义data.train_batch_size全局 prompt 数轨迹数 ≈ batch ×rollout.nactor.ppo_mini_batch_sizePPO 更新时的全局 mini-batch*.ppo_micro_batch_size单次 forward/backward 上限防 OOM不改算法语义actor.clip_ratioPPO clip默认约 0.2algorithm.adv_estimatorgae/grpo/rloo等7. 角色与放置Placement入门常见 Worker 角色Actor Rollout常 colocated同卡便于 NCCL/本地快速同步权重。Reference可与 Actor 同进程尤其 LoRAref ≈ base。Critic价值网络PPO 需要GRPO 等可不需要。Reward Model可选常与规则奖励组合。入门实践建议FSDP常用max_colocate_count1多角色合并到同一进程减少 CUDA context。先 colocated 再拆分拆到不同 ResourcePool 能换并行度但配置更复杂。最后再 init rollout文档建议 rollout 后建便于 vLLM 更准地估 KV cache 内存。8. 和常见框架的关系心智对齐组件verl 里通常扮演Ray进程编排、RPC、资源池FSDP / FSDP2 / MegatronActor/Critic训练并行vLLM / SGLang**生成rollout**吞吐HuggingFace模型与 tokenizer 生态入口Hydra / OmegaConf配置组合与命令行覆盖verl 不是「又一个 PPO 实现」而是把 RL 控制流做成可组合编排层底下换训练/推理后端。9. 入门学习路径建议 1–2 周阶段目标材料Day 1–2建立 HybridFlow 心智模型本文 §1–5官方 HybridFlow Programming GuideDay 3–4跑通小模型 PPOQuickstart examplesDay 5–6读主循环与配置PPO Ray Trainer、PPODay 7换奖励 / 试 GRPOreward_score、GRPO入门验收标准能画一张 Driver / WorkerGroup / Engine 关系图能解释为什么 Actor 与 Rollout 常放一起能独立改数据、奖励、batch、模型路径并跑通能说明DataProtoregister省掉了哪三段样板代码10. 常见坑入门版main_task 打在 Ray head 上→ head 资源少易内存打爆。micro_batch 设太大→ OOM先降 micro再动全局 batch。训练后端与 vLLM 版本不匹配→ 按官方安装矩阵对齐。把算法逻辑写进 Worker→ 违背解耦算法步骤应留在 Driver。忽略 token-level reward 形状→ advantage / PPO loss 会对不齐。11. 小结verl 入门只需抓住一条主线单进程写 RL 算法 → WorkerGroup 代理分布式计算 → Engine 插拔训练与生成。搞清这条主线后再深入 3D-HybridEngine、异步 off-policy、自定义BaseEngine等请阅读同目录下的《verl 架构精通指导》。参考链接论文https://arxiv.org/abs/2409.19256文档https://verl.readthedocs.io/en/latest/代码https://github.com/verl-project/verlHybridFlow 编程指南https://verl.readthedocs.io/en/latest/hybrid_flow.html

相关新闻

Java 集合类全景介绍

Java 集合类全景介绍

Java 集合类全景介绍 面向前端开发者。如果你用 JS 的 Array、Set、Map、Object,这篇文章帮你一次性认清 Java 所有集合类。 目录 先看 JS:你已会的集合类型Java 集合框架全景图List:有序可重复Set:无序不重复Queue / Deque&…

2026/8/11 6:23:08 阅读更多 →
2026年普惠性补充医疗保险市场结构性演进:多层次保障体系下的增长逻辑与转型挑战

2026年普惠性补充医疗保险市场结构性演进:多层次保障体系下的增长逻辑与转型挑战

据恒州诚思调研统计,2025年全球普惠性补充医疗保险市场规模约94.13亿元,预计至2032年将接近143.9亿元,对应未来六年6.3%的年复合增长率(CAGR)。全球医疗保健支出约占全球GDP的10%且呈持续上升态势,人口老龄…

2026/8/11 6:22:08 阅读更多 →
2026年全球葡萄酒追溯系统市场增长动能分析:区块链技术重构防伪溯源新格局

2026年全球葡萄酒追溯系统市场增长动能分析:区块链技术重构防伪溯源新格局

据恒州诚思统计数据显示,2025年全球葡萄酒追溯系统市场规模已达约29.25亿元,预计至2032年将稳步攀升至38.53亿元,对应未来六年间4.0%的年复合增长率(CAGR)。这一增长轨迹表明,葡萄酒追溯系统正从可选配置向…

2026/8/11 6:22:08 阅读更多 →

最新新闻

风扇不转?别急着换电机!一文搞懂电容原理与万用表维修实战

风扇不转?别急着换电机!一文搞懂电容原理与万用表维修实战

大家好,我是专注于分享实用电子技术和维修经验的博主。在日常使用中,电风扇突然不转是个很常见的问题,很多人第一反应是电机烧了,准备直接换新。但其实,很多情况下问题出在一个小小的元件——电容上。加一颗电容&#…

2026/8/11 7:13:30 阅读更多 →
算法复杂度分析:从O(1)到O(n²),掌握程序性能评估的核心

算法复杂度分析:从O(1)到O(n²),掌握程序性能评估的核心

1. 项目概述:算法分析,从“能用”到“好用”的必经之路刚入行的朋友,或者正在啃《数据结构与算法》这门硬课的同学,是不是经常有这样的困惑:我写的代码明明能跑出正确结果,为什么一提交到在线评测系统&…

2026/8/11 7:13:30 阅读更多 →
合同文档解析从人力密集到机器智能:AI原生架构与传统方案的代际差距

合同文档解析从人力密集到机器智能:AI原生架构与传统方案的代际差距

合同文档的智能解析,正在成为企业合同管理数字化进程中一个无法回避的技术分水岭。 过去十年间,绝大多数企业处理合同文档的方式并没有发生本质变化:法务人员逐字审阅、业务人员手动录入关键条款、财务人员从合同中提取付款条件并录入ERP系统…

2026/8/11 7:13:30 阅读更多 →
Win+G录屏无声与音质差?系统级音频链路排查与FFmpeg音频提取全攻略

Win+G录屏无声与音质差?系统级音频链路排查与FFmpeg音频提取全攻略

1. 从“游戏栏”到全能录屏:WinG的隐藏实力如果你还在为找一个免费、无广告、不占地方的电脑录屏工具而发愁,那大概率是忽略了Windows 10系统里一个自带的“宝藏”功能。没错,我说的就是那个按一下Win G键就会跳出来的“游戏栏”。很多人第一…

2026/8/11 7:13:30 阅读更多 →
Rust异步运行时Tokio核心原理与性能优化实践

Rust异步运行时Tokio核心原理与性能优化实践

1. 理解Rust异步运行时的核心价值我第一次接触Tokio时,被它复杂的调度机制搞得晕头转向。直到在线上服务中遇到性能瓶颈,才真正理解异步运行时的价值所在。想象你经营着一家快餐店,同步I/O就像让唯一的服务员在等汉堡煎熟时完全发呆&#xff…

2026/8/11 7:13:30 阅读更多 →
JavaScript函数式编程三剑客:纯函数、柯里化与组合

JavaScript函数式编程三剑客:纯函数、柯里化与组合

1. 纯函数:编程世界的"数学公式"在函数式编程中,纯函数(Pure Function)就像数学中的函数一样,给定相同的输入永远会得到相同的输出,而且没有任何可观察的副作用。这个概念听起来简单,但在实际开发中却有着深…

2026/8/11 7:12:30 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →