使用 Xinference 部署 MiniCPM-2B-sft-bf16:中文轻量级对话模型的启动与调用实战
使用 Xinference 部署 MiniCPM-2B-sft-bf16中文轻量级对话模型的启动与调用实战【免费下载链接】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 是由 ModelBest 与清华 NLP 团队推出的端侧End-Size大语言模型其 SFT 微调版本minicpm-2b-sft-bf16参数量仅约 2.4B不含 Embedding却拥有 4096 token 上下文与原生中文对话能力非常适合在个人电脑、边缘设备或低显存环境上快速落地。本文以 Xinference 内置模型定义与 CLI 源码为主线完整讲解该模型的规格、启动命令、多引擎选择vLLM / Transformers、Python SDK 调用与排障要点帮助你在一条命令内完成从模型下载到推理服务的全流程。模型规格速览minicpm-2b-sft-bf16是 Xinference 内置的 LLM 模型族之一其官方文档卡片minicpm-2b-sft-bf16.rst与内置模型清单 xinference/model/llm/llm_family.json 中登记的元数据完全一致属性值Context Length4096Model Nameminicpm-2b-sft-bf16Languageszh中文Abilitieschat对话模型来源ModelBest Inc. 与 TsinghuaNLP 联合开发参数量约 2.4B不含 Embedding 层Model FormatpytorchModel Size (in billions)2Quantizationsnonebf16 原始精度不提供量化档位EnginesvLLM、Transformers从源码看该条目还携带了更多启动阶段会用到的底层信息chat_template{% for message in messages %}{% if message[role] user %}{{用户 message[content].strip() AI}}{% else %}{{message[content].strip()}}{% endif %}{% endfor %}即使用用户/AI特殊标记拼接对话的 MiniCPM 风格模板见 llm_family.jsonstop_token_ids[1, 2]配合stop序列[s, /s]控制生成终止architectures[MiniCPMForCausalLM]用于 vLLM / Transformers 识别模型类virtualenv 依赖#transformers_dependencies#Transformers 引擎与#vllm_dependencies#、#system_numpy#vLLM 引擎Xinference 会在启用虚拟环境时按所选引擎自动安装对应依赖。模型权重来源与版本锁定模型规格中登记了三个模型源model_src见 llm_family.jsonHugging Faceopenbmb/MiniCPM-2B-sft-bf16锁定 revisionfe1d74027ebdd81cef5f815fa3a2d432a6b5de2aModelScopeOpenBMB/miniCPM-bf16revision 为masterOpenMind HubAI-Research/MiniCPM-2B-sft-bf16。这意味着 Xinference 会根据你的网络环境自动从最可达的模型中心拉取权重并优先使用内置的精确 revision 以保证可复现性。你可以通过环境变量等方式切换模型源具体参见 models/sources 相关说明无需手动下载或指定本地路径。启动命令一行完成部署文档卡片给出了标准的启动命令xinference launch只需按所选引擎填入参数即可xinference launch --model-engine ${engine} --model-name minicpm-2b-sft-bf16 --size-in-billions 2 --model-format pytorch --quantization ${quantization}由于该模型只有none一种量化档位实际命令应为# 使用 vLLM 引擎 xinference launch --model-engine vllm --model-name minicpm-2b-sft-bf16 --size-in-billions 2 --model-format pytorch --quantization none # 使用 Transformers 引擎 xinference launch --model-engine transformers --model-name minicpm-2b-sft-bf16 --size-in-billions 2 --model-format pytorch --quantization none启动时 XInference 会先检查内置模型注册表BUILTIN_LLM_FAMILIES见 xinference/model/llm/llm_family.py匹配到该模型后自动下载权重并拉起推理服务。命令执行期间会以进度条形式展示加载进度完成后打印该实例的model uid源码见 xinference/deploy/cmdline.py。各参数含义与可选值xinference launch的参数定义在 xinference/deploy/cmdline.py与本模型最相关的参数如下参数简写默认值说明--model-name/-n必填无要启动的模型名这里固定为minicpm-2b-sft-bf16--model-type/-tLLM模型类型LLM 为默认值--model-engine/-en无推理引擎本模型支持vllm与transformersLLM 必填缺失时启动会直接报错见 cmdline.py--size-in-billions/-s无模型参数量级本模型为2--model-format/-f无模型格式本模型为pytorch--quantization/-q无量化档位本模型仅none--model-uid/-u无自定义实例唯一标识不指定则由服务端生成--replica/-r1实例副本数--n-gpuauto使用的 GPU 数量auto自动探测none表示纯 CPU--worker-ip无分布式场景下指定模型运行的目标 worker--gpu-idx无指定 worker 上可用 GPU 编号逗号分隔--trust-remote-codeTrue是否允许 Hub 上自定义建模代码默认开启--enable-virtual-env关为模型创建独立虚拟环境并安装引擎依赖--env/-ev无以KEY VALUE形式传入环境变量可多次使用补充说明对于size_in_billions源码会将其转换为整数含_或.时保留为字符串见 cmdline.py因此2与2B类写法均可按规则解析若显存紧张可追加--n-gpu none用 CPU 推理Transformers 引擎更适合低资源环境或通过--gpu-idx 0指定具体卡模型权重首次下载体积较大可预先配置模型中心的访问凭据与下载加速通道见 getting_started。引擎选型vLLM 与 Transformers 的取舍minicpm-2b-sft-bf16的规格中同时列出vLLM与Transformers两个引擎分别面向不同场景vLLM主打高吞吐与 PagedAttention 显存优化适合并发请求较多、需要最大化服务吞吐的生产场景。它依赖#vllm_dependencies#与#system_numpy#见 llm_family.json建议在配备 CUDA GPU 的环境中使用。Transformers基于 Hugging Face Transformers 生态部署门槛低、兼容性好同样适合 CPU 推理与快速验证依赖#transformers_dependencies#。两个引擎共享同一个MiniCPMForCausalLM架构标记与同一套对话模板因此切换引擎不会改变对话行为只需更换--model-engine参数即可无缝切换。通过 Python SDK 调用对话能力模型启动并进入READY状态后即可通过 Xinference 的 RESTful 客户端发起对话。RESTfulClient.chat()的实现位于 xinference/client/restful/restful_client.py它向/v1/chat/completions发送请求兼容 OpenAI 风格的 messages 结构from xinference.client import RESTfulClient client RESTfulClient(http://127.0.0.1:9997) # 默认服务端点 model_uid minicpm-2b-sft-bf16 # 或启动时自定义的 --model-uid completion client.chat( model_uid, [ {role: user, content: 用一句话介绍 MiniCPM 模型}, ], generate_config{ temperature: 0.7, max_tokens: 256, stream: False, }, ) print(completion[choices][0][message][content])关键点chat的messages参数遵循 OpenAI Chat Completions 协议generate_config支持temperature、max_tokens、stream等生成参数streamTrue时返回逐块chunk迭代器服务端在组装请求时会套用上面提到的用户/AIchat_template因此客户端无需关心 MiniCPM 的特殊对话标记同一模型服务还可通过标准的 OpenAI 兼容接口/v1/chat/completions直接访问便于接入 LangChain、OpenAI SDK 等既有工具链。常见问题与排障报错--model-engine is required for LLM models启动 LLM 时必须显式传入--model-engine vllm或--model-engine transformers见 cmdline.py。--quantization该填什么本模型仅提供none一档bf16 原始精度不要尝试填写 gguf 等其他量化档位否则无法匹配内置模型规格。首次启动很慢首次会从模型中心下载约数 GB 的权重进度条显示的是模型加载进度网络受限时可优先使用 ModelScope / OpenMind Hub 源。显存不足改用 Transformers 引擎并配合--n-gpu none走 CPU 推理或参考 model_memory 估算 2B 级模型所需内存。自定义模型源或本地权重如需指向本地权重或自定义模型族可参照 custom.rst 注册自定义 LLM而不是直接使用内置名称。总结minicpm-2b-sft-bf16是 Xinference 中开箱即用的中文端侧对话模型4096 上下文、2.4B 参数、用户/AI原生模板一条xinference launch命令即可拉起 vLLM 或 Transformers 推理服务并通过 OpenAI 兼容接口或 Python SDK 直接调用。对于想在笔记本、单卡乃至 CPU 环境上快速体验中文对话能力的开发者这是成本最低的上手路径之一。【免费下载链接】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),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →