首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >从 verl 源码读懂 AI 后训练:一套写给 AI Infra 读者的训推系统地图

从 verl 源码读懂 AI 后训练:一套写给 AI Infra 读者的训推系统地图

作者头像
anzhsoft
发布2026-07-13 11:12:30
发布2026-07-13 11:12:30
440
举报

大模型后训练,越来越不像“跑一个训练脚本”。

当我们进入 RLHF、GRPO、Agent RL、多轮工具调用这些场景时,系统里同时出现了训练目标、数据流、controller、worker、reward、rollout、推理后端、KV cache、权重同步和环境反馈。真正的难点不只是算法公式,而是这些机制如何在工程系统里接起来。

我正在写一个系列:训推工坊:以 verl 代码库走读 AI Infra

这个系列不是 verl API 手册,也不是论文综述,而是从源码出发,帮助读者建立现代 train/serve 系统的全局心智模型。

先看整条主线。读这张图时注意:这个系列不是按功能模块平铺,而是沿着一次后训练系统真正流动的路径展开。

训推系统源码阅读地图

目前已经写到第 16 篇。主线逐渐清晰:

代码语言:javascript
复制
training objective
-> dataflow
-> controller
-> workers/resources
-> rollout/serving engine
-> weight sync
-> production train/serve system

已经写到哪里

第一组先建立全局地图:为什么 AI 后训练不是一个训练脚本,HybridFlow 如何把 RLHF 看成高层 Dataflow,Single Controller 如何调度一群 GPU worker,ResourcePool 和 WorkerGroup 如何把 GPU 资源角色化,DataProto 又为什么是 RL 流水线里的“集装箱”。

第二组进入算法如何落到工程:PPO 到底训练什么,GRPO 为什么能省掉 critic,DAPO/Dr. GRPO 如何处理长度偏置,KL、clip、entropy 如何给模型更新装限速器,reward 为什么不是一个简单分数函数,以及数据进入 RL 前要经历哪些字段、模板和长度合同。

第三组开始进入推理如何嵌入训练:rollout 为什么是训练系统里的推理服务,vLLM、SGLang、TRT-LLM 如何在 verl 中被抽象,KV cache 与 sleep/resume 如何决定训推共卡时的显存复用,Agent Loop 又为什么必须坚持 token-in/token-out,而不是只保存最终回答。

下面这张图把前 16 篇压成三个阶段。看它时重点看每组的“读完后获得什么”:不是知道更多名词,而是能沿源码解释系统边界。

前 16 篇阅读进度地图

读到第 16 篇,读者已经可以从 RayPPOTrainer.fit()一路追到 DataProto、WorkerGroup、rollout server、backend adapter 和 AgentLoopOutput。也就是说,一个样本如何从 dataset row 变成 rollout request,又如何以 token 轨迹回到 PPO/GRPO 训练数据结构里,已经有了一条源码级路径。

这个系列适合谁

这个系列适合三类读者。

第一类是想从源码理解 RLHF/GRPO/Agent RL 工程实现的算法工程师。很多算法概念落到代码里后,会变成字段、mask、loss、worker 和配置分支。只看公式很难判断训练语义到底在哪里改变。

第二类是正在做训练平台、推理服务、调度、GPU 资源管理的 AI Infra 工程师。后训练系统的瓶颈常常出现在边界处:DataProto 过 controller、rollout 长尾、KV cache 显存复用、weight sync、reward 可靠性、tokenization 一致性。

第三类是希望理解后训练系统成本、瓶颈和产品化趋势的技术管理者与行业观察者。真正影响系统成本的,不只是 batch size 或 GPU 数量,而是 rollout n、response length、推理后端、权重同步、工具调用、长尾等待和可观测性。

下面这张图把读者收益和源码路径放在一起。这个系列希望读者最终能回答:一个技术判断,到底由哪条源码路径支撑?它又把瓶颈推向哪里?

读者收益与源码路径

为什么要从 verl 读

verl 的价值不在于“它支持哪些算法名”,而在于它把 LLM 后训练拆成了一套可阅读的 AI Infra 流水线。

在这条流水线里,算法不是孤立公式,推理也不是部署之后才发生的事情。PPO/GRPO 的训练目标要靠 rollout 产生 response;rollout 又依赖 vLLM、SGLang、TRT-LLM 等推理后端;推理后端要和训练引擎共享 GPU、同步权重、管理 KV cache;Agent RL 还要把工具、环境、observation 和 reward 接回 token 轨迹。

所以这个系列反复追问四个问题:

  • 它在一轮 RL step 的哪个阶段出现?
  • 它消费 DataProto 里的哪些字段?
  • 它改变了哪个 worker、loss、mask、server 或资源状态?
  • 它把系统瓶颈推向了哪里?

这四个问题能把算法名、工程接口和性能瓶颈连起来。

接下来会继续写什么

目前第 16 篇已经写到 Agent Loop。后面会继续写:

  • Tool Calling 和 Sandbox:环境如何成为 reward 的一部分。
  • 长尾 rollout:为什么 agent RL 容易让 GPU 空转。
  • FSDP/FSDP2、Megatron/MCore:训练引擎如何支撑大模型切分。
  • Checkpoint Engine:训练权重如何同步给推理引擎。
  • profiling、Data movement、Fully Async Policy 和生产化瓶颈地图。

如果你也关心 AI Infra、后训练系统、训推一体和 Agent RL,欢迎跟读这个系列。

它不是为了把 verl 当成唯一答案,而是借 verl 这套源码,把现代 AI 后训练系统的结构、边界和瓶颈讲清楚。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 训推工坊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 已经写到哪里
  • 这个系列适合谁
  • 为什么要从 verl 读
  • 接下来会继续写什么
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档