LLM agent 分拆任务的能力来源

这是个很值得分析清楚的问题。任务分解能力并不是某一天突然"装进"模型的,它来自预训练埋下的种子、后训练的显式塑造、推理时脚手架的放大三个层次的叠加。可以把它理解为一条"形成链条":

1. 预训练:能力的原材料(潜伏来源)

任务分解的"底料"是预训练语料里海量存在的分解性文本结构

  • 代码:程序本身就是分层的------函数调用子函数、模块组合成系统。模型在学代码时反复看到"大目标被拆成小步骤再组合"的模式,这被认为是分解能力最重要的来源之一;
  • 教程/文档/书籍:操作手册、"步骤 1、2、3"、数学证明的分步推导、论文的章节结构;
  • 问答社区:Stack Overflow 里"先做这个、再做那个"的回答模式。

预训练阶段模型只是学会了模仿这种文本模式 ------它能续写出"看起来像在分解"的文字,但此时还没有"为了达成目标而规划"的意图。这一步形成的是潜在能力(latent capability):模型内部已经编码了"目标 → 子目标序列"的映射统计规律,只是没被激活为可控行为。

2. 后训练:把潜伏能力变成可用行为

1. 指令微调(SFT) :用人工或合成的"任务 → 分解方案"配对数据训练,比如"策划一场活动 → ①定预算 ②选场地 ③发邀请......"。这一步教会模型在收到指令时主动输出分解,而不是等文本自然流出来。开源社区的 self-instruct / evol-instruct 类合成数据里大量包含这种多步任务样本。

2. 思维链(CoT)类数据的训练 :把"先一步步想、再给答案"的推理轨迹直接放进 SFT 数据,模型学会的不仅是格式,更是"先拆解、再执行"的行为先验。

3. 可验证奖励的强化学习(RLVR) :这是近几年最关键的一步。当分解方案的对错可以通过环境验证(代码跑通、数学答案正确、游戏通关)时,RL 会直接奖励有效的分解路径 、惩罚无效分解。模型因此学到的不只是"像分解",而是"什么样的分解真的有用"------比如"先定位相关文件、再改代码"比"直接改代码"成功率高,这个策略就会被强化。长链推理模型(o 系列、R1 类)的"自我规划、自我纠错"行为主要就是这一步训出来的。

4. Agent 轨迹 SFT :用完整的"目标 → 子任务 → 工具调用 → 观察 → 调整"轨迹微调,让分解和行动绑定------分解出来的每一步必须是可执行、可验证的,而不是空话。

3. 推理时脚手架:能力的放大器

即使模型本身能力固定,外部框架也能显著放大分解表现:

  • 提示工程:few-shot 示例、"Let's think step by step"、least-to-most prompting------本质是把预训练里的分解模式"钓"出来;
  • 规划模块:Planner-Executor 架构、tree-of-thought、任务队列(如 BabyAGI 模式),把分解外化成显式结构;
  • 工具反馈闭环 :每步执行结果回流给模型,使分解可以动态修正------这是 ReAct 式循环相对静态 CoT 的核心优势:计划不再是一次性的,而是滚动更新的。

4. 几个关键机制小结

层次 形成机制 贡献
预训练 代码+分步文档的模式学习 潜伏的分解"模板库"
SFT 指令→分解 配对数据 让分解成为主动行为
RLVR 分解路径的成败可验证 学会"有用"的分解而非"像样"的分解
轨迹训练 分解与工具调用绑定 分解产出可执行步骤
推理脚手架 提示、规划器、反馈闭环 放大与修正

5. 值得注意的两个认知

  1. 规模阈值:分解能力有明显的涌现特征------小模型给同样的 CoT 提示几乎不受益,参数过某个规模后分解质量才陡增。这不是玄学,而是因为长距离依赖(总目标约束第 7 步的子动作)需要足够的模型容量来建模。

  2. "分解"和"推理"是同一枚硬币 :CoT 是事后解说式 的分解(把答案的推导拆碎),agent 的任务分解是事前规划式的分解(把目标的执行拆碎)。两者共享同一套底层能力,所以能看到强推理模型的 agent 表现普遍更好------o1/R1 类模型出现之后,各家的 agent 基准分数普遍跳涨,就是这个因果关系的直接体现。

6. 总结

预训练提供了"见过无数种分解方式"的经验库,SFT 把它变成习惯,RL 用成败反馈把它磨砺成策略,agent 框架则在运行时给它配上手和眼睛。 少了任何一环,分解能力都会打折扣------只有底座没有 RL,分解是花架子;只有框架没有强底座,分解出来的步骤根本执行不动。

7. 扩展:LLM 的 SFT

SFT(Supervised Fine-Tuning,监督微调)。这里会按"是什么 → 数据怎么造 → 怎么训 → 在 agent 场景下的特殊形态 → 常见坑"的顺序展开。

7.1. SFT 在做什么:本质

预训练模型(base model)只会一件事:续写。你给它"如何泡一杯咖啡",它可能续写出另一个问题"如何泡一杯茶"------因为它只是在模仿网页文本的分布。

SFT 的目的就是行为改造 :用"指令 → 理想回答"的配对数据继续训练,把"续写器"变成"执行者"。技术上它和预训练没有任何区别------同样的交叉熵损失、同样的下一个 token 预测------唯一的差别在数据 :不再是整段无结构文本,而是精心构造的 <输入, 目标输出> 对。

7.2. 训练流程的技术细节

1. 数据格式(chat template)

每条样本被组织成多轮对话,套上特殊 token:

复制代码
<|system|>你是一个编程助手<|user|>帮我拆分这个任务:......<|assistant|>第一步......第二步......

2. Loss masking(最关键的工程细节)

训练时只在 assistant 的输出部分计算损失,system 和 user 部分的 token 被 mask 掉(loss 权重设为 0)。原因很直觉:你不想训练模型去"学会提问",只想让它学会"给定问题如何回答"。漏掉这一步是新手最常犯的错误,会导致模型学会自言自语地编造用户问题。

3. 训练超参的惯例

  • 全参数 SFT 通常用很小的学习率(1e-5 ~ 2e-5 量级,比预训练小一个数量级),1-3 个 epoch;
  • 数据量层面存在著名的少即是多 现象(LIMA 论文):几千条高质量样本就能让底座模型行为大幅对齐,但多样性比数量重要------任务类型覆盖越广越好;
  • 参数高效方案:LoRA/QLoRA 只训低秩矩阵,成本低但容量有限,做 agent 能力注入时够用,做深层能力改造时不如全参。

7.3. 数据从哪来(决定上限的环节)

SFT 的配方 90% 是数据工程。主要来源:

1. 人工标注:质量最高、最贵。OpenAI 早期 InstructGPT 的 SFT 阶段大约用了 1.3 万条人工写的示范。

2. 模型合成(当前主流)

  • Self-Instruct:让一个强模型自己生成指令和回答,冷启动出数据集;
  • Evol-Instruct:对已有指令不断"加深复杂度"演化(加约束、加步骤、加推理深度);
  • OSS-Instruct(代码领域):从真实开源代码片段反向生成题目和解答,保证分布贴近真实。

3. 蒸馏强模型:用 GPT-4 级模型的输出去训小模型。便宜高效,但有天花板------学生很难超过老师,且会继承老师的错误风格。

4. 拒绝采样(Rejection Sampling / RFT) :让模型对同一任务采样多个回答,用可验证标准(单测通过、答案正确)筛出好的,再拿这些"模型自己产出的好样本"回去 SFT。这一步已经是 SFT 和 RL 的过渡地带------Llama、DeepSeek 的做法里都有它。

7.4. Agent 场景下的 SFT:轨迹微调

回到你上一个问题的语境------要训出"会分解任务"的 agent,SFT 的数据不是单轮问答,而是完整的多轮轨迹

复制代码
系统: 你可以使用 search/lookup/finish 三个工具
用户: 科罗拉多造山运动东部延伸区域的海拔范围?
助手: 思考: 我需要先搜索科罗拉多造山运动......
      动作: search[Colorado orogeny]
环境: 观察: 科罗拉多造山运动是......(工具返回)
助手: 思考: 没提到东部区域,我要 lookup......
      动作: lookup[eastern sector]
环境: 观察: 东部区域延伸进入高平原......
助手: ......
      动作: finish[1800到7000英尺]

这就是 ReAct 论文里那种轨迹。训练要点:

  • 环境返回部分也要 mask 掉损失------只学 assistant 的思考与动作,不学环境输出;
  • 轨迹必须端到端成功才入库(或至少用结果加权),否则模型学到的是"失败的动作序列";
  • 数据来源通常是:强模型 + 真实环境交互 + 结果过滤(STaR / 自举思路------模型先生成轨迹,只保留任务成功的那部分,再微调自己),SWE-Gym、SWE-smith 这类流水线就是干这个的;
  • 轨迹 SFT 教给模型的核心不是知识,而是行为模式:先分解目标、每步行动前显式思考、根据观察修正计划、知道何时收手。

7.5. SFT 的边界和常见坑

问题 表现 对策
模仿上限 学生超不过数据质量,"学形不学神" 拒绝采样筛数据;后接 RL
灾难性遗忘 行为对齐了,通用能力下降 混入通用数据、控制学习率和 epoch
分布外脆弱 换个工具格式/环境就崩 数据里覆盖多环境、多工具、多格式
幻觉式分解 分解出"看起来合理但无法执行"的步骤 用真实执行结果过滤轨迹,而非只看文本合理性
过拟合表面格式 学会"思考:"的壳,内容空洞 检查轨迹中思考与实际动作的一致性

最核心的认知 :SFT 本质是行为克隆------它能把"好的行为模式"高效率地复制给模型,但它没有自己的判断力。数据里分解得好,它就分解得好;数据里有系统性错误,它会放大这些错误。所以现代 pipeline 几乎都是"SFT 打底(学会格式和基本行为)→ RL 增强(用可验证奖励学会真正的策略)":SFT 解决"会不会",RL 解决"好不好"。

7.6. 总结

SFT 是用"标准答案的示范"做行为克隆,工程成败几乎全在数据质量、loss masking 和轨迹真实性上;它能把潜伏能力快速激活成可用行为,但要让行为真正"聪明",还得靠后面的 RL 用成败反馈来磨。

相关推荐
circuitsosk1 小时前
跨境电商智能化实战:AI如何赋能客服自动回复、广告智能投放与供应链预测
大数据·人工智能·python·langchain·智能客服
甲维斯1 小时前
美版豆包G3.7Flash,快到飞起,超3分钟算我输!
人工智能
sunneo1 小时前
每周GitCode开源推荐:AI编程助手AtomCode
人工智能
AIDANHANG1 小时前
最小可售:不是最小可炫
人工智能
鲲穹AI种草1 小时前
图片水印处理工具记录:多款 AI 去水印工具能力边界整理
人工智能·图片水印处理工具
企鹅的企2 小时前
2027北京AI健康科技与智慧医疗展官方精准邀约进行中
人工智能·科技
高德诚2 小时前
探索桌面智能的无限可能:小小舵机,撑起 AI 仿生交互的完整未来
人工智能
2601_956319882 小时前
2026年零基础学量化:从看懂示例到写清条件和动作
人工智能·python