先这样答
先说为什么预训练学不会。预训练的目标是预测下一个 token,语料是互联网文本,里面没有「给定工具描述、输出标准调用 JSON」这种成对样本。没训练过的模型遇到查天气的问题,只会输出「我需要查询天气」这句自然语言描述,而不是可被程序解析的调用请求——描述意图和输出结构化请求是两回事。
所以能力靠两个阶段补。第一阶段 SFT:喂大量包含工具调用的完整对话样本,每条覆盖工具定义、用户问题、模型应输出的结构化调用、工具执行结果、最终答案。数据要覆盖全场景:单工具调用、多工具并行、调用失败与重试、不需要工具直接回答、多轮对话中的调用,缺一类就在对应场景翻车。
第二阶段 RLHF:SFT 之后模型容易过激,什么问题都想调工具,用户问一加一也去调计算器。用人类偏好标注训练奖励模型,再用强化学习调整,让模型建立「能直接回答的直接回答,需要实时数据才调工具」的边界感。
面试官会怎么追问
- 「训练数据从哪来?」 三个来源按场景配比:真实调用日志回灌(最真但量少)、人工构造的合成样本(可控但要带验收标准)、开源工具调用数据集清洗(量大要质检)。
- 「调用失败重试的样本长什么样?」 对话里包含失败的调用结果和模型的合理反应:换参数重试、换工具、或向用户澄清,让模型学会失败不是死循环。
- 「不训练能凑合吗?」 能用提示词加少样本示例让强模型输出调用格式,但稳定性和边界感不如专项微调,高频生产场景通常还是微调过的模型。
回答的坑
答「参数量够大涌现出来的」。涌现说的是理解推理能力,结构化调用输出是训练出来的行为模式,混为一谈直接挂。
只讲 SFT 不讲 RLHF,「该不该调」这个边界感是必追的点。
同系列的题
—— 本题完 ——