架构
- RL flow和工具流程完全解耦
- 可扩展的工具异步执行
- 统一的工具定制
- 以往的framework都是整个batch的动作ai都完成了才会触发工具交互阶段
具体细节
- VeRL Workflow负责所有强化学习相关活动,包括多轮 rollout(multi-turn rollouts)与actor 更新(actor updates)
- 对工具返回的观测(tool observations)进行分词(tokenize)并与前面的 LLM 动作(actions)拼接。
-
分别分词再拼接(separate tokenization):
对动作字符串和观测字符串分别进行分词,
然后将它们的 token 序列依次拼接(append);
-
先拼接再统一分词(joint tokenization):
先将原始字符串拼接为一段文本,
再进行整体分词。
怎么实现的Python Tool?
- 外置sandbox还是内置python tool类似qwen agent python tool
如何判断动作ai是否调用了某个工具
- ai以某个stop token停止标记结束
- SCI = {‘‘‘output, </python>} for a code interpreter tool, or Ssearch = {</search>} for a search tool.
训练中屏蔽观测token
- a1,o1,a2,o2,…..,an
- τ = {a0, o0, . . . , an−1, on−1, an}
$$
τ = {a0, o0, . . . , an−1, on−1, an}
$$
- o0、o1这种通过stop token停下去调用tool的交观测token observation token
- 观测 token 相对于当前正在优化的语言模型πθ 而言是离策略(off-policy)的,
这可能会导致训练不稳定(destabilize training)