十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Xinference 中 MiniCPM-V-4.6 端侧多模态模型的部署与调用指南

Xinference 中 MiniCPM-V-4.6 端侧多模态模型的部署与调用指南 Xinference 中 MiniCPM-V-4.6 端侧多模态模型的部署与调用指南【免费下载链接】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/inferenceMiniCPM-V-4.6 是 MiniCPM-V 系列中面向端侧edge部署的多模态大模型仅 1.3B 参数1.3B 激活基于 SigLIP2-400M 视觉编码器与 Qwen3.5-0.8B 语言骨干构建支持单图、多图与视频理解。本文以 Xinference 内置模型注册表与 Transformers 适配器源码为依据完整讲解其 5 种模型格式pytorch / bnb / awq / gptq / ggufv2的启动命令、引擎选型、量化选择、调用示例与底层适配原理帮助你在一行命令之内把该模型接入统一推理 API。模型概览与内置注册信息在 Xinference 中MiniCPM-V-4.6 属于内置builtinLLM 家族其元数据完整记录在 xinference/model/llm/llm_family.json 中对应文档为 doc/source/models/builtin/llm/minicpm-v-4.6.rst。核心规格如下Context Length262144约 256K tokenModel NameMiniCPM-V-4.6Languagesen, zhAbilitieschat, vision同时支持纯文本对话与图像/视频理解ArchitectureMiniCPMV4_6ForConditionalGenerationtransformers 原生架构无需远程代码Model Typeminicpmv4_6基础结构SigLIP2-400M Qwen3.5-0.8B1.3B 参数1.3B 激活注册表还为该模型定义了停止词与停止 tokenstop|im_end|、|endoftext|stop_token_ids248044、248046同一家族还包含推理增强版本MiniCPM-V-4.6-Thinking能力为 chat、vision、reasoning具备与 4.6 相同的基础视觉能力本文聚焦标准版MiniCPM-V-4.6。五种模型格式与启动命令MiniCPM-V-4.6在 Xinference 中注册了 5 个 Model Spec覆盖从原生 PyTorch 到 CPU 友好的 GGUF 量化适配不同硬件条件与性能需求。Spec 1pytorch原生Model FormatpytorchModel Size十亿参数1QuantizationsnoneEnginesvLLM、Transformers、SGLangModel IDopenbmb/MiniCPM-V-4.6Hugging Face 仓库 revisiond7f5ed8d15462c508d4f9d9ce5a0cf1fe8d87bccModelScope 为OpenBMB/MiniCPM-V-4.6xinference launch --model-engine ${engine} --model-name MiniCPM-V-4.6 --size-in-billions 1 --model-format pytorch --quantization ${quantization}Spec 2bnbbitsandbytes 4-bitModel FormatbnbModel Size十亿参数1Quantizations4-bitEnginesvLLM、Transformers、SGLangModel IDopenbmb/MiniCPM-V-4.6-BNBxinference launch --model-engine ${engine} --model-name MiniCPM-V-4.6 --size-in-billions 1 --model-format bnb --quantization ${quantization}Spec 3awqInt4 权重感知量化Model FormatawqModel Size十亿参数1QuantizationsInt4EnginesvLLM、Transformers、SGLangModel IDopenbmb/MiniCPM-V-4.6-AWQxinference launch --model-engine ${engine} --model-name MiniCPM-V-4.6 --size-in-billions 1 --model-format awq --quantization ${quantization}Spec 4gptqGPTQ Int4 量化Model FormatgptqModel Size十亿参数1QuantizationsInt4EnginesvLLM、Transformers、SGLangModel IDopenbmb/MiniCPM-V-4.6-GPTQxinference launch --model-engine ${engine} --model-name MiniCPM-V-4.6 --size-in-billions 1 --model-format gptq --quantization ${quantization}Spec 5ggufv2llama.cpp / GGUFModel Formatggufv2Model Size十亿参数1QuantizationsQ4_K_M、Q4_K_S、Q5_K_M、Q5_K_S、Q6_K、Q8_0、F16Enginesllama.cppModel IDopenbmb/MiniCPM-V-4.6-gguf文件命名模板MiniCPM-V-4_6-{quantization}.gguf多模态投影器mmproj-model-f16.ggufxinference launch --model-engine ${engine} --model-name MiniCPM-V-4.6 --size-in-billions 1 --model-format ggufv2 --quantization ${quantization}GGUF 版本是唯一面向 CPU / 低资源端侧场景的格式llama.cpp 引擎配合mmproj-model-f16.gguf多模态投影器即可完成视觉 token 的投影融合量化档位从F16到Q4_K_S逐级压缩显存/内存占用。引擎选型与运行环境要求引擎与格式的匹配关系vLLM / Transformers / SGLang支持 pytorch、bnb、awq、gptq 四种格式llama.cpp仅支持 ggufv2 格式。最低版本与虚拟环境依赖Xinference 会根据 xinference/model/llm/llm_family.json 中声明的virtualenv依赖为模型创建隔离环境测试用例 xinference/model/llm/tests/test_llm_family.py 明确验证了各引擎的最低版本vLLM0.22.0SGLang0.5.12Transformers需支持原生MiniCPMV4_6ForConditionalGeneration架构的版本源码注释指出 transformers5.7.0 已注册该原生架构同时需要accelerate0.28.0、torchvision与av视频解码依赖llama.cpp依赖#llama_cpp_dependencies#Xinference 内置展开的 llama.cpp 依赖集合同一个测试文件xinference/model/llm/tests/test_llm_family.py还会校验模型家族与引擎注册的匹配关系MiniCPM-V-4.6的架构为MiniCPMV4_6ForConditionalGenerationvLLM / SGLang 引擎仅注册 pytorchnone、bnb4-bit、awqInt4、gptqInt4四类格式。Transformers 引擎的格式约束在 xinference/model/llm/transformers/multimodal/minicpmv46.py 的match_json中Transformers 适配器进一步收紧了格式白名单仅接受pytorch、gptq、awq、bnb、fp8、fp4六种格式要求模型家族具备MiniCPMV4_6ForConditionalGeneration架构要求模型能力中包含vision纯文本 LLM 家族无法匹配该适配器。Transformers 引擎底层适配原理Xinference 为 MiniCPM-V-4.6 提供了专属 Transformers 适配器类MiniCPMV46Model定义于 xinference/model/llm/transformers/multimodal/minicpmv46.pyregister_batching_multimodal_models(MiniCPM-V-4.6, MiniCPM-V-4.6-Thinking) register_transformer register_non_default_model(MiniCPMV4_6ForConditionalGeneration) class MiniCPMV46Model(PytorchMultiModalModel):该适配器一次注册两个模型名4.6 与 4.6-Thinking并作为 batching 多模态模型支持连续批处理continuous batching。它使用标准AutoProcessor/AutoModelForImageTextToTextAPIapply_chat_template直接从 chat 风格消息中处理图像与视频输入因此无需像 v4.5 那样自定义 message-to-prompt 转换。视觉输入的关键超参数_sanitize_model_configxinference/model/llm/transformers/multimodal/minicpmv46.py为模型设置了两个默认视觉参数二者均可在pytorch_model_config中覆盖downsample_mode默认 16x视觉 token 压缩倍率。16x 是模型卡默认值4x 会保留更细粒度的视觉细节但消耗更多视觉 token对 262144 的超长上下文而言仍在可控范围。max_slice_nums默认 36图像切片预算。模型卡对单图使用 36对视频建议使用 1 并配合use_image_idFalse。适配器只在消息确实包含视觉内容时才向 image processor 传递这两个参数见build_inputs_from_messages与build_prefill_kwargs纯文本轮次不会触发视觉塔路径。推理参数的默认值与传递build_generate_kwargsxinference/model/llm/transformers/multimodal/minicpmv46.py给出了默认生成参数参数默认值max_new_tokens512由max_tokens覆盖temperature0.7top_p0.8top_k100repetition_penalty1.05注意downsample_mode不会进入model.generate()的 kwargs——若输入未包含视觉内容却把该参数传给 generate会意外触发 vision-tower 路径。设备与加速后端load_multimodal_modelxinference/model/llm/transformers/multimodal/minicpmv46.py按运行环境选择加载策略CUDA FlashAttention 可用时attn_implementationflash_attention_2torch_dtypebfloat16NPU昇腾环境device_mapauto、torch_dtypefloat16MPSApple Siliconattn_implementationeager、torch_dtypebfloat16、low_cpu_mem_usageTrue其他设备torch_dtypeauto。连续批处理中的视觉张量合并build_prefill_kwargsxinference/model/llm/transformers/multimodal/minicpmv46.py展示了批处理的核心逻辑逐条请求判断是否含视觉内容据此决定是否附加downsample_mode/max_slice_nums对input_ids与attention_mask做左侧 padding 对齐到批内最长序列将pixel_values、image_grid_thw、image_sizes、tgt_sizes等多模态张量沿 leading 维torch.cat合并确保视觉塔能看到批内每条请求的视觉 token若不同请求的多模态张量形状不兼容如分辨率差异导致会抛出明确的RuntimeError提示关闭连续批处理或拆分请求——这是刻意选择的“快速失败”策略避免静默丢弃后续请求的视觉数据。OpenAI 兼容的调用示例Xinference 启动模型后暴露统一推理 API。多模态输入采用 OpenAI 风格消息结构适配器在_normalize_messagesxinference/model/llm/transformers/multimodal/minicpmv46.py中会把image_url/video_url就地转换为模型卡所期望的image/video类型。图片理解curl -X POST http://localhost:9997/v1/chat/completions \ -H Content-Type: application/json \ -d { model: MiniCPM-V-4.6, messages: [ { role: user, content: [ {type: image_url, image_url: {url: https://example.com/cat.jpg}}, {type: text, text: 这张图片里有什么请用中文回答。} ] } ], max_tokens: 512 }视频理解curl -X POST http://localhost:9997/v1/chat/completions \ -H Content-Type: application/json \ -d { model: MiniCPM-V-4.6, messages: [ { role: user, content: [ {type: video_url, video_url: {url: https://example.com/demo.mp4}}, {type: text, text: 总结视频中发生的事件。} ] } ] }对于视频输入建议在启动时通过pytorch_model_config将max_slice_nums调低如 1以控制视觉 token 总量。媒体 URL 安全边界所有客户端提交的image_url/video_url都会经过 xinference/model/llm/media.py 的媒体校验与拉取管线可用的安全相关环境变量包括XINFERENCE_MEDIA_ALLOW_LOCAL_PATH是否允许file://URL 与裸文件系统路径默认falseXINFERENCE_MEDIA_BLOCK_PRIVATE_ADDRESS是否拒绝解析到回环/内网/链路本地地址的 URL默认trueXINFERENCE_MEDIA_FETCH_TIMEOUT单次远程拉取的总超时秒默认20XINFERENCE_MEDIA_MAX_BYTES单个媒体文件大小上限默认6710886464 MiB。对于 Transformers 引擎含 minicpm-v 家族由于 HF 的load_image仍会自行拉取已通过校验的远程 URL媒体安全边界存在已知限制生产环境建议通过materialize_messages_media路径将媒体物化为本地副本后再交给 reader或使用 vLLM / SGLang 引擎部署并避免将服务直接暴露在不可信公网。完整启动流程速查确认引擎版本vLLM 需0.22.0SGLang 需0.5.12Transformers 引擎由 Xinference 在虚拟环境中自动安装依赖。选定格式与量化GPU 高吞吐--model-engine vllm --model-format pytorchGPU 显存受限--model-format bnb --quantization 4-bit或--model-format awq --quantization Int4CPU / 端侧--model-engine llama.cpp --model-format ggufv2 --quantization Q4_K_M。启动模型执行对应 Spec 的xinference launch命令首次启动会自动从 Hugging Face 或 ModelScope 下载权重。调用验证通过/v1/chat/completions发送文本、图片或视频消息即可获得统一 OpenAI 风格响应。相关持续验证逻辑可参考测试文件 xinference/model/llm/tests/test_llm_family.py家族/引擎注册与最低版本校验与 xinference/model/llm/tests/test_media.py媒体 URL 校验与物化方便你在升级 Xinference 或更换引擎版本后回归验证 MiniCPM-V-4.6 的部署行为。【免费下载链接】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),仅供参考
返回列表