尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Xinference 模型指南:glm4-chat(GLM-4 9B)的启动配置、量化选择与工具调用解析

Xinference 模型指南:glm4-chat(GLM-4 9B)的启动配置、量化选择与工具调用解析 Xinference 模型指南glm4-chatGLM-4 9B的启动配置、量化选择与工具调用解析【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference本文是 Xinference 内置模型 glm4-chat 的完整技术指南围绕其在当前仓库中的模型规格定义pytorch 与 ggufv2 两种格式、xinference launch启动命令、量化方法选型、引擎支持差异以及 GLM-4 系列特有的工具调用Function Call解析机制展开。读完本文你将掌握如何在 Xinference 中一键拉起 glm4-chat、如何按硬件与部署场景选择正确的格式与量化等级并理解其底层 Chat Template、停止词与 Tool Parser 的协作原理。模型概述GLM-4 开源版本在 Xinference 中的内置支持glm4-chat 是智谱 AIZhipu AI推出的 GLM-4 系列最新一代预训练模型的开源版本。在 Xinference 中它以内置模型builtin的形式注册在模型家族列表中其全部元数据定义于 xinference/model/llm/llm_family.json对应的文档页面为 doc/source/models/builtin/llm/glm4-chat.rst。该模型家族在 Xinference 中的核心属性如下Context Length上下文长度131072128KModel Name模型名glm4-chatLanguages支持语言en英文、zh中文Abilities模型能力chat对话、tools工具调用DescriptionGLM4 是智谱 AI 推出的 GLM-4 系列最新一代预训练模型的开源版本这些字段直接取自 llm_family.json 中glm4-chat条目的context_length、model_lang、model_ability与model_description等配置而文档页面则是由 doc/templates/llm.rst.jinja 模板基于该 JSON 数据渲染生成的——这意味着文档中的每一项规格都与仓库内的真实注册信息一一对应可以作为部署时的权威参考。模型规格与启动命令glm4-chat 在 Xinference 中提供两个 Model Spec模型规格分别对应两种不同的模型格式pytorch与ggufv2。两者的核心差异在于pytorch 格式保留完整精度权重适用于 GPU 环境ggufv2 格式提供从 2-bit 到 16-bit 的丰富量化等级可在显存受限的 GPU 或纯 CPU 环境下运行。Model Spec 1pytorch 格式9B无量化该规格的参数如下Model Format模型格式pytorchModel Size参数量9 Billion90 亿参数Quantizations量化等级none不量化Engines推理引擎vLLM、TransformersModel IDzai-org/glm-4-9b-chat-hfModel Hubs模型源Hugging Face、ModelScope在 llm_family.json 中该规格的model_src同时注册了 Hugging Facezai-org/glm-4-9b-chat-hf锁定 revisionc7f73fd9...、ModelScopeZhipuAI/glm-4-9b-chat-hf以及 OpenMind HubAI-Research/glm-4-9b-chat三个来源Xinference 会根据部署环境的网络与配置自动选择合适的模型源进行下载。启动命令如下将${engine}替换为vLLM或Transformers将${quantization}替换为上方列出的量化等级nonexinference launch --model-engine ${engine} --model-name glm4-chat --size-in-billions 9 --model-format pytorch --quantization ${quantization}实际部署时--model-format pytorch对应的量化值只能取none即xinference launch --model-engine vLLM --model-name glm4-chat --size-in-billions 9 --model-format pytorch --quantization noneModel Spec 2ggufv2 格式9B多量化等级该规格的参数如下Model Format模型格式ggufv2Model Size参数量9 BillionQuantizations量化等级Q2_K、IQ3_XS、IQ3_S、IQ3_M、Q3_K_S、Q3_K_L、Q3_K、IQ4_XS、IQ4_NL、Q4_K_S、Q4_K、Q5_K_S、Q5_K、Q6_K、Q8_0、BF16、FP16Engines推理引擎vLLM、llama.cppModel IDlegraphista/glm-4-9b-chat-GGUFModel Hubs模型源Hugging Face、ModelScope启动命令如下将${engine}替换为vLLM或llama.cpp将${quantization}替换为上方列出的任一量化等级xinference launch --model-engine ${engine} --model-name glm4-chat --size-in-billions 9 --model-format ggufv2 --quantization ${quantization}例如使用 Q4_K_M 是显存与精度均衡的常见选择但注意当前注册的量化列表中以 Q4_K 家族Q4_K_S、Q4_K为准请从上方列表中选择。一个具体示例llama.cpp 引擎 Q4_K 量化xinference launch --model-engine llama.cpp --model-name glm4-chat --size-in-billions 9 --model-format ggufv2 --quantization Q4_KGGUF 文件的命名遵循 llm_family.json 中的model_file_name_template模板glm-4-9b-chat.{quantization}.gguf即启动时指定的--quantization会直接映射到具体的 GGUF 文件名例如glm-4-9b-chat.Q4_K.gguf。该模板在 Hugging Face 与 ModelScope 两个模型源中一致且两者均锁定了各自的 revisionHugging Face 为0155a14e...。量化等级选择与引擎匹配建议ggufv2 规格共提供 17 种量化等级覆盖从极致压缩到接近无损的不同档位可按如下逻辑选择量化等级特点与适用场景Q2_K / IQ3_XS / IQ3_S / IQ3_M极高压缩比显存占用最低适合小显存或纯 CPU 场景精度损失较大Q3_K_S / Q3_K_L / Q3_K中低精度档位进一步平衡体积与质量IQ4_XS / IQ4_NL / Q4_K_S / Q4_K主流实用档位在显存占用与输出质量间取得良好平衡社区实践中最常选用Q5_K_S / Q5_K高质量档位接近原始精度显存需求更高Q6_K / Q8_0 / BF16 / FP16高保真档位几乎无损适合显存充裕的 GPU 部署引擎选择上需要特别注意pytorch 格式仅支持 vLLM 与 Transformers 两个引擎ggufv2 格式支持 vLLM 与 llama.cpp 两个引擎。其中 llama.cpp 引擎对 GGUF 格式原生友好支持在 CPU 或 Apple Silicon 上运行vLLM 引擎则适合追求高吞吐的 GPU 在线推理服务。务必保持--model-format与所选引擎的匹配否则启动时会因模型规格与引擎不兼容而失败。底层原理Chat Template、停止词与工具调用解析glm4-chat 的能力列表中的tools并非虚名其在 Xinference 中有完整的实现支撑涉及三个关键环节Chat Template、停止词Stop Tokens与 Tool Parser。Chat Template 与停止词在 llm_family.json 中glm4-chat 注册了完整的chat_templateJinja2 模板其系统提示词要求模型扮演基于智谱AI训练的语言模型 GLM-4 模型开发的人工智能助手并内置了pythonJupyter 代码执行、simple_browser联网搜索与页面抓取、cogview文生图等 GLM-4 特有的工具描述供模型在对话中自主决策调用。同时注册的停止词配置为stop_token_ids151329、151336、151338stop|endoftext|、|user|、|observation|这些停止词保证模型输出在遇到角色分隔符或观测结果标记时及时截断是对话与工具调用循环正确运转的基础。在 xinference/model/llm/tests/test_llm_family.py 的测试用例中glm4-chat的chat_template、stop_token_ids、stop会被逐一与BUILTIN_LLM_PROMPT_STYLE[glm4-chat]中的内置值比对从测试层面保障了这些配置的一致性。GLM-4 专用 Tool ParserXinference 通过 tool_parsers 注册机制 为不同模型家族注册专门的工具调用解析器。glm4-chat 对应的是glm4解析器实现在 xinference/model/llm/tool_parsers/glm4_tool_parser.pyGlm4ToolParser通过register_tool_parser(glm4)注册与 llm_family.json 中glm4-chat条目的tool_parser: glm4字段一一对应其核心正则r\s*json\s*(.*?)\s*用于从模型输出中提取json ...包裹的工具调用块extract_tool_calls将模型输出解析为(content, function_name, parameters)三元组解析成功时 content 为None、返回函数名与参数字典解析失败时回退为原始文本extract_tool_calls_streaming则处理流式输出的工具调用解析同样支持 dict 形式的工具调用输入。配套的单测位于 xinference/model/llm/tool_parsers/tests/test_glm4_tool_parser.py其中验证了get_current_weather这类典型 Function Call 场景{name: get_current_weather, arguments: {location: 上海}}会被正确解析为(None, get_current_weather, {location: 上海})覆盖了普通与流式两种调用路径。通过 OpenAI 兼容 API 使用 glm4-chat模型启动后Xinference 会为其暴露统一的 OpenAI 兼容推理 API。你可以通过 RESTful 客户端或标准 OpenAI 协议直接调用curl http://localhost:9997/v1/chat/completions \ -H Content-Type: application/json \ -d { model: glm4-chat, messages: [{role: user, content: 你好请介绍一下你自己}] }工具调用场景下模型会依据 Chat Template 中注册的python、simple_browser、cogview等工具定义决定是否发起调用Xinference 侧的glm4Tool Parser 负责将模型输出的 JSON 工具调用解析为结构化结果供上层业务逻辑执行。总结glm4-chat 作为 GLM-4 系列的开源对话模型在 Xinference 中以内置模型形式开箱即用pytorch 格式面向 GPU 高吞吐场景vLLM / Transformersggufv2 格式通过 17 档量化覆盖从 CPU 到 GPU 的各类部署环境其 128K 上下文、中英双语与完整工具调用能力均由 llm_family.json 中的 Chat Template、停止词与glm4Tool Parser 在底层协同实现。对照 llm.rst.jinja 模板可知本文所述规格与命令与仓库实际注册数据完全一致可直接复制使用。【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表