跳转至

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

建议阅读顺序

  1. 背景知识: 先阅读 tutorial/workers/background.md 了解 PPO/RLHF 基础概念
  2. 配置系统: tutorial/workers/config/ - 了解各模块的配置项
  3. Engine 基类: tutorial/workers/engine/base.md - 了解训练引擎抽象
  4. Actor/Critic: tutorial/workers/actor/ 和 tutorial/workers/critic/ - 了解核心训练逻辑
  5. Rollout: tutorial/workers/rollout/ - 了解推理引擎集成
  6. 顶层 Workers: tutorial/workers/fsdp_workers.md 或 engine_workers.md - 了解整体组装
  7. Reward Manager: tutorial/workers/reward_manager/ - 了解奖励计算
  8. Utils: tutorial/workers/utils/ 和 sharding_manager/ - 了解辅助工具

文件清单

本模块共包含 72 个 Python 源文件,每个文件都有对应的讲解文档。