资讯动态

在 Xinference 中部署 GLM-4V-9B 多模态模型:规格解析、引擎选择与启动实践

发布时间:2026/9/16 20:57:29 来源:尧图企业网站定制
在 Xinference 中部署 GLM-4V-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/inferenceGLM-4V 是智谱 AI 推出的 GLM-4 系列最新一代开源预训练模型同时具备chat对话与vision视觉理解两种能力。本文以仓库文档 doc/source/models/builtin/llm/glm-4v.rst 为主线结合 Xinference 内置的模型注册表与引擎实现源码带你完整掌握该模型的规格信息、vLLM / Transformers 双引擎的差异、启动命令的每个参数以及如何通过 OpenAI 兼容 API 进行多模态推理调用。模型概览GLM-4 系列的多模态开源版本根据 Xinference 内置模型注册表 xinference/model/llm/llm_family.json 中的定义glm-4v 的核心元数据如下属性值Context Length上下文长度8192Model Name模型名glm-4vLanguages支持语言en英文、zh中文Abilities模型能力chat对话、vision视觉理解Description模型描述GLM-4 系列最新一代预训练模型的开源版本由智谱 AIZhipu AI发布Architectures模型架构ChatGLMModelModel Type模型类型chatglm从能力组合可以看出glm-4v 是一个标准的多模态对话模型既可以像普通 LLM 一样进行文本对话也支持输入图片并结合图片内容回答问题。其架构类型为ChatGLMModel底层沿用了 ChatGLM 家族的建模方式。模型规格Model Spec9B PyTorch 权重无量化分支glm-4v 在当前仓库中只注册了一个规格Model Spec 1具体参数如下规格项值Model Format模型格式pytorchModel Size参数量9 Billion90 亿参数Quantizations量化选项none不量化仅原精度权重Engines可用推理引擎vLLM、TransformersModel IDzai-org/glm-4v-9b对应的模型来源model_src在注册表中被配置为三个主流模型分发平台xinference/model/llm/llm_family.jsonHugging Facezai-org/glm-4v-9b固定修订号01328faefe122fe605c1c127b62e6031d3ffebf7该修订号确保了可复现的下载结果ModelScopeZhipuAI/glm-4v-9b跟随master分支OpenMind HubAI-Research/glm-4v-9b。也就是说启动模型时 Xinference 会根据你的配置自动从对应平台拉取权重无需手动指定完整路径——只需给出模型名glm-4v与参数量9即可。需要特别注意的两点量化选项只有none该规格不提供 GPTQ、AWQ 等量化分支因此启动时--quantization只能填none模型将以 FP16 原精度加载下文 Transformers 引擎加载逻辑中会看到torch_dtypetorch.float16的硬编码。引擎可选 vLLM 或 Transformers两者在性能与部署约束上差异明显下一节将分别说明。启动命令逐参数解析原文档给出了标准的启动命令格式如下xinference launch --model-engine ${engine} --model-name glm-4v --size-in-billions 9 --model-format pytorch --quantization ${quantization}其中${engine}需替换为vllm或transformers${quantization}需替换为none。实际可执行的命令示例# 使用 Transformers 引擎启动 xinference launch --model-engine transformers --model-name glm-4v --size-in-billions 9 --model-format pytorch --quantization none # 使用 vLLM 引擎启动 xinference launch --model-engine vllm --model-name glm-4v --size-in-billions 9 --model-format pytorch --quantization none各参数含义如下参数含义本模型的取值--model-engine指定推理引擎决定底层加载与调度框架vllm/transformers--model-nameXinference 注册表中的模型名glm-4v--size-in-billions参数量十亿用于精确定位规格9--model-format权重格式pytorch--quantization量化方式本规格无量化分支none命令执行成功后Xinference 会返回一个包含模型 UID 的响应后续所有推理请求都通过该 UID 访问模型实例。引擎底层实现Transformers 引擎的工作原理glm-4v 的 Transformers 引擎实现在 xinference/model/llm/transformers/multimodal/glm4v.py类Glm4VModel通过装饰器同时注册为多模态批处理模型与Transformer 模型。该实现有几个关键细节值得展开1. 权重加载方式load_multimodal_modelglm4v.py使用AutoModelForCausalLM加载权重并显式指定torch_dtypetorch.float16模型以 FP16 精度加载这也是该规格不提供量化分支、推荐在具备足够显存的 GPU 上运行的原因trust_remote_codeTrue由allow_trust_remote_code决定ChatGLM 系列需要运行远程代码modeling_chatglm.py必须开启low_cpu_mem_usageTrue与device_map由decide_device根据device配置默认auto自动选择设备。2. 单图限制每轮消息最多一张图片多模态消息预处理逻辑_get_processed_msgsglm4v.py表明消息内容支持 OpenAI 风格的text/image_url两种内容块每个消息只允许一张图片若传入多张图片会抛出RuntimeError(Only one image per message is supported)图片通过_decode_image解码后以image字段拼入消息再交给 tokenizer 的apply_chat_template处理。3. 生成配置默认值build_generate_kwargsglm4v.py和prepare_sanitize_generate_configglm4v.py定义了生成时的默认行为temperature默认0.7若未在请求中显式指定则在 sanitize 阶段回落为 0.8top_p默认0.8max_length默认取请求中max_tokens的值缺省为2048do_sampleTrue即默认开启采样eos_token_id为[151329, 151336, 151338]与注册表中的stop_token_ids一致。4. 停止词与图像 token 注意力掩码注册表中配置的stop为[|endoftext|, |user|, |observation|]llm_family.json其中get_stop_strs在流式输出时以|endoftext|作为截断标记视觉部分的关键实现是get_full_attention_maskglm4v.py根据vision_config中的image_size与patch_size计算图像 patch 数(image_size // patch_size // 2) ** 2在boi_token与eoi_token之间插入等长的全 1 注意力掩码保证图像区域参与自注意力计算——这正是视觉输入能被模型看见的原理所在。vLLM 引擎的部署约束文档标注 glm-4v 可用 vLLM 引擎但 vLLM 的多模态支持存在硬性平台要求。在 xinference/model/llm/vllm/core.py 中多模态引擎的准入检查逻辑明确仅支持 Linux 系统仅支持 CUDA GPU、MLU GPU、VACC GPU 或 MUSA GPU仅支持pytorch / gptq / awq / fp4 / fp8 / bnb格式本模型的 pytorch 格式符合要求但无量化分支模型必须声明vision、audio或omni能力glm-4v 具备vision满足条件。因此若你的环境不满足上述 GPU 与操作系统条件应改用 Transformers 引擎CPU 或 Mac 等环境可尝试但多模态推理对算力要求较高建议优先使用 NVIDIA GPU。此外从 llm_family.json 的virtualenv.packages可以看到该模型的虚拟环境依赖按引擎条件化安装#transformers_dependencies#/#vllm_dependencies#等即选择不同引擎时只安装对应的推理依赖避免环境臃肿。推理调用OpenAI 兼容的多模态请求模型启动后即可通过 Xinference 暴露的 OpenAI 兼容 Chat Completions API 进行多模态推理。典型的图片理解请求格式如下curl -X POST http://localhost:9997/v1/chat/completions \ -H Content-Type: application/json \ -d { model: 启动后返回的模型 UID, messages: [ { role: user, content: [ {type: text, text: 请描述这张图片的内容}, {type: image_url, image_url: {url: https://example.com/cat.jpg}} ] } ], max_tokens: 512, temperature: 0.7, stream: true }请求格式与 OpenAI 多模态接口保持一致image_url同时支持公网图片地址与本地 base64 编码图片。需要注意上文提到的单图限制一条 user 消息中最多携带一张图片多轮对话中每一轮都可以附带一张新图片模型会基于完整对话上下文与最新图片进行回答。小结与使用建议围绕 glm-4v 模型文档本文完成了三件事梳理了模型的完整规格8192 上下文、9B 参数、chat vision 能力、en/zh 双语逐参数拆解了启动命令并从 glm4v.py 与 vllm/core.py 源码层面验证了引擎实现的细节与约束。实践要点回顾量化固定为none模型以 FP16 原精度加载请预估约 18 GB 以上的显存占用含 KV Cache 与运行时开销显存不足时优先选择vllm引擎获得更好的批处理与显存管理vLLM 引擎仅限 Linux 特定 GPU 平台不满足条件时使用transformers引擎每轮消息仅支持一张图片这是模型侧的实现限制调用方需在应用层做好图片切分与多轮组织生成参数temperature0.8、top_p0.8在未显式指定时由引擎自动填充业务上如需确定性输出可显式设置更低的温度值。通过上述命令与接口你可以把 GLM-4V-9B 快速接入到现有的 OpenAI 兼容生态中实现图像问答、视觉理解等多模态应用。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价