面试官说说大模型是怎么学会调用外部工具的‍♂️我大模型本身就很聪明嘛参数量够大涌现能力一出来自然就会调用工具了不需要额外训练吧面试官涌现能力说的是参数量到某个阈值后模型突然展现出小模型没有的理解和推理能力这是「量变引起质变」。但工具调用要的是输出可解析的结构化 JSON这是预训练语料里根本不存在的模式不是参数量大了就自动会的。没训练过的模型遇到「查天气」只会说「我需要查天气 API」而不是输出可解析的 JSON 调用请求。你说说到底是怎么训练出来的‍♂️我那应该是用 SFT 微调出来的吧给模型喂大量工具调用的样本它学会了就行了。面试官SFT 只解决了「会不会调」的问题但「该不该调」呢用户问「11 等于几」模型也去调计算器工具这不是画蛇添足吗SFT 之后还有一个关键阶段你完全没提到回去把 RLHF 在工具调用训练中的作用搞清楚再来。看得出来很多人知道 SFT 但忽略了 RLHF 在工具调用中的关键作用。下面我把「模型怎么学会调工具」这件事完整拆开两个阶段各自解决什么问题一次讲透。 简要回答这道题我分两块来讲模型怎么被训练出工具调用能力以及训练好之后运行时是怎么工作的。训练层面靠两个阶段SFT监督微调Supervised Fine-Tuning给模型喂大量「工具调用示范对话」让它通过模仿学会「看到工具描述 - 判断要不要调 - 输出结构化 JSON 请求」这整套流程RLHF基于人类反馈的强化学习Reinforcement Learning from Human Feedback收集人类对「哪种回答更好」的判断训练一个打分器再用这个分数反复调整模型让它学会什么时候不应该调工具。运行层面每次请求时你的应用代码把工具描述叫 schema可以理解为工具的说明书传给模型模型如果判断需要工具就输出一段结构化的tool_callsJSON你的代码拿到这段 JSON 去真正执行把结果塞回对话模型再给出最终答案。有一点非常关键模型全程只是在「下指令」真正执行工具的是你的代码不是模型本身。这套「模型决策、代码执行」的运行时机制就是我们常说的Function Calling。 详细解析原始 LLM 的世界为什么不会调工具想象一个人从出生到成年只生活在文字的世界里读过几乎所有的书却从没接触过任何工具没用过锤子、没开过车、也没见过 API 是什么。你突然跟他说「去帮我查一下天气 API」他最多只会用语言描述「我需要查天气 API 来获取数据……」绝对不会真的去操作工具。大语言模型在预训练阶段经历的就是这样一个过程学的是给定前面的文字预测下一个 tokentoken 可以理解为模型处理文字的最小单位大致对应一个字或半个词整个训练过程完全是在文本空间里进行的模型从未见过「工具调用」这件事。所以哪怕你在 prompt 里写「你可以调用天气 API」没经过专门训练的模型也只会生成一段自然语言描述比如「我需要调用天气 API 来回答你」而不是输出一段可以被程序解析的 JSON 调用请求。工具调用能力不是天生的是后天「教」出来的。怎么教靠两个阶段SFT 教会怎么调RLHF 教会什么时候调。第一阶段SFT让模型「见过」工具调用SFT 是 Supervised Fine-Tuning监督微调的缩写核心思路非常直接给模型看大量正确的示例让它学会模仿。就像培养一名新员工前期让他看几百份填好的工单他自然就学会了「遇到这类问题该怎么写工单、该走哪个流程」。要让模型学会工具调用就要构造专门的训练数据。一条完整的训练样本长这样首先是System 消息也就是工具说明书列出模型现在有哪些工具可用每个工具叫什么名、能做什么事、需要什么参数模型从这里「认识」工具。接着是User 消息就是用户的提问比如「北京今天天气怎么样」。然后到了最关键的部分Assistant 的调用请求。注意这里的「正确答案」不是自然语言回答而是结构化 JSON类似{tool_calls: [{name: get_weather, arguments: {city: 北京}}]}。这就是模型需要学会输出的东西。为什么是 JSON 而不是自然语言因为 JSON 格式固定、机器好解析你的代码才能准确读到「调哪个工具、参数是什么」。再往后是Tool 消息模拟工具返回的数据比如「晴15°C东北风3级」。最后是Assistant 的最终回答模型看到工具结果后给出自然语言答案「北京今天天气晴朗气温15°C……」。模型在几十万甚至上百万条这样的样本上反复训练就学会了整套流程识别工具定义、判断要不要调、输出格式规范的 JSON 请求。训练数据的来源通常有两种人工标注成本高但质量好一般用于构造核心的种子数据用更强的模型比如 GPT-4自动批量生成再人工抽查成本低、量大是业界现在的主流做法。SFT 的短板会了但不知道「该不该调」SFT 让模型学会了「调工具」这个动作但它不知道什么时候该调、什么时候不该调。你可以想象一个刚培训完的新员工过于热情每件事都想走流程有人问他「11 等于几」他也要去查手册这明显多此一举直接回答就行。为什么会这样因为 SFT 的训练样本里「该调的场景」占了绝大多数毕竟我们就是要教它调工具模型在模仿的过程中会过拟合这种「积极调用」的倾向没看过足够多的「不该调」反例。再加上训练信号只告诉它「这是正确答案」没有告诉它「为什么不该调也是一种正确」所以它的边界感天然就弱。SFT 之后的模型也有类似的毛病可能对简单问题也尝试调工具或者遇到工具调用失败时不知道该怎么处理行为边界感很弱。这个问题需要第二阶段的 RLHF 来解决。第二阶段RLHF用反馈建立边界感RLHF 是 Reinforcement Learning from Human Feedback人类反馈强化学习的缩写。如果说 SFT 是让新员工看示例学规范那 RLHF 就是老板持续给他的工作表现打分帮他建立判断力。它的流程分四步第一步是生成多样回答。对同一个问题让模型生成几种不同的处理方式有的调了工具有的直接回答有的参数填错了故意覆盖各种情况。第二步是人类打分。标注员评判哪种回答更合理比如「11 等于几」直接回答最好「北京天气怎么样」调工具才对。这批打分数据就记录了人类的判断偏好。第三步是训练奖励模型。用这批打分数据单独训练一个小模型专门负责打分它不回答问题只判断「这个回答人类会喜欢吗」。你可以把它理解成一个「会打分的裁判」。这一步很关键也容易被忽略奖励模型的打分能力本身就是从人类标注员的偏好数据里学出来的换句话说人类的判断被「蒸馏」进了这个裁判。所以如果人类标注员自己水平不稳定、标准不一致奖励模型就会学到一个歪的打分标准后面主模型再怎么被它优化方向也是歪的。第四步是用强化学习优化主模型。拿奖励模型的打分不断调整主模型的参数让主模型越来越倾向于产出「高分回答」也就是边界感更准确的工具调用行为。经过这个过程模型逐渐学会了更微妙的判断能直接回答的就直接回答不要多此一举调工具需要实时数据、需要执行操作的才去调。这个边界感是 SFT 给不了的必须靠反馈信号来塑造。RLAIFAI Feedback是 RLHF 的变体用另一个 AI 代替人类标注员打分成本更低、速度更快现在业界也很常用效果和人工反馈相差不大。运行时训练好之后怎么用训练阶段结束模型上线了。每次你的应用调用模型时流程是这样的首先你的应用代码把「有哪些工具可用」打包成 JSON 格式叫做 schema也就是工具的说明书连同用户的问题一起发给模型。比如告诉模型「你现在有一个天气查询工具接受 city 参数返回该城市的实时天气。」模型读完工具定义和用户问题后做了一个判断这个问题需要查实时天气我自己不知道需要工具帮忙。于是它不直接回答而是输出一段结构化的 JSON{ tool_calls: [{ name: get_weather, arguments: {city: 北京} }]}注意模型到这里就停了它只是告诉你「我需要调这个工具参数是这个」它自己不会去执行。接下来就轮到你的代码上场了。你的应用代码解析这段 JSON找到对应的函数真正去调天气 API拿到实际数据。拿到结果之后你把工具返回的结果比如「北京今天晴15°C东北风3级」塞回对话历史再次调用模型模型这才组织成一句话回答用户。这套「模型输出结构化调用请求 - 代码执行 - 结果喂回」的机制有一个专有名词Function Calling。换句话说Function Calling 就是大模型工具调用能力在运行时的具体实现形式。一个关键认知模型只负责「决策」不负责「执行」这是理解工具调用最重要的一点。模型在整个过程中只做了一件事判断要调哪个工具、参数填什么然后把这个决策用 JSON 格式输出出来。真正去跑函数、访问网络、查数据库的是你写的宿主程序代码。这个分工设计得很合理LLM 擅长理解意图和推理但不应该有直接操作系统资源的权限宿主程序负责执行可以做权限控制、参数校验、执行沙箱等安全措施。这样的设计让工具调用既灵活又安全是目前主流工具调用框架的核心设计原则。 面试总结回顾开头的面试对话第一个雷是以为模型参数量够大就自然会调工具这是把「语言涌现能力」和「工具调用能力」搞混了。工具调用需要输出结构化 JSON这不是预训练能学到的必须经过专项训练。第二个雷是只知道 SFT 而忽略了 RLHFSFT 解决「会不会调」RLHF 解决「该不该调」两个阶段缺一不可。面试回答这道题核心要讲清楚两个阶段各自的作用。SFT 通过大量包含完整工具调用流程的对话样本让模型学会识别工具定义、判断要不要调、输出规范 JSON 的整套流程RLHF 通过人类打分训练奖励模型再用强化学习调整主模型让它建立「能直接回答就不调工具」的边界感。另外要提到运行时的 Function Calling 机制模型只负责决策输出 JSON代码负责执行这个分工设计是关键认知。如果能再补充 RLAIF 作为 RLHF 的低成本替代方案就更完整了。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】