- 人工智能
- 大模型
- 基础模型
【免费下载链接】MiniCPM5-2B
MiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。
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 2 | num_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 | 支撑长上下文的关键配置之一 |
| 默认精度 | bfloat16 | torch_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 v6 | 69.1 |
| 代码推理 | LCB-Pro 25Q2 (Easy) | 68.0 |
| 代码推理 | LCB-Pro 25Q2 (Medium) | 17.5 |
| 代码推理 | OJBench | 32.5 |
| 代码推理 | SciCode (wbg) † | 26.3 |
| 数学推理 | AIME 2025 | 86.5 |
| 数学推理 | AIME 2026 | 86.5 |
| 数学推理 | HMMT Feb 2026 | 63.8 |
| 数学推理 | MATH-500 | 94.6 |
| 指令遵循 | IFBench | 66.3 |
| 指令遵循 | IFEval | 86.7 |
| 指令遵循 | Multi-IF | 71.8 |
| 综合知识 | MMLU-Pro | 70.8 |
| 综合知识 | MMLU-Redux | 84.7 |
| 综合知识 | HLE † | 8.9 |
| 综合知识 | GPQA-Diamond † | 70.2 |
| 综合知识 | SuperGPQA | 40.8 |
| 长文本 | AA-LCR † | 59.0 |
| 长文本 | NoLiMa | 68.1 |
| 长文本 | LongBenchPro | 44.8 |
| 长文本 | LongBench v2 | 43.7 |
| 工具调用 | τ³-Bench Banking † | 20.8 |
| 工具调用 | τ²-Bench Telecom | 97.1 |
| 工具调用 | BFCL v4 | 66.6 |
| 代码智能体 | SWE-bench Verified | 46.4 |
| 代码智能体 | SWE-bench Pro | 14.4 |
| 代码智能体 | Terminal-Bench v2.1 † | 8.6 |
| 搜索智能体 | BrowseComp-ZH | 43.5 |
| 搜索智能体 | BrowseComp Top100 | 39.7 |
| 搜索智能体 | GAIA Text-103 | 88.7 |
| 通用智能体 | GDPval-AA v2 † | 19.6 |
| 通用智能体 | Claw-Gym | 59.2 |
| 通用智能体 | WildClaw | 23.9 |
| 通用智能体 | QwenClaw | 42.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 三步推进:
- 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 训练样本); - RL:针对数学、代码、Agent 任务、写作等相关领域训练专用RL teacher模型。RL 阶段采用 critic-based 算法(README 中引述为 JustRL II 所述方法),显著提升训练稳定性并带来跨领域收益。相关数据开源为 UltraData-RL-2609(
openbmb/UltraData-RL-2609,超 8 万条高质量 RL 样本,覆盖数学、代码、通用知识与长文本推理); - 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-2B | BF16 正式版(RL + OPD 后) | 默认推荐 |
| MiniCPM5-2B-SFT | BF16,仅 SFT checkpoint | 研究训练过程、继续微调 |
| MiniCPM5-2B-Midtrain | BF16,mid-training checkpoint | 研究训练过程 |
| MiniCPM5-2B-Base | BF16,仅预训练 base | 研究训练过程、自定义后训练 |
| MiniCPM5-2B-GGUF | GGUF | llama.cpp / Ollama / LM Studio |
| MiniCPM5-2B-MLX | MLX / 4bit | Apple Silicon |
| MiniCPM5-2B-GPTQ | GPTQ / 4bit | 显存受限的 GPU 推理 |
| MiniCPM5-2B-DSpark | DSpark 草稿模型 | SGLang 投机采样加速 |
| MiniCPM5-2B-DSpark-GGUF | GGUF 版 DSpark 草稿模型 | 配合 GGUF 主模型加速 |
| MiniCPM5-2B-LiteRT | .litertlm | Android / 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 torchfrom 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))两个值得注意的调用细节:
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>片段解析推理内容,并将其与最终回答分层渲染。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 资源提供。
部署矩阵
| 后端 | 模型格式 / 适用场景 | Cookbook | Agent Skill |
|---|---|---|---|
| Transformers | BF16 / FP16,本地 Python 推理,GPU + CPU | transformers.md | minicpm5-deploy-transformers |
| vLLM | BF16 / FP16 OpenAI server | vllm.md | minicpm5-deploy-vllm |
| SGLang | BF16 / FP16 OpenAI server,推荐用于 tool calling | sglang.md | minicpm5-deploy-sglang |
| llama.cpp | GGUF,CPU/GPU 本地推理 | llama_cpp.md | minicpm5-deploy-llama-cpp |
| Ollama | GGUF,本地端侧运行 | ollama.md | minicpm5-deploy-ollama |
| LM Studio | GGUF,Mac 桌面应用与 OpenAI server | lmstudio.md | minicpm5-deploy-lmstudio |
| MLX | MLX / 4bit,Apple Silicon 本地推理 | mlx.md | minicpm5-deploy-mlx |
| ArcLight | GGUF 本地端侧 / CPU / 桌面 / 服务器 | arclight.md | minicpm5-deploy-arclight |
| vLLM Ascend | BF16 / FP16 OpenAI server | vllm_ascend.md | minicpm5-deploy-vllm-ascend |
| LiteRT-LM | .litertlm端侧运行时:Android / iOS / 桌面 / IoT,CPU + GPU | litert.md | minicpm5-deploy-litert |
微调矩阵
| 框架 | 适用场景 | Cookbook | Agent Skill |
|---|---|---|---|
| TRL + PEFT | LoRA / SFT 微调 | trl.md | minicpm5-finetune-trl |
| LLaMA-Factory | 微调 | llamafactory.md | minicpm5-finetune-llamafactory |
| ms-swift | 微调 | ms_swift.md | minicpm5-finetune-ms-swift |
| unsloth | 微调 | unsloth.md | minicpm5-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 中的示例流程):
- 环境依赖:Python 3.12、GLIBC 2.39、GLIBCXX 3.4.33、CXXABI 1.3.15;
- 安装 FlagGems 算子库:
pip install flag-gems==4.2.1rc0 pip install triton==3.5.1 - 在 vLLM 推理源码中开启加速:
import flag_gems flag_gems.enable(record=True, once=True, path="/root/gems.txt") - 以 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 水平。
相关推荐
MiniCPM5-2B 端侧大模型实战指南:Llama 架构、131K 长上下文与多框架部署全解析
MiniCPM5 2B 端侧大模型实战指南:Llama 架构、131K 长上下文与多框架部署全解析 本篇技术指南以 OpenBMB 开源的 MiniCPM5 2
人工智能大模型基础模型MiniCPM5-1B / MiniCPM5-2B 使用 Hugging Face Transformers 部署:单 GPU 与 CPU 推理实战指南
MiniCPM5 1B / MiniCPM5 2B 使用 Hugging Face Transformers 部署:单 GPU 与 CPU 推理实战指南 本篇技
大模型本地部署模型量化微调LoRA工具调用openBMBAscendXinference 推理后端(Backends)完全指南:llama.cpp、Transformers、vLLM、SGLang、MLX 与投机解码实战
Xinference 推理后端(Backends)完全指南:llama.cpp、Transformers、vLLM、SGLang、MLX 与投机解码实战 Xin
模型推理服务人工智能大模型本地部署多模态语音
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考