ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

self-llm 的 MiniCPM5-1B 如何启用 XML 风格工具调用与 vLLM tool-call-parser

2026/9/13 23:37:28 拓冰建站 浏览量
self-llm 的 MiniCPM5-1B 如何启用 XML 风格工具调用与 vLLM tool-call-parser self-llm 的 MiniCPM5-1B 如何启用 XML 风格工具调用与 vLLM tool-call-parser【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm如果你已经在用 vLLM 部署MiniCPM5-1B希望模型在收到带tools的对话请求时能输出工具调用并且让客户端直接拿到 OpenAI 兼容的tool_calls字段而不是自己去解析原始文本那么需要做的就是启动 vLLM 服务时加上--tool-call-parser minicpm5。MiniCPM5-1B原生以 XML 风格输出工具调用形如function ... /functionvLLM 较新版本内置的minicpm5解析器负责把这种输出转换成tool_calls。本文基于 self-llm 仓库中 01-MiniCPM5-1B-vLLM 部署调用 的实测流程整理覆盖从环境准备到发起工具调用请求的完整路径。文档实测基础环境为 ubuntu 22.04、python 3.12、NVIDIA 驱动 580.105.08、RTX 4090 D24G、torch 2.11.0cu128、vllm 0.23.0。默认你已配置好 PyTorchCUDA环境如未配置需先自行安装。准备安装依赖并下载模型依赖安装命令文档同时给出清华 PyPI 镜像源配置python -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install modelscope pip install transformers5.6 pip install vllm0.21 pip install openai其中vllm0.21是文档给出的安装版本要求vLLM 文档同时说明“较新版本支持minicpm5解析器”其实测环境使用的 vllm 为 0.23.0。如果 vLLM 启动时报ModuleNotFoundError: No module named flash_attn.ops文档给出的原因是环境里装了flash-attn-4会留下一个空的flash_attn命名空间包而 vLLM 的 rotary 模块检测到flash_attn后会尝试导入其.ops子模块。解决办法是卸载该包并删除残留的空目录——注意下面第二条命令会删除 site-packages 下的flash_attn目录仅适用于确认它是由错误安装的flash-attn-4留下的空目录的情况删除后 vLLM 会自动回退到自带实现pip uninstall flash-attn-4 rm -rf $(python -c import site;print(site.getsitepackages()[0]))/flash_attn模型下载使用 modelscope 的snapshot_download。新建model_download.py# model_download.py from modelscope import snapshot_download model_dir snapshot_download(OpenBMB/MiniCPM5-1B, cache_dir/root/autodl-tmp) print(f模型下载完成保存路径为{model_dir})执行python model_download.py。cache_dir需改成你自己的模型下载路径本文后续命令以文档中的/root/autodl-tmp/OpenBMB/MiniCPM5-1B为模型路径如你的路径不同请相应替换。启动 vLLM 服务加 --tool-call-parser minicpm5文档给出的基础启动命令为vllm serve /root/autodl-tmp/OpenBMB/MiniCPM5-1B \ --served-model-name MiniCPM5-1B \ --max-model-len 4096 \ --gpu-memory-utilization 0.6 \ --trust-remote-code \ --host 0.0.0.0 --port 8000常用参数来自文档说明--host/--port服务地址与端口--model模型路径本例写在serve后面作为位置参数--served-model-name服务对外的模型名称--max-model-len最大上下文长度1B 模型在 24G 显存上可设4096或更大--gpu-memory-utilization显存占用比例1B 模型很小0.6 即可--trust-remote-code信任远程代码启用工具调用时在命令中追加--tool-call-parser minicpm5即vllm serve /root/autodl-tmp/OpenBMB/MiniCPM5-1B \ --served-model-name MiniCPM5-1B \ --max-model-len 4096 \ --gpu-memory-utilization 0.6 \ --trust-remote-code \ --host 0.0.0.0 --port 8000 \ --tool-call-parser minicpm5验证服务启动成功vLLM 启动日志中模型架构被识别为LlamaForCausalLM这是 MiniCPM5-1B 的标准架构无需自定义算子。出现Application startup complete.即说明服务成功启动。文档实测启动日志节选示例输出(APIServer) INFO [model.py:611] Resolved architecture: LlamaForCausalLM (EngineCore) INFO [core.py:113] Initializing a V1 LLM engine (v0.23.0) ... (EngineCore) INFO [default_loader.py:397] Loading weights took 0.52 seconds (EngineCore) INFO [model_runner.py:319] Model loading took 2.09 GiB and 2.14 seconds (APIServer) INFO: Application startup complete.首次启动会触发torch.compile编译约 19s编译结果会缓存后续启动更快。再确认模型已注册curl http://localhost:8000/v1/models文档实测返回值示例输出{ object: list, data: [ { id: MiniCPM5-1B, object: model, owned_by: vllm, root: /root/autodl-tmp/OpenBMB/MiniCPM5-1B, max_model_len: 4096 } ] }返回中id为MiniCPM5-1B、max_model_len为 4096即与启动参数一致。发起工具调用请求并观察 tool_callsvLLM 服务兼容 OpenAI API 协议。下面这段带tools的请求示例取自同目录的 02-MiniCPM5-1B-SGLang 部署调用同一模型、同一 OpenAI 兼容接口base_url指向本机 8000 端口对 vLLM 服务同样适用from openai import OpenAI client OpenAI(api_keyEMPTY, base_urlhttp://localhost:8000/v1) tools [{ type: function, function: { name: get_weather, description: 获取指定城市的天气, parameters: { type: object, properties: {city: {type: string, description: 城市名}}, required: [city], }, }, }] response client.chat.completions.create( modelMiniCPM5-1B, messages[{role: user, content: 北京今天天气怎么样}], toolstools, ) print(response.choices[0].message.tool_calls)判断方式按文档对解析器职责的描述minicpm5解析器的作用就是把模型输出的 XML 风格function ... /function转换为 OpenAI 兼容的tool_calls。因此请求里传入tools后观察返回的message.tool_calls是否出现get_weather的调用结构即可确认解析链路生效。文档没有给出 vLLM 下tool_calls的实测返回示例请勿假定固定输出。另外vLLM 文档提到MiniCPM5-1B内置think模板可通过extra_body{chat_template_kwargs: {enable_thinking: False}}按请求级别关闭思考模式文档推荐非思考模式参数为temperature0.7, top_p0.95。若发现content开头先输出一段think ... /think再给回答这是该模型后训练形成的习惯属文档记录的已知现象。限制与边界说明后端选择SGLang 部署文档中引用了官方提示——工具调用场景下SGLang 是推荐后端其内置minicpm5解析器同样把 XML 风格输出转换为tool_calls参数写法为--tool-call-parser minicpm5或--tool-call-parser auto。vLLM 侧文档的表述是“较新版本支持minicpm5解析器”具体用法指向 MiniCPM 官方 cookbook。两条路径都可行选型上文档明确把 SGLang 列为推荐。版本前提minicpm5解析器依赖较新版本的 vLLM。文档依赖要求为vllm0.21实测环境为 0.23.0如果你的 vLLM 版本启动时不识别--tool-call-parser minicpm5说明版本不在支持范围内需要先升级 vLLM 或改用 SGLang 路径。本文的启动日志与接口返回均来自文档实测环境RTX 4090 D 24G、vllm 0.23.0在你的硬件与版本上数值加载耗时、KV cache 大小等会不同这些日志只用于判断启动流程走到哪一步不作为固定校验值。【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考