Multi-Turn Reinforcement LearningVerifiedPublished
多轮强化学习(Multi-Turn Reinforcement Learning) 指的是:模型不是只生成一次最终答案,而是在同一条轨迹里反复执行“生成动作 -> 接收环境反馈 -> 再生成动作”的交互式 强化学习(Reinforcement Learning)。
核心定义
- 单轮 RL 的基本单位通常是一段
prompt -> response。 - 多轮 RL 的基本单位则是一条 轨迹(trajectory):模型在多次 turn 中持续读取上下文、调用工具或输出动作,并根据后续 observation 继续决策。
- 因而,多轮 RL 更接近 部分可观测马尔可夫决策过程(Partially Observable Markov Decision Process, POMDP),因为模型看到的是“历史交互痕迹”,而不是环境全状态。
算法视角
优化对象从单次回答变成整条交互轨迹
- 每一轮的 assistant 输出都可以看成 action,环境返回的 observation 则构成下一轮输入的一部分。
- reward 可以被设计成只在最后给出,也可以在中途按 turn 构建 dense reward。
credit assignment 更难
- 终局 reward 往往由多轮动作共同决定,因此哪一轮真正有贡献并不总是清楚。
- 当任务包含 tool use、检索、执行或 UI 操作时,前面一轮的小错误可能会在后面被放大。
- 这使多轮 RL 比单轮 RL 更依赖稳定的 advantage 估计、轨迹筛选和失败样本过滤。
更容易暴露 off-policy 问题
- 多轮轨迹更长,rollout 与训练之间的延迟更容易积累。
- 如果旧策略采样的轨迹被新策略反复更新,训练会更偏向 异策略(Off-Policy)。
- 在 agent 场景里,这种分布偏差常比单轮问答更严重,因为中间 observation 也会随旧动作而改变。
工程视角
rollout 和 environment 要解耦
- 工程上最重要的抽象通常不是 reward,而是
env.step()。 - 一个可复用的 multi-turn 系统,应该允许用户只替换环境逻辑,而不重写主训练循环。
- slime 这一类实现会把“模型采样”和“环境如何解释 action”拆开,从而同时支持 LLM agent 和 VLM agent。
tokenization 与 masking 会快速变复杂
- 每一轮都要把新增 observation 追加到历史上下文里,但又不能把 system prompt、tool preamble 或模板前缀反复塞回序列。
- 因此在 multi-turn RL 中,实现 token-in-token-out 的训练流程是必要的。
- 常见做法是做增量分词或通过一些算法分析出 delta tokens。
- 同理,对 loss mask 的处理也需要额外小心。
长尾样本会拖垮吞吐
- 不同样本的 turn 数、每轮生成长度、环境等待时间都可能差很多。
- 少数超长轨迹会拉低整批 rollout 的有效并发度,形成明显的 long-tail 问题。
- 因此,实际系统常需要 async agent loop、partial rollout、profiling 和更激进的 batch 管理。
总结对比
| 维度 | 单轮 RL | 多轮 RL |
|---|---|---|
| 交互单位 | 一次 response | 多轮 trajectory |
| 环境反馈 | 常在末尾体现 | 每轮都可能返回 observation |
| loss mask | 通常只切 prompt/response | 需要精确切 assistant/action 与 observation |
| 主要瓶颈 | 训练稳定性、采样成本 | 还要额外处理 env latency、长尾、状态管理 |
| 系统耦合 | 相对较低 | 与 rollout engine、scheduler、cache 更强耦合 |
Comments