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

资讯详情

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

在 Xinference 中部署 minicpm-2b-dpo-fp32:内置 MiniCPM 对话模型的完整启动与配置指南

在 Xinference 中部署 minicpm-2b-dpo-fp32:内置 MiniCPM 对话模型的完整启动与配置指南 在 Xinference 中部署 minicpm-2b-dpo-fp32内置 MiniCPM 对话模型的完整启动与配置指南【免费下载链接】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/inferenceXinference 内置了由 ModelBest 与清华大学自然语言处理实验室TsinghuaNLP联合开源的 MiniCPM 对话模型minicpm-2b-dpo-fp32本文将以 minicpm-2b-dpo-fp32.rst 文档为骨架结合仓库中的模型注册表与后端选择源码完整讲解该模型的规格参数、可用推理引擎、一键启动命令以及底层实现原理帮助你快速在本地或云端拉起一个中文对话推理服务。模型概览minicpm-2b-dpo-fp32是 Xinference 内置的大语言模型LLM之一其核心信息如下Context Length上下文长度4096Model Name模型名minicpm-2b-dpo-fp32Languages语言zh中文Abilities能力chat对话Description模型描述MiniCPM 是 ModelBest Inc. 与 TsinghuaNLP 开发的 End-Size LLM扣除 embedding 后仅有 24 亿2.4B参数。MiniCPM 以端侧可用为设计目标参数规模远小于主流百亿级模型同时通过 DPODirect Preference Optimization对齐训练提升对话质量非常适合资源受限环境下的中文对话推理。在 内置 LLM 模型总览 中minicpm-2b-dpo-fp32与同系列的minicpm-2b-dpo-bf16、minicpm-2b-dpo-fp16、minicpm-2b-sft-bf16、minicpm-2b-sft-fp32等一起被列为基础内置模型与minicpm3-4b、minicpm4、minicpm5-1b等更后续的 MiniCPM 系列成员共同构成完整的家族。模型规格Specifications原文档给出了唯一的 Model Spec即 PyTorch 格式、20 亿参数的精度的官方发布版本Model Spec 1pytorch, 2 Billion配置项值Model Format模型格式pytorchModel Size参数量十亿2Quantizations量化方式none不量化FP32 原始精度Engines推理引擎vLLM、TransformersModel IDopenbmb/MiniCPM-2b-dpo-fp32Model Hubs模型源Hugging Face、ModelScope这里的量化方式为none意味着加载的是 FP32 全精度权重不进行任何量化压缩。对应的开源模型 ID 在两个主流模型源上均有托管Hugging Face 上的openbmb/MiniCPM-2B-dpo-fp32以及 ModelScope 上的OpenBMB/MiniCPM-2B-dpo-fp32国内网络环境下推荐从 ModelScope 拉取。模型注册表中的完整元数据Xinference 的模型注册表 xinference/model/llm/llm_family.json 中记录了该模型的完整元数据比 rst 文档更细致可以交叉印证文档描述版本与语言version: 2、model_lang: [zh]、model_ability: [chat]与文档一致。上下文长度context_length: 4096。模型源与版本号Hugging Face 源固定了model_revision为b560a1593779b735a84a6daf72fba96ae38da288确保可复现加载ModelScope 源使用master分支。停止条件stop_token_ids为[1, 2]stop字符串为[s, /s]推理时遇到这些 token 或标记即停止生成。架构声明architectures: [MiniCPMForCausalLM]表明该模型是标准的自回归因果语言模型架构。聊天模板chat_template注册表中直接内嵌了 MiniCPM 的对话模板{% for message in messages %}{% if message[role] user %}{{用户 message[content].strip() AI}}{% else %}{{message[content].strip()}}{% endif %}{% endfor %}即用户消息包裹在用户与AI特殊标记之间助手消息直接拼接这是 MiniCPM 官方约定的对话格式Xinference 在服务时会自动套用该模板完成messages到提示词的组装。这些字段说明该模型并非黑盒接入而是经过了完整的家族注册、模板内嵌与停止词配置开箱即用。支持的推理引擎vLLM 与 Transformers文档明确该模型的引擎为vLLM与Transformers两种。在启动时必须通过--model-engine指定其一二者的特性差异决定了不同的适用场景Transformers基于 Hugging Face transformers 生态实现兼容性最好、安装依赖最简单适合快速验证与资源非常有限的环境。vLLM提供 PagedAttention、连续批处理continuous batching、优化 CUDA 内核等高吞吐能力适合生产环境服务化部署。值得注意的是注册表中的virtualenv.packages字段给出了两种引擎各自的依赖声明virtualenv: { packages: [ #transformers_dependencies# ; #engine# \Transformers\, #vllm_dependencies# ; #engine# \vllm\, #system_numpy# ; #engine# \vllm\ ] }也就是说选择 Transformers 引擎时会按transformers_dependencies的依赖清单创建虚拟环境选择 vLLM 引擎时则按vllm_dependencies清单安装且 vLLM 环境额外要求系统级 numpy。Xinference 会依据你在启动命令中传入的引擎值自动解析这些标记并准备对应的运行环境。引擎选择与校验的源码逻辑Xinference 在 xinference/model/llm/llm_family.py 中实现了引擎匹配与参数校验逻辑。以check_engine_by_spec_parameters为代表的函数会执行以下检查根据传入的model_name在LLM_ENGINES注册表中查找可用引擎将用户传入的引擎字符串不区分大小写归一化确认该模型确实支持该引擎依次比对model_name、model_format、model_size_in_billions并确认quantization在quantizations列表中全部匹配后返回对应的llm_class实现类任何一项不匹配都会抛出ValueError并提示正确参数组合。从该逻辑可以看出minicpm-2b-dpo-fp32只注册了pytorch格式、2B 规模、none量化这一种组合因此启动时--model-format pytorch、--size-in-billions 2、--quantization none是唯一合法的参数组合。启动命令与参数详解原文档给出的启动命令如下xinference launch --model-engine ${engine} --model-name minicpm-2b-dpo-fp32 --size-in-billions 2 --model-format pytorch --quantization ${quantization}使用前需把${engine}替换为vllm或Transformers把${quantization}替换为所选量化方式。由于该模型唯一的量化选项是none实际可执行命令为# 使用 Transformers 引擎 xinference launch --model-engine Transformers --model-name minicpm-2b-dpo-fp32 --size-in-billions 2 --model-format pytorch --quantization none # 使用 vLLM 引擎需 Linux CUDA 环境 xinference launch --model-engine vllm --model-name minicpm-2b-dpo-fp32 --size-in-billions 2 --model-format pytorch --quantization none各参数含义--model-engine推理引擎本模型仅支持vllm与Transformers。--model-name内置模型名必须是注册表中的minicpm-2b-dpo-fp32。--size-in-billions参数量档位本模型为2。--model-format模型格式本模型为pytorch。--quantization量化方式本模型唯一选项为none。启动后 Xinference 会根据 后端选择文档 中的规则决定最终由哪个引擎承载推理。该文档明确指出当模型格式为pytorch且量化为none时vLLM 会成为候选引擎同时还需要满足系统为 Linux 且至少有一块 CUDA 设备以及模型在 vLLM 支持名单内两个前置条件。minicpm-2b-dpo-fp32已在 vLLM 支持名单中与minicpm-2b-dpo-bf16、minicpm-2b-dpo-fp16等同系列模型一同列出因此在满足硬件条件时会优先选用 vLLM若环境不具备 CUDA 设备或未安装 vLLM 依赖则回退使用 Transformers 引擎。关于各引擎的依赖安装方式可参考 安装文档 中关于推理引擎的部分。启动后的调用方式模型启动成功后Xinference 会返回一个与 OpenAI 兼容的推理端点你可以通过 客户端 API 文档 中介绍的方式调用。使用官方 Python 客户端时大致流程为from xinference.client import Client client Client(http://localhost:9997) model_uid client.launch_model( model_nameminicpm-2b-dpo-fp32, model_engineTransformers, size_in_billions2, model_formatpytorch, quantizationnone, ) model client.get_model(model_uid) for chunk in model.chat( messages[{role: user, content: 介绍一下你自己}], streamTrue, ): print(chunk[choices][0][delta].get(content, ), end)chat接口接收标准messages结构Xinference 会自动套用前面提到的 MiniCPM 聊天模板用户...AI格式完成提示词组装并依据注册表中的停止词与停止 token 列表正确截断输出。由于模型能力为chatlaunch_model返回的模型句柄支持流式与非流式对话。部署建议与限制精度选择FP32 版本不量化内存占用约为权重本身即约 2B × 4 字节 ≈ 8GB 级别适合拥有足够显存/内存的机器若资源紧张同系列还提供了minicpm-2b-dpo-bf16、minicpm-2b-dpo-fp16等半精度版本可显著降低显存需求。引擎选择生产环境追求吞吐优先选 vLLM需 Linux CUDA快速验证或无 GPU 环境选 Transformers。语言与能力边界该模型面向中文zh能力仅限chat不包含代码生成、视觉、工具调用等扩展能力。参数组合唯一性从注册表与引擎校验源码看本模型仅接受pytorch / 2B / none这一组合任何其他参数组合都会被校验逻辑拒绝并给出提示。总体而言minicpm-2b-dpo-fp32是 Xinference 内置模型中小而精的代表参数规模可控、中文对话开箱即用并且同时获得 vLLM 与 Transformers 双引擎支持。理解本文涉及的模型注册表、聊天模板、停止条件与引擎校验逻辑后你不仅能够正确启动该模型也能举一反三地排查其他内置模型的启动参数问题。【免费下载链接】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),仅供参考
返回列表