【免费下载链接】phi-4-mini-instruct-oga-dml项目地址https://ai.gitcode.com/hf_mirrors/amd/phi-4-mini-instruct-oga-dml点击查看免费下载想让本地大模型也具备工具调用Function Calling能力吗 phi-4-mini-instruct-oga-dml 是微软 Phi-4-mini-instruct 经 Quark 量化、由 AMD OGA Model Builder 构建的ONNX 模型专为 AMD Ryzen AI 硬件优化。本文将带你搞清楚它的聊天模板chat_template.jinja与特殊Tokenadded_tokens.json如何一步步解锁本地 Function Calling让 3.8B 小模型在 NPU 上也能调用工具。为什么本地模型也要会调工具大模型本身只会说不会做。想要查询天气、查数据库、执行计算就需要Function Calling机制模型负责决策判断这件事需要调工具并按约定格式输出工具名和参数应用负责执行真正调用工具函数把结果喂回模型模型负责总结基于工具结果生成自然语言回答。云端 API 都自带这套机制那本地模型行不行行——前提是格式对本地模型不会魔法般地输出标准工具调用它只是照着训练时的格式说话。这个格式由两样东西定义聊天模板和特殊Token。理解这两点你就理解了本地 Function Calling 的全部奥秘。聊天模板解析Function Calling 的地基 ️仓库中的 chat_template.jinja 只有一行Jinja 模板语法它负责把system、user、assistant多轮消息渲染成模型认识的原始文本|system|你是一个有帮助的助手|/tool||end| |user|北京今天多少度|end| |assistant|逐段拆解它的规则消息角色渲染结果说明system无工具\|system\|内容\|end\|普通系统提示system带 tools\|system\|内容\|tool\|工具JSON\|/tool\|\|end\|工具定义随系统消息下发user\|user\|内容\|end\|用户提问assistant\|assistant\|内容模型回答的起始信号模板中最关键的一行逻辑当system消息里携带了tools字段时工具列表会被直接拼接进系统消息内部包裹在|tool|与|/tool|之间。也就是说模型知道有哪些工具可调靠的不是什么高级接口而是这段被模板拼好的文本。经验之谈本地模型工具调用失灵九成是模板没对齐。用错了模板模型可能一本正经地用自然语言假装调工具而不是输出可解析的结构。特殊Token清单模型的标点符号 ️特殊Token 在 added_tokens.json 中注册完整映射见 tokenizer_config.json词表大小 200064。与 Function Calling 直接相关的有这 8 个特殊Token作用\|system\|系统提示的开头\|user\|用户消息的开头\|assistant\|模型回答的开头也是生成起始信号\|end\|单条消息结束\|tool\|/\|/tool\|工具定义的成对边界\|tool_call\|/\|/tool_call\|工具调用的成对边界\|tool_response\|工具执行结果的标记\|tag\|其他标记用途注意一个细节|tool|、|tool_call|等在 tokenizer_config.json 中标记为special: false即它们参与普通分词流程而非仅作为控制符存在——这正是模型能在生成时自然吐出这些边界标记、从而输出可解析工具调用的原因。完整流程一次工具调用的旅程 把上面的模板和 Token 串起来一次 Function Calling 的完整链路是这样的下发工具定义应用把工具列表放进system消息的tools字段聊天模板渲染为|system|…|tool|[工具JSON]|/tool||end|用户提问|user|北京今天多少度|end|模型发起调用生成以|assistant|开头、内部用|tool_call|…|/tool_call|包裹的调用内容工具名 JSON 参数应用执行解析出工具名和参数真正执行get_weather(北京)回传结果把执行结果包在|tool_response|标记中追加进对话历史模型收尾基于工具结果生成最终自然语言回答并以|end|结束。一句话总结模板定格式Token 定边界应用负责干活——三者缺一不可。避坑指南新手最容易踩的 3 个坑 ⚠️坑 1模板不匹配。直接拿裸模型对话、或套用别的模型模板模型会说人话而非输出标准工具调用。请始终使用仓库自带的 chat_template.jinja。坑 2工具没塞进 system 消息。按模板规则tools必须挂在system消息上才会被渲染进|tool|区块单独发一条 tool 角色消息是不生效的。坑 3上下文预算太小。这个 OGA 版本在 genai_config.json 中context_length为16384标签npu_16K面向 NPU 显存预算远小于原版 Phi-4-mini 的 131072。工具定义和调用历史都占 Token多轮工具调用 冗长工具 JSON 会快速吃满 16K建议控制工具数量并精简工具描述。如何获取与体验模型 完整模型文件在本仓库中核心文件一览文件说明model.onnx model.onnx.dataONNX 模型本体文件较大建议从仓库下载chat_template.jinja聊天模板Function Calling 格式定义added_tokens.json / special_tokens_map.json特殊Token 定义tokenizer.json / tokenizer_config.json / vocab.json / merges.txt分词器全套文件genai_config.jsonOGA / ONNX Runtime GenAI 运行配置几点上手提示量化方案AWQ / Asymmetric / BFP16 激活 / UINT4 权重详见 README.md小显存也能跑本地执行genai_config.json中已声明dml执行提供程序即面向 DirectML / AMD Ryzen AI NPU 的推理路径可直接配合 OGA 工具链加载采样参数配置默认do_sample: false贪心解码工具调用场景下保持贪心解码通常更稳定、输出更可预测。写在最后本地 Function Calling 并没有想象中神秘一份对齐的聊天模板 一套定义清晰的特殊Token 一个负责执行工具的应用层三者组合起来phi-4-mini-instruct-oga-dml 这样的 3.8B 小模型就能在 AMD Ryzen AI 笔记本上完成感知—调用—总结的完整闭环。动手试试吧把温度调低、模板对齐、工具描述写短一点你的本地智能体就迈出了第一步。赞分享【免费下载链接】phi-4-mini-instruct-oga-dml项目地址https://ai.gitcode.com/hf_mirrors/amd/phi-4-mini-instruct-oga-dml点击查看免费下载相关推荐工具调用与思考模式怎么用gemma-4-31B-it-w4a4-mxfp4聊天模板与特殊token详解工具调用与思考模式怎么用gemma 4 31B it w4a4 mxfp4聊天模板与特殊token详解 gemma 4 31B it w4a4 mxfp4 是大模型模型量化本地部署人工智能多模态Qwen2.5-Coder-7B-Instruct 函数调用实战Function Calling 聊天模板手把手教程Qwen2.5 Coder 7B Instruct 函数调用实战Function Calling 聊天模板手把手教程 Qwen2.5 Coder 7B Ins第一次看懂dml后缀phi-4-mini-instruct-oga-dml背后的ONNX Runtime DirectML推理原理第一次看懂dml后缀phi 4 mini instruct oga dml背后的ONNX Runtime DirectML推理原理 你是否见过文件名带 dml创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考