跳转至

verl 代码阅读指南

本文档帮助你规划 verl 源代码的阅读路径。如果你还没有读过背景知识,请先阅读 00_background_knowledge.md。


推荐阅读顺序

verl 的代码量较大(约 400 个 Python 文件),不建议从头到尾线性阅读。以下是按优先级排列的阅读路线图,分为 必读、重要 和 选读 三个层次。


第一阶段:核心基础(必读)

理解 verl 的数据流和编程模型,这是后续一切的基础。

顺序 文档 内容
1 core/01_init.md 包入口,了解 verl 导出了什么
2 core/03_base_config.md 配置管理基础
3 core/02_protocol.md 最核心 —— DataProto 数据协议

读完这三个文件,你就能回答:"verl 中数据是怎么表示和传递的?"


第二阶段:单控制器编程模型(必读)

理解 verl 的分布式编程范式——如何用简单的 Python 代码控制多 GPU 计算。

顺序 文档 内容
4 single_controller/index.md 模块总览
5 single_controller/base/decorator.md @register 装饰器
6 single_controller/base/worker.md Worker 基类
7 single_controller/base/worker_group.md WorkerGroup 管理

读完这部分,你就能回答:"verl 的分布式任务是怎么调度和执行的?"


第三阶段:PPO 训练流程(必读)

理解完整的 RLHF 训练循环。

顺序 文档 内容
8 trainer/index.md 训练器模块总览
9 trainer/main_ppo.py.md PPO 训练入口
10 trainer/ppo/ray_trainer.py.md Ray PPO Trainer 核心逻辑
11 trainer/ppo/core_algos.py.md PPO/GRPO 等算法实现

读完这部分,你就能回答:"一轮 PPO 训练是怎么跑起来的?"


第四阶段:Worker 实现(重要)

了解各角色(Actor、Critic、Rollout)的具体实现。

顺序 文档 内容
12 workers/index.md Workers 模块总览和架构图
13 workers/fsdp_workers.md FSDP 后端 Worker 实现
14 workers/actor/ Actor Worker 详细实现
15 workers/critic/ Critic Worker 详细实现
16 workers/rollout/ Rollout 推理引擎集成

第五阶段:模型和工具(重要)

顺序 文档 内容
17 models/index.md 模型适配总览
18 models/transformers/llama.md LLaMA 模型序列并行适配
19 checkpoint_engine/index.md 权重同步引擎
20 utils/index.md 工具函数总览

第六阶段:高级特性(选读)

根据你的兴趣选择性阅读。

文档 内容
experimental/agent_loop/ Agent 循环(多轮对话、工具调用)
tools/ 工具系统(搜索、代码执行等)
model_merger/ 分布式 checkpoint 合并工具
experimental/vla/ 视觉-语言-动作模型(机器人控制)
experimental/fully_async_policy/ 全异步训练

阅读技巧

  1. 先看 README:每个模块目录下都有 index.md,先读它了解模块全貌
  2. 关注数据流:理解数据从哪里来、经过什么处理、到哪里去
  3. 跟着 DataProto:它是 verl 的数据载体,跟着它的 chunk、concat、union 就能理解数据流转
  4. 看注册表模式:verl 大量使用注册表模式(@register),理解一个就理解了所有
  5. 回头查背景知识:遇到不懂的概念,回到 背景知识文档 查阅

各模块 README 索引

模块 README
核心 core/index.md
单控制器 single_controller/index.md
训练器 trainer/index.md
Workers workers/index.md
模型 models/index.md
工具函数 utils/index.md
Checkpoint 引擎 checkpoint_engine/index.md
模型合并 model_merger/index.md
工具系统 tools/index.md
交互 interactions/index.md
实验性功能 experimental/index.md
第三方 third_party/index.md