☰
MiniCPM5-2B 端侧部署与推理实战:架构解析、评测解读与 vLLM / SGLang / llama.cpp / Transformers 快速上手
2026/9/30 3:17:45 网站建设 项目流程
  • 人工智能
  • 大模型
  • 基础模型

【免费下载链接】MiniCPM5-2B

MiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。

项目地址:https://ai.gitcode.com/OpenBMB/MiniCPM5-2B
点击查看免费下载

MiniCPM5-2B 是 OpenBMB 开源的 MiniCPM5 系列第二个模型:一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,采用标准LlamaForCausalLM架构并原生支持 131,072 token 长上下文。本文以官方 README 为主线,结合仓库中的 config.json、tokenizer_config.json、chat_template.jinja 等文件,系统讲解它的模型规格、评测表现、训练配方,并给出 vLLM、SGLang、llama.cpp、Transformers 四个主流框架从安装到请求验证的完整实操流程。读完本文,你将能够独立完成 MiniCPM5-2B 的本地部署、OpenAI 兼容服务启动、DSpark 投机采样加速与工具调用配置。

模型概览:2B 参数、Llama 架构、原生长上下文

MiniCPM5-2B 是继 MiniCPM5-1B 之后 MiniCPM5 系列的第二个成员,定位为本地助手(local assistant)、编码智能体(coding agent)、工具调用流程(tool-use workflow)与偏好紧凑模型的推理场景。它保持较小的部署 footprint,同时提供原生长上下文支持。

根据 README 的 Model Information 与仓库根目录 config.json 中的实际配置,模型规格汇总如下:

项目值说明
类型Causal Language Model自回归因果语言模型
架构标准LlamaForCausalLM主流引擎可直接加载,无自定义算子、无模型代码 fork
总参数量2,516,756,480约 25.2 亿
非嵌入参数量1,981,982,720约 19.8 亿
层数(num_hidden_layers)42见 config.json
注意力头(GQA)Q 16 / KV 2num_attention_heads=16,num_key_value_heads=2
隐藏维度(hidden_size)2048见 config.json
FFN 中间维度(intermediate_size)6144见 config.json
上下文长度(max_position_embeddings)131,072原生支持,无需外推
词表大小(vocab_size)130,560见 config.json
RoPE base(rope_theta)5,000,000支撑长上下文的关键配置之一
默认精度bfloat16torch_dtype: bfloat16,README 亦注明权重为 BF16

几点值得注意的实现细节:

  • GQA(Grouped Query Attention):Q 有 16 个头,KV 只有 2 个头,显著压缩了长上下文场景下的 KV Cache 占用,是模型能够以 2B 级体量支撑 131K 上下文的重要原因。
  • 结束符配置:eos_token_id为[1, 130073],即同时把</s>与<|im_end|>视为结束符;pad_token_id复用1(见 config.json)。
  • 禁用位置编码外推:rope_scaling为null,说明 131,072 的上下文长度来自训练阶段本身,而非推理时的缩放技巧。
  • 所有权重单文件:从 model.safetensors.index.json 可以看到全部张量(embed、42 层 Transformer 的 attention/MLP、lm_head)均存放于单个 model-00000-of-00001.safetensors 中,权重总大小约 5.03 GB,便于本地分发与加载。

评测结果:2B 级 SOTA,多项能力可与 4B 级模型竞争

README 在 Evaluation Results 一节给出了 MiniCPM5-2B 与同尺寸及更大尺寸开源模型的横向对比。对比集合包括:

  • 2B 级模型:LFM2.5-2.6B、Qwen3.5-2B、Gemma-4-E2B-it;
  • 4B 级参考模型:Qwen3.5-4B、granite-4.2-3B、Nemotron-3-Nano-4B、Gemma-4-E4B-it、LFM2.5-8B-A1B。

在 README 给出的对比集合内,MiniCPM5-2B 平均分为53.9,达到 2B 级开源模型 SOTA,且高于参与对比的全部更大规模模型(其中最高分为 Qwen3.5-4B 的51.1)。优势最明显的维度集中在代码推理、数学推理、长文本理解、工具调用与多个智能体任务。

以下为 README 表格中 MiniCPM5-2B 各基准得分(部分分数带 † 标记,表示取自 Artificial Analysis 官方公布值,其余为内部复现结果):

能力维度基准MiniCPM5-2B 得分
代码推理LiveCodeBench v669.1
代码推理LCB-Pro 25Q2 (Easy)68.0
代码推理LCB-Pro 25Q2 (Medium)17.5
代码推理OJBench32.5
代码推理SciCode (wbg) †26.3
数学推理AIME 202586.5
数学推理AIME 202686.5
数学推理HMMT Feb 202663.8
数学推理MATH-50094.6
指令遵循IFBench66.3
指令遵循IFEval86.7
指令遵循Multi-IF71.8
综合知识MMLU-Pro70.8
综合知识MMLU-Redux84.7
综合知识HLE †8.9
综合知识GPQA-Diamond †70.2
综合知识SuperGPQA40.8
长文本AA-LCR †59.0
长文本NoLiMa68.1
长文本LongBenchPro44.8
长文本LongBench v243.7
工具调用τ³-Bench Banking †20.8
工具调用τ²-Bench Telecom97.1
工具调用BFCL v466.6
代码智能体SWE-bench Verified46.4
代码智能体SWE-bench Pro14.4
代码智能体Terminal-Bench v2.1 †8.6
搜索智能体BrowseComp-ZH43.5
搜索智能体BrowseComp Top10039.7
搜索智能体GAIA Text-10388.7
通用智能体GDPval-AA v2 †19.6
通用智能体Claw-Gym59.2
通用智能体WildClaw23.9
通用智能体QwenClaw42.9

需要说明的是,上述分数均为 README 官方公布的对比集合内结果,实际选型时建议结合自己的任务与评测口径复测。

训练配方:UltraData 分级数据管理下的三阶段流程

MiniCPM5-2B 的训练是UltraData 分级数据管理体系的一次完整实践,覆盖三个阶段:base training、mid-training 与 post-training。

基座训练与中期训练(Base + Mid-training)

  • Base training采用逐级推进的训练配方,包含 stable training(稳定训练)与 decay training(衰减训练),用于建立基础语言能力与训练稳定性;
  • Mid-training进一步强化目标能力并适配目标数据分布。

基座与中期阶段的训练语料均随模型一并开源,包括:

  • Ultra-FineWeb:高质量网页预训练数据集(对应 README front-matter 中openbmb/Ultra-FineWeb);
  • Ultra-FineWeb-L3(openbmb/Ultra-FineWeb-L3):分级后的高质量语料;
  • UltraX(openbmb/UltraX-Preview):高质量网页预训练数据;
  • UltraData-Code(openbmb/UltraData-Code):L0–L3 分级代码数据管理,驱动代码能力跃升;
  • UltraData-Math(openbmb/UltraData-Math):数学数据。

后训练:SFT → RL → OPD

后训练阶段按 SFT、RL、OPD 三步推进:

  1. SFT:使用400B tokens 的 deep-thinking SFT建立深度思考与通用对话能力。对应数据为 UltraData-SFT-2605(openbmb/UltraData-SFT-2605)与 Agent SFT 数据 UltraData-SFT-Agent-2609(openbmb/UltraData-SFT-Agent-2609,50 万 Agent 训练样本);
  2. RL:针对数学、代码、Agent 任务、写作等相关领域训练专用RL teacher模型。RL 阶段采用 critic-based 算法(README 中引述为 JustRL II 所述方法),显著提升训练稳定性并带来跨领域收益。相关数据开源为 UltraData-RL-2609(openbmb/UltraData-RL-2609,超 8 万条高质量 RL 样本,覆盖数学、代码、通用知识与长文本推理);
  3. OPD(On-Policy Distillation,在线策略蒸馏):将 16 个 RL 训练所得专家模型(含 5 个 agentic 专家模型)的能力合并回同一个发布模型。

OPD 的技术要点(来自 README):

  • 在 response 序列的每个位置,对 student 与 teacher 的 logits 计算**全词表反向 KL 散度(reverse KL divergence)**作为优势估计值,替代原有的 verification-based advantage;
  • 蒸馏数据直接复用各 RL teacher 训练时的 prompt,无需额外构造语料。

README 给出的量化收益为:RL + OPD 使推理与通用能力平均提升↑10.96 分,Agent 能力平均提升↑6.96 分。

模型家族与版本选择

MiniCPM5-2B 官方按训练阶段与运行格式发布了一整条模型链,可按运行环境选择对应格式(详见 README 的 Model List):

模型阶段/格式适用场景
MiniCPM5-2BBF16 正式版(RL + OPD 后)默认推荐
MiniCPM5-2B-SFTBF16,仅 SFT checkpoint研究训练过程、继续微调
MiniCPM5-2B-MidtrainBF16,mid-training checkpoint研究训练过程
MiniCPM5-2B-BaseBF16,仅预训练 base研究训练过程、自定义后训练
MiniCPM5-2B-GGUFGGUFllama.cpp / Ollama / LM Studio
MiniCPM5-2B-MLXMLX / 4bitApple Silicon
MiniCPM5-2B-GPTQGPTQ / 4bit显存受限的 GPU 推理
MiniCPM5-2B-DSparkDSpark 草稿模型SGLang 投机采样加速
MiniCPM5-2B-DSpark-GGUFGGUF 版 DSpark 草稿模型配合 GGUF 主模型加速
MiniCPM5-2B-LiteRT.litertlmAndroid / iOS / 桌面 / IoT 端侧

此外 MiniCPM5-1B 系列还提供正式版、SFT、Base、GGUF、MLX 等格式,适合更极端的资源约束场景。

快速上手:四个主流推理框架完整实操

README 建议在生成时使用以下采样参数组合:

temperature=1.0, top_p=0.95, min_p=0.0

如果遇到重复输出,可尝试:

temperature=1.0, top_p=0.95, min_p=0.0, repetition_penalty=1.05

注意:不同推理框架对采样参数的支持程度有所差异(例如 llama.cpp 对min_p的默认值与 Transformers 不同,详见下文)。

vLLM:一行命令启动 OpenAI 兼容服务

pip install "vllm>=0.21" vllm serve openbmb/MiniCPM5-2B --port 8000

启动后即可用 OpenAI 兼容的 Chat Completions 接口验证:

curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "openbmb/MiniCPM5-2B", "messages": [{"role": "user", "content": "Who are you? Please briefly introduce yourself."}], "max_tokens": 128, "temperature": 1.0 }'

SGLang:支持 DSpark 投机采样的高性能后端

pip install "sglang[srt]>=0.5.16" python -m sglang.launch_server --model-path openbmb/MiniCPM5-2B --port 30000

同样通过 OpenAI 兼容接口请求:

curl http://localhost:30000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "openbmb/MiniCPM5-2B", "messages": [{"role": "user", "content": "Who are you? Please briefly introduce yourself."}], "max_tokens": 128, "temperature": 1.0 }'

DSpark 投机采样加速:MiniCPM5-2B 配套发布了 MiniCPM5-2B-DSpark 草稿模型。在 SGLang 中启用后可以加速解码,同时保持目标模型输出不变:

python -m sglang.launch_server \ --model-path openbmb/MiniCPM5-2B \ --trust-remote-code \ --speculative-algorithm DSPARK \ --speculative-draft-model-path openbmb/MiniCPM5-2B-DSpark \ --speculative-dspark-block-size 7 \ --port 30000

其中--speculative-dspark-block-size 7是 DSpark 算法特有的块大小参数,需配合官方发布的草稿模型使用。

llama.cpp:GGUF 本地推理与 min_p 陷阱

使用官方发布的MiniCPM5-2B-F16.gguf(对应 MiniCPM5-2B-GGUF):

llama-server -m MiniCPM5-2B-F16.gguf -a MiniCPM5-2B --port 8080 -ngl 99 -c 8192 --jinja
  • -c 8192设置上下文长度为 8192,可自行调整;
  • -ngl 99表示尽可能将层卸载到 GPU;
  • --jinja启用 Jinja 聊天模板支持。

请求验证:

curl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "MiniCPM5-2B", "messages": [{"role": "user", "content": "1+1=?"}], "temperature": 1.0, "top_p": 0.95, "min_p": 0.0, "max_tokens": 256 }'

README 特别提醒了 llama.cpp 的一个采样陷阱:llama.cpp 默认min_p=0.05,会过滤掉概率低于最高概率 token 5% 的 token,这种过滤反而可能引发重复输出——它恰恰过滤掉了模型摆脱重复循环所需的那些 token。因此要显式设置min_p=0.0以禁用该过滤。

Transformers:本地 Python 推理

pip install -U "transformers>=5.6" accelerate torch
from transformers import AutoModelForCausalLM, AutoTokenizer model_id = "openbmb/MiniCPM5-2B" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype="auto", device_map="auto", ) messages = [{"role": "user", "content": "Who are you? Please briefly introduce yourself."}] inputs = tokenizer.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, enable_thinking=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=128) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))

两个值得注意的调用细节:

  1. enable_thinking=True:这是apply_chat_template的关键参数。对照仓库根目录 chat_template.jinja 末尾的生成提示逻辑可以看到,add_generation_prompt=True时模板会输出<|im_start|>assistant\n,随后根据enable_thinking的值决定是否输出<think>\n开头的思考标记(enable_thinking=False时则输出空思考块<think>\n\n</think>\n\n)。该模板还支持从message.reasoning_content或内容中的<think>...</think>片段解析推理内容,并将其与最终回答分层渲染。
  2. model.generate只传max_new_tokens:README 示例未显式传采样参数,但 generation 配置中默认开启采样(generation_config.json 中do_sample=true, temperature=1.0, top_p=0.95),与 README 推荐参数一致。

思考机制与工具调用的 token 层面对接

从 tokenizer_config.json 可以看到,MiniCPM5-2B 在词表层面内置了一套与深度思考、工具调用配套的特殊 token:

  • 思考类:<think>(id 8)、</think>(id 9)、<|thought_begin|>(id 130075)、<|thought_end|>(id 130076);
  • 对话控制:<|im_start|>(id 130072)、<|im_end|>(id 130073,同时是 eos)、<|im_sep|>(id 4);
  • 工具调用类:<tools>、<arguments>、<parameters>、<function、</function>、<param、</param>、<tool_response>、</tool_response>、<tool_call>等(对应 id 2、3、10–21、130077);
  • 控制指令:/think(id 130080)、/no_think(id 130081)、<|execute_start|>/<|execute_end|>(id 130078/130079)。

同时 chat_template.jinja 在工具调用路径上实现了完整的 XML 化渲染:当对话中存在tool_calls时,模板会把 OpenAI 风格的 function call 转换为<function name="..."><param name="...">value</param></function>的 XML 片段,并在其中对包含<、&、换行符的参数值自动包裹 CDATA;工具返回内容则通过<tool_response>...</tool_response>包裹并合并进 user 消息。这正是 README 所说"MiniCPM5-2B 以 XML 格式产出工具调用"的模板层基础。

工具调用(Tool Calling):SGLang 是推荐后端

对于工具 / 函数调用,README 明确推荐SGLang作为后端。MiniCPM5-2B 以 XML 格式产出工具调用,SGLang 内置的minicpm5parser 会将其原生转换为 OpenAI 兼容的tool_calls字段:

python -m sglang.launch_server --model-path openbmb/MiniCPM5-2B --port 30000 \ --tool-call-parser minicpm5 # 或:--tool-call-parser auto

选择--tool-call-parser minicpm5使用模型专属解析器;auto则让 SGLang 自动探测合适的解析器。接入后,你的应用可以用与 OpenAI 完全一致的tool_calls数据结构驱动 Agent 循环。

部署与微调生态:Cookbooks 与 Agent Skills 速查

MiniCPM5-2B 采用标准LlamaForCausalLM架构,主流推理引擎可以直接加载:无需自定义算子,也无模型代码 fork。README 按后端与框架整理了部署和微调的官方 cookbooks,并将配套的 Agent Skills(供 Cursor / Claude Code 类 coding agent 使用)作为 GitHub 资源提供。

部署矩阵

后端模型格式 / 适用场景CookbookAgent Skill
TransformersBF16 / FP16,本地 Python 推理,GPU + CPUtransformers.mdminicpm5-deploy-transformers
vLLMBF16 / FP16 OpenAI servervllm.mdminicpm5-deploy-vllm
SGLangBF16 / FP16 OpenAI server,推荐用于 tool callingsglang.mdminicpm5-deploy-sglang
llama.cppGGUF,CPU/GPU 本地推理llama_cpp.mdminicpm5-deploy-llama-cpp
OllamaGGUF,本地端侧运行ollama.mdminicpm5-deploy-ollama
LM StudioGGUF,Mac 桌面应用与 OpenAI serverlmstudio.mdminicpm5-deploy-lmstudio
MLXMLX / 4bit,Apple Silicon 本地推理mlx.mdminicpm5-deploy-mlx
ArcLightGGUF 本地端侧 / CPU / 桌面 / 服务器arclight.mdminicpm5-deploy-arclight
vLLM AscendBF16 / FP16 OpenAI servervllm_ascend.mdminicpm5-deploy-vllm-ascend
LiteRT-LM.litertlm端侧运行时:Android / iOS / 桌面 / IoT,CPU + GPUlitert.mdminicpm5-deploy-litert

微调矩阵

框架适用场景CookbookAgent Skill
TRL + PEFTLoRA / SFT 微调trl.mdminicpm5-finetune-trl
LLaMA-Factory微调llamafactory.mdminicpm5-finetune-llamafactory
ms-swift微调ms_swift.mdminicpm5-finetune-ms-swift
unsloth微调unsloth.mdminicpm5-finetune-unsloth

多芯片部署:FlagOS 支持

除上述框架外,MiniCPM5-2B 还通过FlagOS支持多芯片部署。FlagOS 是由北京智源研究院联合国内外科研机构、芯片企业、系统厂商与算法/软件单位共同发起的开源社区,致力于构建面向多种 AI 芯片的统一开源系统软件栈(大型算子库、统一 AI 编译器、并行训推框架、统一通信库等),实现"模型-系统-芯片"三层贯通的开放技术生态与"一次开发、跨芯迁移"。

在 FlagRelease 平台(FlagOS 团队构建的多架构 AI 芯片大模型自动迁移、适配与发布平台)上,MiniCPM5-2B 已发布 9 种芯片的适配版本:Nvidia、Hygon、Metax、Iluvatar、Zhenwu、Mthreads、Kunlunxin、Ascend、ARM-v9。

从零开始启用 FlagOS 加速的要点(README 中的示例流程):

  1. 环境依赖:Python 3.12、GLIBC 2.39、GLIBCXX 3.4.33、CXXABI 1.3.15;
  2. 安装 FlagGems 算子库:
    pip install flag-gems==4.2.1rc0 pip install triton==3.5.1
  3. 在 vLLM 推理源码中开启加速:
    import flag_gems flag_gems.enable(record=True, once=True, path="/root/gems.txt")
  4. 以 BF16 启动 vLLM 服务:
    vllm serve ${model_path} \ --trust-remote-code \ --dtype bfloat16 \ --enforce-eager \ --port ${Port} \ --served-model-name ${model_name} \ --gpu-memory-utilization 0.85

此外,vllm-plugin-FL 是基于 FlagOS 统一多芯片后端为 vLLM 构建的插件,用于扩展 vLLM 在多种硬件环境下的功能与性能,README 中提供了 Nvidia 从零开始 / 从 FlagRelease 开始两条使用路径。

局限性与合规提示

按 README 的 Limitations and Disclaimer,本模型不具备自主意识或法律主体资格,输出仅为基于统计模式的文本生成结果,可能不准确、有偏见或具冒犯性,也可能被精心设计的提示词("越狱")操纵。对政治、健康、金融、法律等敏感话题的回答未经专家审核,不应视为专业建议。模型按"现状"提供,不附带明示或默示担保;使用者应仅将其用于合法、合规且符合伦理的目的,自行配置安全措施并按当地要求标识 AI 生成内容。

总结:一个"小体量、全能力"的端侧基座

从仓库证据来看,MiniCPM5-2B 的定位非常清晰:以 2.5B 参数的标准 Llama 架构为骨架,通过 GQA 压缩 KV Cache、RoPE base 5e6 支撑 131K 原生上下文,以 UltraData 分级数据 + SFT/RL/OPD 三段式后训练在代码、数学、长文本、工具调用与 Agent 任务上取得 README 对比集合内的领先成绩。部署侧则覆盖了从 GPU 服务器(vLLM/SGLang)、桌面与笔记本(llama.cpp/Ollama/LM Studio)、Apple Silicon(MLX)到手机/IoT 端侧(LiteRT-LM、ArcLight)的完整链路,并有配套的微调框架与多芯片支持。

对本仓库目录做一次快速回顾,便于你后续深入:

  • README.md / README-cn.md:官方英文 / 中文文档,本文的信息主体;
  • config.json:架构与训练配置(层数、GQA、RoPE、上下文、词表);
  • generation_config.json:默认采样参数(temperature=1.0、top_p=0.95);
  • chat_template.jinja:聊天模板,含深度思考与 XML 工具调用渲染逻辑;
  • tokenizer_config.json 与 tokenizer.json:特殊 token 体系与词表;
  • model.safetensors.index.json 与 model-00000-of-00001.safetensors:BF16 权重文件(约 5.03 GB)。

如需在本地复现推理,直接按照"快速上手"一节按需选用 vLLM、SGLang、llama.cpp 或 Transformers 任一方案即可。

  • 人工智能
  • 大模型
  • 基础模型

【免费下载链接】MiniCPM5-2B

MiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。

项目地址:https://ai.gitcode.com/OpenBMB/MiniCPM5-2B
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询