简介:本教程面向从事大模型训练的算法工程师与基础设施工程师,系统讲解强化学习基础设施(RL Infra)的学习路线。教程以 SFT 三大默认假设在 Agentic RL 中失效为切入点,沿数据、计算、权重三条主线,梳理异步流水线、跨框优势计算协议、双权重真相同步等核心机制,并提供动手实验、自测清单与常见问题排查思路,帮助读者快速建立可落地的 RL Infra 认知框架。
本教程的目标,是帮助你建立一套系统的强化学习基础设施认知框架与学习路径。完成学习后,你应当能够:
一个必须先建立的总体判断是:如果只把 Agentic RL 当成“带奖励信号的多轮 SFT”,大概率会在三个地方同时翻车。SFT 时代默认成立的三个假设,在 Agentic RL 里全部失效,而每一次失效恰好对应一次基础设施复杂度的跃迁。SFT 的难度在“框内”——同一张计算图里的极致压榨,崩了也是一个整齐的 NaN;Agentic RL 的难度在“框间”——三个框之间隔着长尾、异步和状态错位,日常不是优化,是抢救。本教程的全部内容,就围绕这三条“失效—跃迁”主线展开。
学习之前,建议具备以下基础:
环境方面,你只需要一台可以跑小模型实验的机器或通用计算资源、任意主流开源训练与推理方案的通用能力、以及基本的日志与指标观测手段。实践环境可以自建,也可以使用任意主流云服务商提供的通用产品类别(例如百度智能云的通用 GPU 算力、容器平台与对象存储即可满足实验需求),无需绑定任何特定厂商的专有能力。
| SFT 默认假设 | 在 Agentic RL 中如何失效 | 对应的基础设施跃迁 | 学习主线 |
|---|---|---|---|
| 数据是静态的 | 轨迹由策略自己探索产生,分布随训练漂移,还要等沙箱/工具的长尾响应 | 同步孤岛 → 异步流水线 | 数据流 |
| 损失当场可算 | 只有轨迹级奖励,要折算成 Token 级优势,归一化分母横跨 PP/DP/CP | 框内自算 → 三框计算协议 | 计算协议 |
| 权重一份真相 | 训练侧参数 buffer 与推理引擎显存两份真相,中间隔着昂贵的跨边界迁移 | 一份真相 → 双真相同步 | 权重管理 |
下面按“理解差异 → 动手实验 → 观测验证 → 问题排查”的闭环逐条展开。
学习 RL Infra 的第一个动作,不是直接扑向 RL 系统,而是把 SFT 的心智模型显式写下来。原因很简单:RL Infra 的难点不是凭空多出来的,而是“从 SFT 地板上塌下去的部分”;不知道地板在哪,就看不懂塌在哪里。建议用一页纸回答四个问题:
这四个答案就是后续三条主线的对照基线。
SFT 从磁盘读取固定分布的数据;RL 的训练数据(轨迹)则是策略在环境里“现场生产”的,带来两个后果:
若沿用同步思维——“等这批轨迹全部产出再训练,训练完再产出下一批”——系统会退化为三个互相等待的同步孤岛,算力大量空转。
# 同步版(故意保留用于对照)for step in range(N):trajs = rollout(env, policy) # 等全部环境返回,长尾拖全局train_step(trajs) # 训练期间 rollout 闲置# 异步版(学习目标)# rollout 进程:持续与环境交互,轨迹附带 policy_version 写入队列# trainer 进程:只取版本差值在阈值内的数据# 观测指标:队列水位、各框空闲占比、数据新鲜度分布
验证方式:对比两版墙钟时间与各阶段空闲占比。若异步版仍有某框长时间空转,优先排查队列水位与新鲜度阈值。
# 轨迹级奖励 → Token 级优势(业界常见的组内相对估计思路,示意)for group in batch: # 同一提示下的一组轨迹r = [reward(t) for t in group]base = mean(r); scale = std(r) + epsadv = [(x - base) / scale for x in r] # 组内相对优势for t, a in zip(group, adv):token_adv[t] = a # 轨迹级标量摊派到每个 Tokenmask[t] = response_mask(t) # 只在响应段计损# 注意:mean/std 若跨 PP/DP/CP 统计,需明确全局协议,否则各副本优势尺度不一致
验证方式:给两个不同数据并行副本喂同一提示组,核对优势逐元素一致;再故意打乱归一化粒度,观察训练曲线与熵的变化,体会“分母协议”为何必须全局约定。
SFT 中参数原地回填、立即生效;Agentic RL 存在两份权重真相:训练侧参数 buffer(优化器视角)与推理引擎显存中的权重(采样视角)。二者之间隔着一次昂贵的跨物理边界迁移:格式与精度转换、显存布局重组、跨卡/跨机传输。同步过频,训练时间被迁移吃掉;同步过疏,推理端持续用旧权重采样,数据陈旧度上升。“频率—陈旧度”权衡是核心设计题。
while training:optimizer.step() # 真相 A:训练侧 buffer 更新if step % sync_interval == 0:w = convert(train_params) # 精度/布局/切分转换push_to_inference(w) # 真相 B:迁移进推理引擎publish_version(step) # 发布版本号,供新鲜度校验
学习要点:sync_interval 的权衡逻辑;给每条轨迹打 policy_version,统计“轨迹版本与当前训练版本的差值分布”;训练指标劣化但奖励曲线正常时,先查陈旧度分布是否异常拉宽。验证方式:小规模实验中测量单次同步耗时占比,并核对版本号单调递增、无跳变。
五题答对四题,说明框架已建立;否则回到对应主线补做实验。
本教程以“SFT 三假设失效”为纲,带你完成了 RL Infra 的三条学习主线:数据上从静态数据集走向异步流水线,计算上从框内自算走向跨框优势协议且正视奖励框的算力支柱地位,权重上从一份真相走向双真相同步。掌握这三条主线后,下一步可深入研究各框的极致性能优化、一致性保障与规模化运维,并在实验与生产中持续迭代自己的排查手册。