Rollout 经济学:省下的重复计算,都变成训练吞吐
agentic RL 常 rollout-bound,推理:训练 GPU 配比可到 3:1(L12 p.25)——每一分重复计算的节省都直接变训练吞吐。本篇沿 L12 p.9-15 记两张账。显存账从 KV 缓存算起(L12 p.9):Llama-3-8B bf16 每 token 128KB,一条 32k 轨迹≈4GB,64 条≈256GB;Prefix 缓存(p.10)让 system+tools 全局复用、GRPO 组内共享任务 prompt、跨 turn 续写历史 KV(SGLang RadixAttention、vLLM Automatic Prefix Caching)。计算账在推理侧靠连续批处理按 decode 步回收槽位(p.11,Orca 迭代级调度,常配 chunked prefill 或 prefill/decode 分离)与投机解码 k=4 并行验证(p.12,Leviathan et al. 2023,RL 里冻结 drafter 接受率衰减、需在线 SFT/蒸馏追 policy);在训练侧靠激活检查点以≈+33% 换显存(p.13)、Prefix sharing 去重 80–95% 的重复 prompt token——ZoRRo actor 更新最快 6×、AReaL-DTA 前缀树 τ²-bench 压缩 9.43×、最高 8.31×(p.14)——以及 Context Parallelism 各 GPU 只留 Q、KV 块轮转(p.15,NeMo 概念图)。
agentic RL 的训练常常不是卡在算法,而是卡在采样。rollout 本身就是一台吞 GPU 的机器,推理与训练的算力配比可以到 3:1(L12 p.25)。
这台机器里到处是同一份计算的第二次、第 G 次。轨迹的历史 token 在重复,同一道题的 prompt 在重复,decode 步里还有空转的槽位。
本篇沿 L12 p.9-15 记两张账:显存一张,算力一张。推理侧四件套在前,训练侧三件套在后。
一、第一张账是显存:KV 缓存,以及它能复用什么
没有缓存的自回归生成,每个 decode 步都要把全部历史重过一遍。KV 缓存(KV cache,L12 p.9)的做法:每个过去 token 在每层留下一对 K、V 向量存进缓存;生成到第 t₇ 个 token 时,只算这一个新 token 的 q/k/v,再让它 attend 全部缓存。历史算过一次,永久复用。
代价是显存随长度线性上涨,这笔账必须算清(L12 p.9):Llama-3-8B bf16 下每 token 缓存约 128KB,一条 32k token 的 agent 轨迹≈4GB,一次 64 条的 rollout 批≈256GB,远超模型权重本身。
agentic 轨迹多轮交互、带工具输出,天然就长,KV 因此是 rollout 的硬通货。
Prefix 缓存(prefix caching,L12 p.10)把复用从一条轨迹内部抬到请求之间。system prompt 与 tools 定义全局不变,KV 常驻复用;任务 prompt 每题新算,真正逐 token 新算的只剩响应段。
agentic RL 在这里拿到双份红利。第一份来自 GRPO:这套组相对策略优化算法是 lecture-05 详解的主角,组内 G 条 rollout 共享同一份任务 prompt,组越大命中越多。第二份来自多轮任务:下一 turn 的历史就是上一 turn 的前缀,KV 直接续写。
工业实现两条路:SGLang 的 RadixAttention 把请求按前缀组织成 radix 树共享 KV;vLLM 的 Automatic Prefix Caching 走块级命中。
二、第二张账是算力:连续批与投机解码
连续批处理(continuous batching,L12 p.11)治的是批内空转。静态批整批进、整批出,先生成完的请求占着槽位干等最长的那条。
连续批把调度粒度降到单个 decode 步:谁结束,槽位立刻回收、补进排队的新请求。
出处是 Orca,Yu et al. 2022,贡献的名字就叫迭代级调度,iteration-level scheduling。
rollout 场景里请求长度参差:有的轨迹几轮就 finish,有的拖满 32k。静态批的浪费被放到最大。
工程上通常还要搭配:chunked prefill 把长 prefill 切块混进 decode 流水,或者干脆 prefill/decode 分离部署,让两种负载按各自的算力画像拿卡。
整批进整批出:短请求生成完只能空转,全批陪等最长的那条;rollout 长度越参差,空转越痛。
decode 步粒度调度:槽位随完随收、随收随补;配合 chunked prefill 或 prefill/decode 分离,GPU 始终有活干。
投机解码(speculative decoding,L12 p.12)把逐 token 串行换成猜一批、验一批。drafter 是草稿器,用 MTP 多 token 预测头或小模型,一次草拟 k=4 个 token;policy 一次前向并行验证。
拒绝采样(rejection sampling)保证最终输出分布与 policy 自己逐 token 采样严格一致,加速而不改分布,出处是 Leviathan et al. 2023。
RL 这边有个别处没有的坑:policy 每步都在更新,冻结的 drafter 与它越拉越远,接受率一路衰减。drafter 必须挂上 SFT / 蒸馏这样的在线辅助目标,持续追着 policy 跑。
三、训练侧三件套:重算、共享、切分
rollout 结束、轨迹进 loss,第三种压力出现:训练侧同样在为重复买单。三件套各对一种瓶颈。
激活检查点(activation checkpointing,L12 p.13)对的是激活显存:只存每层的输入,backward 需要时逐层重算,用多一次前向、约 +33% 的计算量换激活显存大幅下降。选择性重算更精,只重算 attention 这类激活大、重算便宜的部分,代价更低(Chen 2016;Korthikanti 2022,经典两站)。
前缀共享(prefix sharing,L12 p.14)是推理侧 prefix caching 的训练对应物,也是这张账里最 RL 的一笔。
若 G 条 rollout 各自独立做前向 + 反向,同一份 prompt 要被算 G 次。
做法是在 batch 维建前缀树,共享段前向 + 反向只算一次。树注意力掩码(tree attention mask)保证各分支互相看不见,各分支独立位置编码,梯度正常汇聚进共享 prompt。
两个数字把价值钉死。Snowflake 的 ZoRRo 实测长 prompt GRPO batch 中 80–95% 是重复 prompt token,去重后 actor 更新最快 6×;AReaL-DTA 用 DFS 逐条 root-to-leaf 展开前缀树,τ²-bench 多轮 rollout 压缩 9.43×,相对稠密训练最高加速 8.31×。
serving 命中前缀只需复用 KV;训练要复用,还必须让梯度正确流回共享段:独立位置编码、树掩码、梯度汇聚三件缺一不可,这也解释了 prefix sharing 为什么来得比 prefix caching 晚。
并行策略(L12 p.15)收尾:单卡放不下长序列大 batch 时就切分。Context Parallelism 把序列切段轮转,各 GPU 只留住自己的 Q,KV 块在 GPU 间轮转交换。slides 借 NVIDIA NeMo 手册的概念图,把 CP 与 TP、PP、EP 放进同一张地图:TP 切权重,PP 切层,EP 切专家。RL 训练栈里四种切法常组合使用。
与本讲的连接
伴读第七节把这本账记成推理、训练两段,本篇把每一段钻到底,开头那个 3:1 不是修辞:两侧各能省多少,上文一节一个数。七件工具其实在回答同一道题:同一份计算为什么要算第二次。伴读那句「省重复永远优先于砍内容」,排的就是这个优先级。
三张资料卡:m6-orca 是连续批的源头,迭代级调度一节值得精读;m6-sglang 看 RadixAttention 与 agentic 负载怎么咬合;m6-spec-decode 读拒绝采样怎么保证分布无损。
下次训练吞吐上不去,按两张账排查:
- 显存账:先看 KV 占用与前缀命中率。
- 计算账:再看批内重复率与 drafter 接受率。
本节论文与规范
本节资料
2022 经典·高引(OSDI 2022)。迭代级调度:按 decode 步粒度回收/补位请求,连续批取代静态批——L12 p11 continuous batching 的出处,vLLM/SGLang 调度器的共同祖先。配套的 selective batching 把「哪些算子能合批、哪些不能」讲清,变长请求的采坑地图从此有了。读 vLLM/SGLang 源码前,先读它认祖。
- SGLang(GitHub 仓库) 代码库进阶
活跃开源仓库。RadixAttention 前缀缓存(L12 p10 agentic RL 组内共享 prompt 直接受益)与 in-flight weight update 文档示例(L12 p26)——读 L12 推理引擎两页的实操对照。文档把前缀缓存命中率、权重热更新写成可跑示例,帧率数据可复现。agentic RL 组内共享前缀正是 radix 树的拿手场景,配 L12 两页读效率最高。
- Fast Inference from Transformers via Speculative Decoding 论文2211.17192进阶
2023 经典·高引(ICML 2023)。drafter 一次猜 k 个 token、大模型并行验证、拒绝采样保精确分布——L12 p12 的出处;RL 特有坑(策略在变、冻结 drafter 接受率衰减)由讲义补充。核心保证是输出分布与逐 token 采样严格一致(无损加速),收益全在「猜中白赚、猜错只多算一步」。drafter 怎么养、接受率怎么估,是把它搬进 RL 的真门槛。
AI 生成 · 仅供参考,与课程方无关。选中正文里的任何一段也能直接问我(解释一下 / 举个例子)。
本详解以 CMU 11-768 AI Agents (Fall 2026) 课程大纲为参考框架独立撰写,AI 辅助起草、人工抽审。 涉及的官方课件、论文与课程材料版权归原所有方,讲义为站内镜像、其余外链原文出处; 观点与文字(除标注引用外)为作者原创。