)
本文收录于专栏《AI Agent原理与实战》2026版—— 专栏系统覆盖 AI Agent 的记忆、工具、插件与实战点击订阅可跟踪后续更新。本课定位进入研究向纵深当 prompt 优化到头模型本身能不能更强本课讲工具调用微调——数据构造三路径、LoRA 全链路国产基座 Qwen/GLM、何时微调 vs 不微调决策表。动手派可略读自建模型团队必修。阶段 6训练与评估 来源课程自研补充关键字Function Calling微调、SFT监督微调、LoRA、训练数据构造、开源基座、工具调用训练、模型微调、Qwen GLM本节目录30.1 为什么工具调用需要专门训练30.2 训练数据构造三条来源路径30.3 微调流程LoRA 全链路Windows 优先30.4 何时微调 vs 不微调决策表概念讲解30.1 为什么工具调用需要专门训练第 7 课讲过工具调用的 API 层机制把工具的 JSON Schema 告诉模型模型输出结构化调用请求。这条链路对前沿大模型是开箱可用的但对两个群体始终是短板小模型7B 级开源基座没见过足够多工具调用格式的训练数据输出 JSON 合法率、参数类型遵从率、多轮编排能力都明显掉队。前沿模型的多轮场景多步工具编排先查 A用 A 的结果再调 B中途发现无关请求要克制不调用至今远未解决。截至检索日2026-10Berkeley Function-Calling LeaderboardBFCLv3 的多轮多步类目榜首 Kimi K2 Thinking 约 50.6%、GPT-5.2 约 43.8%basedagi 汇总 2026-05-15 快照非官方渠道【待核实以 gorilla.cs.berkeley.edu 官方榜为准】——一半的多轮工具任务做不对这就是微调仍有的空间。SFTSupervised Fine-Tuning监督微调的定位把调用格式 决策习惯烧进模型参数让 7B 小模型在特定工具集上逼近大模型的表现。30.2 训练数据构造三条来源路径路径成本质量代表工作人工标注极高一条多轮对话 30-60 分钟最高只适合做种子集与评测集强模型蒸馏中中继承幻觉需过滤用 DeepSeek/GLM 等 API 模型批量生成再人工抽检自动合成管线低中高取决于验证闸门APIGenSalesforce、ToolACE华为诺亚、Hammer合成管线是公开生态的主流三个标杆两个国产APIGenarXiv:2406.18518Salesforce从 3,673 个真实 API 端点出发管线三道闸门——查询生成、真实沙箱执行调用验证、答案核对——产出 6 万条可验证样本即 xLAM 数据集HuggingFaceSalesforce/xlam-function-calling-60k。ToolACEarXiv:2409.00920华为诺亚方舟实验室等ICLR 2025自进化合成出 26,507 个 API 池真实 合成对话由多 agent 交互生成双层验证规则检查 模型检查把关覆盖单调用、并行调用、依赖调用、不该调用四类情形。ToolACE-8B 在 BFCL 上达到与 GPT-4 系列相当的水平工具相关性判别 89.17%。HammerarXiv:2410.04587国产端侧函数调用模型系列【待核实出品团队归属一般资料称美团系引用前请核对论文作者单位】主攻鲁棒性——发现现有模型容易被工具命名误导换个函数名就乱调用增强数据集提升对无关函数的敏感度 **函数遮蔽function masking**技术训练小模型在跨 benchmark 泛化上拿到 SOTA。对端侧 agent第 27 课场景有直接参考价值。数据格式的核心是 chat template loss masking工具 Schema 放在 system/工具区assistant 的 tool_call 段是学习目标只有 assistant 生成段计算 lossprompt 侧含工具定义不算——否则模型会浪费容量去背工具文档。数据配比经验纯工具数据会把模型训成见问题就想调工具。ToolACE 论文实测混入通用指令数据后模型通用基准几乎不降工程上常用工具:通用 1:1 到 1:3并保留 10-15% 的不该调用负样本对应 BFCL 的 irrelevance 类目。配比区间是社区经验值非某篇论文的精确结论30.3 微调流程LoRA 全链路Windows 优先LoRALow-Rank Adaptation一句话冻结基座权重在旁路注入低秩矩阵 A×B 训练ToolACE 在 LLaMA-3.1-8B 上作用于全部线性层rank16、alpha32。基座选谁——国内可下载、License 友好的 7B 级开放模型菜单基座出品特点LLaMA-Factory 模板Qwen2.5-7B-Instruct阿里工具调用生态最成熟xLAM/Hammer 多以它为基座qwenGLM-4-9B-Chat智谱仓库zai-org/glm-4-9b-chat128K原生 function calling。注意2025-04 的 0414 版官方说明未做 agent 能力增强主打翻译批量工具调用微调建议用原版 chat2026-10 检索官方 READMEglm4待核实以 LLaMA-Factory 当前 template 列表为准MiMo-7B-SFT小米为推理而生见第 31 课SFT 检查点已开源无专用模板【待核实需自定义或等社区支持】Llama-3.1-8B-InstructMetaToolACE 原配基座文献对照用llama3选基座 → 数据转换(xLAM→sharegpt) → LoRA训练(单卡24GB, Windows可) → 合并权重 → 评测(BFCL 或自建集, before/after)硬件现实7-8B 模型 LoRA bf16 flash-attention单张 24GB 消费级 GPU 可训batch 1-2 梯度累积全参数微调 8B 则需要 4×A100 80GB 级别。Windows 环境说明LLaMA-Factory 官方支持 Windows本课未实测命令为 2026-10 检索的官方文档口径# Windows 10/11 Miniconda 单张 24GB NVIDIA 卡conda create-n llamafactory python3.10-y conda activate llamafactory git clone--depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install-e.[torch,metrics]pip install bitsandbytes--upgrade# Windows 轮子已官方支持llamafactory-cliwebui# 浏览器图形界面, 免命令行Linux/macOS 流程相同Linux 去掉 bitsandbytes 特殊处理macOS 无 CUDA 只适合 0.5B-1.5B 教学。30.4 何时微调 vs 不微调决策表先穷尽便宜手段——按第 8 课 ACI 规范重写工具描述收益经常大于微调再加 few-shot 示例再考虑换更强的 API 模型DeepSeek/GLM/MiniMax 的 API 都原生支持 function calling月费远低于一次训练。都走不通再看触发器微调触发器说明本地/边缘部署延迟、成本、数据不出域参见第 27 课私有 API 格式特殊内部工具与公开生态差异大大模型也没见过格式稳定性JSON 合法率必须接近 100%prompt 压不住高频重复模式固定工具集 固定话术可压缩进参数不微调的信号工具集频繁变更每次换工具都要重训、高质量数据积累不足 1000 条、没有评测集没有 before/after 数字微调收益无法证明。隐性成本基座每次升级要重训、评测集要持续维护、bad case 回归测试。案例实战 A数据转换 LoRA 训练命令【未实测】目标把 xLAM 数据的一个子集转成 LLaMA-Factory 格式对 Qwen2.5-7B-Instruct或 GLM-4-9B做工具调用 LoRA 微调。步骤 1数据转换Windows/Linux 通用纯标准库xLAM 每条含query / answers / tools。这里只取单工具、单轮样本做入门多轮依赖调用建议直接用 ToolACE 开源数据其已按调用模式分好类# conv_xlam2lf.py — xLAM - LLaMA-Factory sharegpt 格式【未实测】importjson,random out[]withopen(xlam_60k.jsonl,encodingutf-8)asf:# HF datasets 导出的 jsonlforlineinf:djson.loads(line)ifisinstance(d[tools],str):d[tools]json.loads(d[tools])iflen(d[tools])!1:# 入门: 只取单工具样本continuetoold[tools][0]out.append({conversations:[{from:human,value:d[query]},{from:function_call,# LLaMA-Factory 约定角色名value:json.dumps({name:tool[name],arguments:d[answers][0]},ensure_asciiFalse)},],tools:json.dumps(d[tools],ensure_asciiFalse),})random.seed(42);random.shuffle(out)json.dump(out[:10000],open(fc_xlam.json,w,encodingutf-8),ensure_asciiFalse,indent1)print(f写入 fc_xlam.json:{min(len(out),10000)}条)在 LLaMA-Factory 的data/dataset_info.json注册fc_xlam:{file_name:fc_xlam.json,formatting:sharegpt,columns:{messages:conversations,tools:tools}}步骤 2LoRA 训练命令行或 WebUI 等价配置# LLaMA-Factory 0.9【未实测】llamafactory-cli train\--model_name_or_pathQwen/Qwen2.5-7B-Instruct\--stagesft--do_train--templateqwen\--datasetfc_xlam--dataset_dirdata\--finetuning_typelora--lora_targetall\--lora_rank16--lora_alpha32--lora_dropout0.05\--per_device_train_batch_size1--gradient_accumulation_steps16\--learning_rate1.0e-4--num_train_epochs2--cutoff_len4096\--bf16--output_dirsaves/qwen25-7b-fc-lora\--logging_steps10--save_steps2001 万条 × 2 epoch24GB 卡预计 2-4 小时量级视样本长度。GLM-4-9B 只需换--model_name_or_path zai-org/glm-4-9b-chat --template glm4模板**【待核实】**GLM-4-9B-0414 不推荐见上表注。训练后llamafactory-cli export合并 LoRA 权重。复现环境说明本案例未在本课程环境实测需 24GB GPU 数小时训练。命令为 LLaMA-Factory 与 xLAM 的公开接口版本变更以两者官方文档为准。LoRA 微调不含 vLLM 依赖Windows 原生可跑通若后续要做 RL第 31 课再迁 WSL2。案例实战 B微调前先跑评测——一个不该微调的真实判定【已实测 2026-10】决策表说没有评测集就不要微调。我们用第 32 课案例 B 的实测数据走一遍完整判定对象GLM-4.7-flashOllama 本地部署19GB MoE8 题工具调用评测 × 3 轮实测结果24/24 全 PASSmean_reward1.000详见第 32 课判定基线已满分 → 按 §四决策表微调无必要——任何微调收益上限为零还会引入通用能力回退的风险。正确动作是把工程精力投到工具描述与多轮编排第 8/7 课反例预告同一套评测脚本换多轮依赖调用题先查 A 用结果再调 B后前沿模型 pass^1 也会落到 50-60% 区间BFCL 多轮榜佐证——那时微调才有发挥空间。这套评测先行 → 数据说话 → 再决定训练的流程就是第 30-32 课三课的内在主线SFT本课解决见过RL第 31 课解决试错评测第 32 课决定值不值。小结工具调用微调的收益集中在小模型、私有工具、格式稳定性、边缘部署四个场景其余情况 prompt 优化优先——GLM-4.7-flash 基线满分的实测就是不微调的活例子。数据是主战场APIGen真实 API 沙箱验证、ToolACE华为诺亚自进化合成双层闸门、Hammer函数遮蔽抗误导三条管线各有侧重。loss masking 只算 assistant 段工具:通用数据 1:1~1:3 配比保留 10-15% 不该调用负样本经验值。LoRA r16/α32 作用于全部线性层是公开可复用的设定7B 单卡 24GB 可训LLaMA-Factory Windows 原生支持基座菜单优先国产Qwen/GLM-4/MiMo。微调前先建评测集用 before/after 证明收益参见第 32 课。交叉引用工具调用机制参见第 7 课《工具调用模式》工具描述优先于微调参见第 8 课《工具设计与 ACI 工程规范》本地化部署动机参见第 27 课《部署、扩展与本地化运行》SFT 之后的进阶路线参见第 31 课《Agentic RL》评测脚本与实测数据参见第 32 课《Agent 评估与未来展望》。扩展阅读 网络提示github.com 需代理clone 可走 ghproxy 加速、push 优先 SSHhuggingface.co 走镜像export HF_ENDPOINThttps://hf-mirror.com学术站 arxiv.org 境内多可直连慢其余评测/规范站需代理pip 安装建议加清华镜像-i https://pypi.tuna.tsinghua.edu.cn/simple。详见总纲附录《国内网络访问与国产适配指南》。APIGen自动函数调用数据管线arXiv:2406.18518https://arxiv.org/abs/2406.18518ToolACE自进化合成 双层验证arXiv:2409.00920ICLR 2025https://arxiv.org/abs/2409.00920Hammer端侧鲁棒函数调用arXiv:2410.04587https://arxiv.org/abs/2410.04587xLAM 函数调用数据集https://huggingface.co/datasets/Salesforce/xlam-function-calling-60kBFCL Berkeley Function-Calling Leaderboardhttps://gorilla.cs.berkeley.edu/leaderboard.htmlLLaMA-Factoryhttps://github.com/hiyouga/LLaMA-FactoryREADME 含 Windows 安装节我的专栏蛋白 / 抗体 / 多肽 / 核酸分子模拟 / 动力学 / 对接药物 / 设计 / 案例AI / Agent / 大模型开源蛋白结构预测分子模拟基础小分子药物设计案例AI Agent系列开源蛋白生成方法实践分子动力学模拟-Amber蛋白药物设计案例化学大模型开源多肽设计模型分子动力学模拟-Gromacs多肽药物设计案例《AI Agent原理与实战》开源多肽性质预测分子动力学模拟-OpenMM开源小分子生成设计CADD中的机器学习模型DNA/RNA药物设计結合自由能高效计算配置《MCP 入门实战》siRNA药物设计模型UCSF DOCK系列我胡师兄说药《AI入门实战2026》ASO药物设计模型rDock系列 LeDock系列 gnina系列《经典机器学习实战》