🎓 LLM 是怎么学会调用外部工具的
SFT 教会「怎么调」,RLHF 教会「该不该调」。运行时靠 Function Calling 落地。
原始 LLM 为什么不会调工具
📖 预训练只学「预测下一个词」
大模型在预训练阶段学的就是文字预测——给定前面的文字,预测下一个 token。
整个过程在文本空间里,模型从未见过「工具调用」这件事。
🎭 没训练过只会「说」
哪怕你 prompt 里写「你可以调用天气 API」,没经过专门训练的模型也只会输出自然语言描述:
「我需要调用天气 API 来回答你」
而不是可被程序解析的 JSON 调用请求。
工具调用能力不是天生的,是后天教出来的。靠两个阶段:
SFT 教会「怎么调」 + RLHF 教会「什么时候调」。
第一阶段:SFT,让模型「见过」工具调用
📋 监督微调:看示例学模仿
SFT(Supervised Fine-Tuning)思路很直接:给模型看大量正确的示例,让它学会模仿。
像培养新员工:先让他看几百份填好的工单,他就学会了「遇到这类问题怎么写、走哪个流程」。
🧩 一条完整训练样本
• System:工具说明书(有哪些工具、叫什么、能做什么、要什么参数)
• User:用户提问
• Assistant 调用:正确答案是结构化 JSON,不是自然语言
• Tool:模拟工具返回
• Assistant 最终回答:看到结果后的自然语言
模型在几十万甚至上百万条这样的样本上反复训练,就学会了整套流程:识别工具定义、判断要不要调、输出格式规范的 JSON 请求。
训练数据来源:① 人工标注(成本高但质量好,做种子数据);② 用更强模型(如 GPT-4)自动批量生成再人工抽查(成本低、量大,业界主流)。
SFT 的短板:会调,但不知道「该不该调」
😅 过度积极调用
SFT 让模型学会了「调工具」这个动作,但不知道什么时候该调。
像刚培训完的新员工过于热情,有人问「1+1 等于几」他也要去查手册,明显多此一举。
⚖️ 为什么边界感弱
SFT 样本里「该调的场景」占绝大多数(毕竟就是要教它调),模型会过拟合这种积极调用倾向,没看过足够多的「不该调」反例。
训练信号只告诉它「这是正确答案」,没告诉它「不该调也是一种正确」。
这个问题要第二阶段的 RLHF 解决。
第二阶段:RLHF,用反馈建立边界感
👑 人类反馈强化学习
SFT 是让新员工看示例学规范,RLHF 是老板持续给他打分、帮他建立判断力。
🔢 四步流程
① 生成多样回答:同一问题生成几种处理(有的调工具、有的直接答、有的参数填错)
② 人类打分:评判哪种更合理
③ 训练奖励模型:用打分数据训练一个「会打分的裁判」
④ 强化学习优化:用奖励模型分数调主模型参数
RLAIF(AI Feedback)是 RLHF 的低成本变体——用另一个 AI 代替人类标注员打分,成本更低、速度更快,业界也很常用,效果和人工反馈相差不大。
⚠️ 注意:如果人类标注员标准不一致,奖励模型会学到歪的打分标准,主模型再怎么被优化也是歪的。
运行时:训练好之后怎么用
关键认知:模型只负责「决策」,不负责「执行」。
模型在整个过程只做一件事——判断要调哪个工具、参数填什么,然后输出 JSON。真正跑函数、访问网络、查数据库的,是你的宿主程序代码。
这个分工很合理:LLM 擅长理解意图和推理,但不应有直接操作系统的权限;宿主程序负责执行,可做权限控制、参数校验、执行沙箱等安全措施。这是主流工具调用框架的核心设计原则。
LLM 的工具调用能力不是天生的,靠两个训练阶段:SFT 给模型看大量完整调用流程样本,学会「怎么调」(输出结构化 JSON);RLHF 用人类打分训练奖励模型再强化学习,建立「该不该调」的边界感。运行时靠 Function Calling 落地:模型输出 JSON 决策、宿主代码执行、结果喂回。核心:模型只决策不执行。
我分训练和运行时两块讲。训练靠两个阶段:SFT 监督微调,给模型喂大量完整的调用流程样本,就是 System 工具说明书、User 提问、Assistant 输出结构化 JSON 调用、Tool 返回、再 Assistant 总结这种,让模型学会模仿输出规范 JSON;RLHF 人类反馈强化学习,通过人类打分训练奖励模型,再用强化学习调主模型,让它建立边界感——能直接回答就别调工具。运行时就是 Function Calling:应用把工具 schema 给模型,模型判断要调就输出 tool_calls JSON,代码执行后结果塞回,模型再总结。
因为 SFT 只解决「会不会调」,不解决「该不该调」。SFT 的样本里该调的场景占绝大多数,模型会过拟合这种积极调用的倾向,不知道什么时候不该调——就像刚培训完的新员工,问他一加一等于几他也去查手册。RLHF 才是建立边界感的关键,通过人类对多种处理方式的打分,训练奖励模型,再让主模型学会微妙判断:能直接回答就直接答,需要实时数据或执行操作才调。
RLAIF 是 RLHF 的低成本变体,全称是 AI Feedback,用另一个 AI 模型代替人类标注员来打分。因为人工标注成本高、速度慢,用 AI 打分成本更低、速度更快,业界现在也很常用,效果和人工反馈相差不大。它同样用于训练奖励模型,让主模型建立工具调用的边界感。