简介:本文以某开源强推理模型及其 Thinking 版本的技术路线为参照,抽象出一套可复用的"长程智能体模型"训练与推理教程:读者将学会如何优化预训练阶段的 token 效率、如何用改写策略提升语料质量、如何通过真实环境运行采集并筛选智能体轨迹数据、如何构建 rubric 奖励与评估体系,以及如何在推理侧通过测试时扩展换取长程思考与连续工具调用能力。适合大模型训练工程师、强化学习算法工程师、智能体应用开发者与技术负责人阅读,读完可落地一条从数据到评测再到线上推理的完整链路。
本教程要完成的事情是:把”如何训练一个会连续调用工具、能做长程规划的智能体模型”拆成一条可执行、可验证的工程链路。参照对象是近期表现突出的某开源强推理模型及其 Thinking 版本——后者在多个高难度知识与推理评测集上成绩优异,更关键的能力是可以执行数百步连续工具调用,具备类似主流商业智能体产品的长程规划与自适应推理表现。其官方发布只给出了评测数据与演示,未披露训练细节,但它与基础模型师出同源,仅在此基础上叠加了思考与更强工具调用能力。因此本教程以基础模型公开的技术报告为主线,逐层推演 Thinking 能力的形成路径。
读完本文,你应当能回答四个问题:
适用场景包括:通用智能体(Agent)模型训练、工具调用与代码执行类模型优化、创意写作与长文生成质量提升、需要长程任务的自动化流程(如运维排障、数据分析、文档撰写)。
读者分层建议:
| 角色 | 关注重点 |
|---|---|
| 训练/算法工程师 | 预训练稳定性、数据合成 pipeline、RL 奖励设计 |
| 应用开发者 | 推理侧预算控制、工具编排、失败重试 |
| 技术负责人 | 评测体系可信度、算力与推理成本、上线风险 |
不适用场景:单次问答类轻量应用、无需工具调用的短任务。这类场景引入长链推理只会增加延迟与成本。
需要理解:Transformer 训练基本流程、SFT 与 RL 后训练的差别、可验证奖励(结果正确性可直接判定)与模型奖励(需要模型打分)的差异、工具调用的 function calling 协议。
在做任何大规模投入前,先确认你的任务属于哪一类:
做什么:用基于矩阵正交化的动量型优化器(把动量矩阵做正交化后再更新权重)替换传统自适应优化器,并为其加上针对注意力模块的 logit 裁剪。
为什么做:正交化动量更新在大规模训练中对超参更不敏感、单位 token 的收益更高,但它在深层网络里存在数值风险——注意力查询/键的权重范数容易随训练膨胀,导致注意力 logits 数值爆炸、loss 尖峰甚至发散。因此改进变体的核心是在训练过程中动态监测注意力 logits 最大值,超过阈值时对对应投影权重做一次缩放裁剪,把峰值拉回安全区间。裁剪是瞬时的、每步重新评估,不会永久损害已学到的表征。
注意什么:
经验取值逻辑:学习率通常比自适应优化器低一个量级;正交化只作用于矩阵型参数,向量型参数(归一化层、偏置)保留原始更新方式。
做什么:不直接用原始语料训练,而是让一个能力较强的模型对语料做”改写”(rewriting),把口语化、噪声多、结构混乱的文本重写成清晰、结构统一、术语一致的版本。
为什么做:原始互联网语料的质量方差极大。改写相当于在预训练阶段就注入了一层”风格对齐”,模型更早接触到规范表达,下游的指令跟随与长文生成质量会明显受益。这一点对创意写作类任务尤其明显——原文资料在这一点上写得非常细,值得单独作为子项目投入。
怎么做(这是本步骤的重点,建议按四类维度分别建模):
改写策略的落地要点:
注意什么:改写本身会消耗大量推理算力,成本往往接近一次中等规模微调。务必先做 1% 抽样实验,用下游评测确认收益,再全量执行。
这是整套方案的核心,也是最容易走偏的一步。
做什么:在真实工具环境中让模型自己”跑”任务,采集完整轨迹(trajectory),再用一个强模型做筛选与标注,形成高质量训练集。
为什么做:人工构造轨迹的方式有两个致命问题——一是构造者容易按自己的想象设计工具调用顺序,与真实环境反馈不符;二是规模上不去,几百条到几千条就到顶。而智能体能力(尤其是长程规划、错误恢复、工具选择)本质上必须从”模型自己犯错、自己纠正”的过程里学。所以正确做法是:先用真实环境模拟运行堆量,再用模型筛选提纯,而不是先精雕细琢地构造少量数据。
pipeline 设计(按阶段):
[阶段1 任务生成]从真实场景聚合任务种子 → 强模型扩写为带明确成功判据的任务输出: task, 初始环境快照, 成功判据(可验证/需判断)[阶段2 并行采样]N 个沙箱实例并行执行 → 模型自主调用工具 → 记录每一步(action, observation, 时间戳, 工具返回码)限制: 最大步数, 单步超时, 工具调用次数上限[阶段3 轨迹打标]强模型作为裁判, 输入完整轨迹 + 任务 + 环境最终状态判定: 是否成功 / 关键决策点是否正确 / 是否存在作弊式捷径[阶段4 筛选与分层]保留: 成功且路径合理 → 正样本改造: 失败但前半段正确 → 截断为短程正样本(难度课程用)丢弃: 作弊通过、循环调用、环境异常[阶段5 合成 SFT 数据]模板化 -> (系统提示 + 任务 + 历史轨迹) -> 目标动作
关键设计要点:
做什么:为主观任务编写结构化评分表(rubric),把”好不好”拆成若干可判定的条目,由模型按条目打分并加权汇总。
为什么做:rubric 一两年前就已在使用,但在强推理级开源模型上大规模落地并跑出效果,说明关键不在概念而在工程化。它把不可优化的主观目标转成了密集奖励信号,让 RL 有了梯度方向;同时它也是评测体系,训练前后用同一套 rubric 才能做可信对比。
rubric 编写规范:
task_type: 创意写作-品牌故事criteria:- id: C1name: 事实一致性desc: 不虚构未提供的数据、人名、时间weight: 0.30levels: {0: 存在虚构, 1: 轻微越界, 2: 完全合规}- id: C2name: 结构完整desc: 具备开头钩子、主体论证、结尾收束weight: 0.25levels: {0: 缺失, 1: 不完整, 2: 完整}- id: C3name: 语言质量desc: 无冗余、无翻译腔、无重复句式weight: 0.25levels: {0: 明显问题, 1: 少量, 2: 无明显问题}- id: C4name: 任务约束遵循desc: 字数、语气、禁用词等硬性约束weight: 0.20levels: {0: 违反, 1: 部分违反, 2: 完全遵循}hard_rules: # 硬规则优先级高于加权分- 出现违禁内容 -> 直接判 0
落地要点:
做什么:把可验证奖励(数学、代码、数据类任务)与 rubric 奖励(主观任务)混合,做统一的 RL 训练,让模型同时提升推理正确率和表达质量。
为什么做:单一奖励会挤压能力面。混合训练能让模型学会”任务类型识别 → 选择对应策略”,这正是通用智能体所需的行为模式。
配置要点与风险:
| 配置项 | 含义 | 常见取值逻辑 | 风险 |
|---|---|---|---|
| 奖励混合比例 | 可验证 vs rubric 样本占比 | 按目标能力面调整,主观任务多时提高 rubric 占比 | 比例失衡导致某一类能力退化 |
| 难度采样策略 | 按通过率动态采样题目 | 优先采通过率 20%~80% 的题 | 过难样本无梯度,过易样本浪费算力 |
| 组采样数量 | 每题采样多条轨迹做组内比较 | 越大方差越小,成本线性上升 | 成本爆炸 |
| KL 约束 | 限制策略偏离参考模型 | 保持表达多样性时放松,追求稳定性时收紧 | 过紧则学不动,过松则语言退化 |
| 最大轨迹步数 | 单条轨迹工具调用上限 | 依据任务实测分布设定 P95 附近 | 过大导致成本失控与循环调用 |
训练监控:除 loss 与奖励曲线,必须监控轨迹长度分布、工具调用次数分布、重复调用率、格式合规率。这几个指标往往比奖励曲线更早暴露问题。
做什么:在推理阶段分配额外算力换效果,包括三类手段:
代价与副作用(必须提前设计对策):
预算调度示意:
def route_and_infer(task):tier = classify_complexity(task) # simple / medium / complexbudget = {"simple": {"think_tokens": 512, "max_steps": 10, "samples": 1},"medium": {"think_tokens": 4096, "max_steps": 60, "samples": 1},"complex": {"think_tokens": 16384,"max_steps": 300, "samples": 3},}[tier]results = [run_agent(task, **budget) for _ in range(budget["samples"])]if budget["samples"] == 1:return results[0]return aggregate(results) # 校验器优先, 其次裁判模型投票
验证要分三层,缺一层都可能得出错误结论:
判为成功的标准示例:业务集任务成功率相对提升且平均步数不上升;rubric 加权分提升且各条目无单项塌陷;人工抽检的作弊率低于设定阈值。
| 现象 | 可能原因 | 排查思路 |
|---|---|---|
| 训练 loss 尖峰/发散 | 注意力 logits 数值爆炸;学习率过高 | 看裁剪触发频率与注意力峰值曲线,回退检查点,降学习率后再放开阈值 |
| 奖励上涨但人工评价下降 | 奖励投机,rubric 条目可被”刷分” | 对比奖励曲线与人工评分,逐条目拆解找出被刷项,加互斥约束与硬规则 |
| 模型无限循环调用工具 | 缺少步数上限或缺少重复检测 | 加步数上限、调用指纹去重、对连续相同调用给负奖励 |
| 思考链越训越长但正确率不升 | 过度生成,缺少终止条件 | 加思考 token 预算与无效推理中断,训练侧对无信息增量推理扣分 |
| 轨迹数据规模上不去 | 沙箱并行度不足;任务判据不清导致大量丢弃 | 提高实例并行数;重写任务判据为可自动验证形式 |
| 改写后语料下游表现下降 | 过度改写丢失信息或引入幻觉 | 抽样对比原文与改写文,降低改写力度,只对低分位语料改写 |
| 训练后在你的业务集上没提升 | 评测污染;任务分布与训练分布不一致 | 检查评测集是否与训练语料重叠;重做任务种子采集贴近真实分布 |
本教程的主线可以概括为四句话:预训练靠优化器稳定性换 token 效率,并通过数据改写统一语料风格;后训练靠”真实环境跑出来 + 强模型筛选”获得规模化的智能体轨迹;主观任务靠 rubric 把模糊目标转成可优化的密集奖励;推理侧靠测试时扩展换长程能力,但必须用预算路由与副作用抑制把成本框住。
其中最容易被低估的是数据环节——尤其是改写策略与轨迹筛选裁判这两处,它们决定了整条链路的天花板。建议的推进顺序是:先搭沙箱与可验证判据,再跑通小规模轨迹采集与筛选闭环,验证 rubric 一致性后再进入 RL,最后才做推理侧预算扩展。后续可持续关注的方向包括:奖励投机的自动化检测、跨任务难度课程的自适应生成,以及长程任务失败归因的可解释方法。