如果你曾用多轮强化学习训练大模型执行工具调用任务,很可能见过这样的尴尬场景:模型第一轮思路清晰,第二轮开始胡言乱语,第三轮直接输出一堆乱码。训练到后期,模型性能像过山车一样垂直下坠,让人束手无策。

由清华大学等机构提出的SimpleTIR框架,正是为了解决这一多轮工具调用中的训练崩溃问题。该项研究以极简的启发式规则,有效解决了长期困扰开发者的训练不稳定难题。

多轮调用为何会“崩”?

研究团队一针见血地指出问题核心:“分布偏移+低概率token的链式雪崩”。具体来说,外部工具(如Python解释器、搜索引擎)返回的结果,与模型预训练时的语料分布差距可能极大。这些分布外(OOD)token被作为下一轮输入时,模型越采越偏,最终在第三、四轮吐出乱码或直接停止生成。

更严重的是,低概率token会导致重要性采样比值暴涨,梯度范数瞬间拉满,训练过程直接炸裂。传统解决方案如梯度裁剪或KL正则化,往往只能治标不治本。

SimpleTIR的极简之道

面对这一复杂问题,SimpleTIR却祭出了一个出乎意料简单的启发式规则:只要模型在某一回合中既没生成可执行代码块,也没给出最终答案,就判定为“无效轮”(void turn),整条轨迹直接丢弃,不用于策略更新。

这一看似简单的轨迹过滤机制,同时切断了两条导致崩溃的关键路径:一方面,无效轮往往伴随极低概率token,扔掉它们等于从源头消除了高幅值梯度;另一方面,无效轮之后的失败不应惩罚前面正确的推理步骤,避免了信用分配错位问题。

意外收获:多样化的推理行为

令人惊喜的是,SimpleTIR的训练过程还催生了多样化的推理行为。使用Claude-3.7-Sonnet的统计显示,模型自发涌现出三种高级推理策略:

渐进推理:编写多个脚本逐一解决各个子命题,再完成最终解答
交叉验证:同一问题编写两份代码互相验证,防止一错到底
错误回环:运行报错后定位bug,重新编写代码再次运行
这些策略并非人为预设,而是模型在无监督奖励下自发涌现,成为了Zero RL的“副作用惊喜”。

实践价值:可复制的工程解决方案

SimpleTIR的核心贡献不在于刷爆性能排行榜,而在于提供了一条可复制、工程友好的多轮工具调用训练路径。

该方法具有三大突出优势:真正的Zero RL——直接基于base模型启动,无需昂贵的人类标注;即插即用——无效轮检测逻辑仅需10行代码,可无缝集成到任何RL框架中;强可扩展性——从7B到32B的不同模型规模均能保持训练稳定。

目前,SimpleTIR的核心实现已经开源,开发者可直接查看源代码与实现细节。在大模型工具调用日益重要的今天,这一方案为解决多轮交互中的训练不稳定问题提供了简单而有效的路径。

正如研究者所言,在LLM多轮工具调用中,只要模型产生“void turn”,就把整条轨迹丢弃,便能实现稳定训练——这就是SimpleTIR带来的最大启示。极简不一定意味着功能有限,有时恰恰是这种简洁性,让解决方案更加有力且易于实施。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐