<aside> 💡
我们在 slime 上实现了 LLM 与 VLM 训练范式的真正统一。得益于优秀的解耦设计,开发者现在只需编写一套定制化的 rollout 函数,即可像训练 LLM 一样,轻松开启 VLM 的多轮强化学习(Agentic Multi-turn RL)。
</aside>
与传统的单次执行(Single-turn Inference)不同,Agentic VLM 的本质是连续交互。它不再是端到端地吐出一个“最终答案”,而是作为决策核心,在执行动作(Action)与感知环境(Observation)的往复循环中不断演进。每一次模型的输出都会对环境进行一次试探,而环境每一轮反馈又是为模型下一次采取行动提供更进一步的信息。这种与环境的多轮交互,是目前充满期待的 VLM 进化为真正智能体的必经之路。
例如大火的 Computer Use Agent 或具身智能场景下,模型不是一个孤立的对话机器人(chatbot),而是深嵌在环境链路中的思维引擎(thinking machine)。模型必须具备“审时度势”的能力:输出 Action 引起环境的状态变更(UI 状态、物理位移等),实时捕获环境以图片等丰富形式返回的 Observation,并在长上下文的持续滚动中完成复杂的推理。
这正是 slime 协同 Miles 社区在 VLM Agentic Training 中致力攻克的核心场景。得益于其在 LLM Multi-turn Training 阶段就完成的优雅设计,用户仅需通过 --rollout-function-path 参数,即可传入为 VLM Agent 设计的交互逻辑,无缝衔接“自主生成 → 环境交互 → 多模态观测回传 → 迭代推理”的完整链路。我们保持对 Agentic Multi-Turn RL 一贯的设计哲学:极致解耦,Rollout 逻辑不与任何特定数据集格式或交互协议强绑定,“环境如何解析 Action、如何执行工具、如何反馈 Observation”完全由用户自由决定,为 Agent 的无限演进保留绝对的自由。
正如我们反复强调的那样,从第一性原理出发,任何 multi-turn 训练本质上只需要定义采样与交互逻辑即可。
具体来说,slime 的 LLM Multi-Turn Training(e.g. Search-R1 )通过自定义采样(generate 函数),让模型在每一轮根据当前上下文生成动作指令,实时捕获环境观测(Observation)并将其增量注入上下文,直至模型决定返回结论或者超出上下文限制长度。得到完整的 trajectory 后,再通过正确的 loss mask 来区分模型输出的动作指令与环境反馈信息。
VLM 与 LLM 的多轮采样并无本质区别,只需要在在每一轮交互中额外维护并拼接多模态的上下文信息。我们将 environment 与 rollout 明确解耦,“环境如何解析 Action”等等设计完全独立于采样与训练之外,提升了可复用性与可扩展性。
Sample 提取 prompt 和多模态输入,完成首轮编码并初始化 sample.tokens, image_data, multimodal_train_inputs_buffer 等等,为后续的多轮循环提供初始化的上下文。