verl/workers 模块总览¶
模块定位¶
verl/workers/ 是 verl 框架的核心执行层,负责 RLHF(基于人类反馈的强化学习)训练中所有计算密集型任务的实现。它将 PPO 算法中的各个角色(Actor、Critic、Reward Model、Reference Model)拆分为独立的 Worker,通过分布式框架(Ray)进行调度和协同。
整体架构图¶
┌─────────────────────────────────────────┐
│ PPO Trainer (调度层) │
│ verl/trainer/ppo/ray_trainer.py │
└──────────────┬──────────────────────────┘
│ 调用
┌──────────────────┼──────────────────────┐
│ │ │
┌─────────▼──────┐ ┌────────▼────────┐ ┌─────────▼──────┐
│ fsdp_workers │ │ megatron_workers│ │ engine_workers │
│ (FSDP后端) │ │ (Megatron后端) │ │ (统一引擎后端) │
└───────┬────────┘ └────────┬────────┘ └────────┬───────┘
│ │ │
┌─────────────┼────────────────────┼─────────────────────┤
│ │ │ │
┌───▼───┐ ┌────▼────┐ ┌──────────▼──────┐ ┌─────────▼──────┐
│ Actor │ │ Critic │ │ Rollout │ │ Reward Manager │
│ 策略网络│ │ 价值网络│ │ 推理/生成引擎 │ │ 奖励计算 │
└───┬───┘ └────┬────┘ └──────┬──────────┘ └────────────────┘
│ │ │
│ ┌──────┘ ┌──────┼──────────────┐
│ │ │ │ │
┌───▼─────▼───┐ ┌──────▼──┐ ┌─▼────────┐ ┌───▼──────────┐
│ Engine │ │ vLLM │ │ SGLang │ │ TensorRT-LLM│
│ (训练引擎) │ │(推理引擎)│ │(推理引擎)│ │ (推理引擎) │
├─────────────┤ └─────────┘ └──────────┘ └──────────────┘
│ FSDP Engine │
│ Megatron Eng│
│ TorchTitan │
│ VeOmni Eng │
│ Mindspeed │
└─────────────┘
核心子模块说明¶
| 子模块 | 路径 | 说明 |
|---|---|---|
| 顶层 Workers | fsdp_workers.py, megatron_workers.py, engine_workers.py |
Worker 入口,组装 Actor/Critic/Rollout/Ref 各角色 |
| Actor | actor/ |
PPO 策略网络,计算 log_prob 和策略梯度更新 |
| Critic | critic/ |
PPO 价值网络,计算 value 和价值损失更新 |
| Config | config/ |
所有配置类定义(Actor/Critic/Rollout/Engine/Reward等) |
| Rollout | rollout/ |
推理引擎适配层,支持 vLLM/SGLang/TensorRT-LLM/HF |
| Engine | engine/ |
统一训练引擎抽象,支持 FSDP/Megatron/TorchTitan/VeOmni |
| Reward Manager | reward_manager/ |
奖励计算管理,支持 naive/batch/DAPO/PRIME 等策略 |
| Sharding Manager | sharding_manager/ |
数据分片管理,支持 FSDP+Ulysses 序列并行 |
| Utils | utils/ |
通用工具:损失函数、padding 处理等 |
PPO 训练流程概览¶
1. Rollout阶段: Actor生成 → 推理引擎(vLLM等)生成response
│
2. 推理阶段: Actor计算log_prob → Critic计算value → Ref计算ref_log_prob
│
3. 奖励计算: Reward Manager计算奖励 → 计算advantages和returns
│
4. 训练阶段: Actor用PPO loss更新策略 → Critic用value loss更新价值网络
│
5. 权重同步: 训练引擎权重 → 推理引擎权重同步
│
6. 循环: 回到步骤1
建议阅读顺序¶
- 背景知识: 先阅读
tutorial/workers/background.md了解 PPO/RLHF 基础概念 - 配置系统:
tutorial/workers/config/- 了解各模块的配置项 - Engine 基类:
tutorial/workers/engine/base.md- 了解训练引擎抽象 - Actor/Critic:
tutorial/workers/actor/和tutorial/workers/critic/- 了解核心训练逻辑 - Rollout:
tutorial/workers/rollout/- 了解推理引擎集成 - 顶层 Workers:
tutorial/workers/fsdp_workers.md或engine_workers.md- 了解整体组装 - Reward Manager:
tutorial/workers/reward_manager/- 了解奖励计算 - Utils:
tutorial/workers/utils/和sharding_manager/- 了解辅助工具
文件清单¶
本模块共包含 72 个 Python 源文件,每个文件都有对应的讲解文档。