#verl
6 posts · All tags
用 verl 真实代码把 6 个主流 RLHF/RLVR 算法一次讲透:以“算法 = Advantage 估计 × Policy Loss”的统一框架,逐一拆解 PPO、GRPO、Dr.GRPO、GSPO、DAPO、OPD,以及 RLOO/ReMax/REINFORCE++/OPO/GPG 等 Critic-free 变体。
verl 最有工程含量的部分:生成为什么单独用 vLLM/SGLang,BaseRollout 的 resume/generate/release/update_weights 生命周期,以及训练后新权重如何经 ShardingManager 重分片同步回推理引擎、显存如何错峰。
把 WorkerGroup、DataProto 串起来读 verl 的“剧本”:RayPPOTrainer.fit() 主循环,以及 core_algos.py 里 GAE 与 GRPO 组内归一化、PPO 裁剪目标、KL 惩罚的具体实现。
verl 里贯穿全程的数据总线 DataProto:batch / non_tensor_batch / meta_info 三段式结构,以及 chunk / concat / union / select / repeat 五个核心操作如何支撑分布式分发与 RL 多阶段数据流。
深入 verl 的 single-controller 实现核心:WorkerGroup、@register 装饰器与 Dispatch 分发模式。看它如何把复杂的分布式 RL 数据流封装成 driver 侧几行同步代码。
verl 是什么、解决什么问题、核心概念有哪些、一次 RL 训练的数据流长什么样。本系列第 1 篇建立对 HybridFlow、single-controller/multi-controller、DataProto 与 WorkerGroup 的整体认知。