
MiniCPM 技术报告 | MiniCPM 知识库 | GitHub 仓库 | UltraData | 在线 Demo
English | 中文
我们正式发布 MiniCPM5-2B,这是继 MiniCPM5-1B 之后 MiniCPM5 系列的第二个模型。它是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。
🏆 同尺寸开源模型 SOTA:与同尺寸优秀开源模型相比,MiniCPM5-2B 在该对比范围内达到 SOTA 水平,整体表现可与 4B 级模型竞争,并在代码、数学、长文本、工具调用和 Agent 任务上展现出明显优势。
📂 开放高质量数据:与模型一同开源其背后的高质量训练数据,均属于 UltraData 数据体系:UltraX,高质量网页预训练数据集;UltraData-Code,L0–L3 分级代码治理,推动代码能力显著跃升;UltraData-SFT-Agent-2609,50 万 Agent 训练样本,赋能端侧 Agent 综合能力提升;UltraData-RL-2609,超 8 万条高质量 RL 训练样本,覆盖数学、代码、通用知识与长文本推理。
可根据运行环境选择对应的模型格式:
MiniCPM5-2B
MiniCPM5-1B
MiniCPM5-2B 具有以下特性:
LlamaForCausalLMMiniCPM5-2B 是 MiniCPM5 系列的第二个模型,面向本地助手、编码智能体、工具调用流程以及需要紧凑模型的推理场景。它以较低部署成本提供原生长上下文能力。
我们选取 LFM2.5-2.6B、Qwen3.5-2B、Gemma-4-E2B-it 等同规模开源模型进行横向比较,并同时列出 Qwen3.5-4B、granite-4.2-3B、Nemotron-3-Nano-4B、Gemma-4-E4B-it、LFM2.5-8B-A1B 等更大规模模型作为参考。
在这组对比中,MiniCPM5-2B 达到同规模开源模型 SOTA 水平(平均分 53.9 ),也超过了参与对比的全部更大规模模型(最高 51.1)。其优势主要体现在代码推理、数学推理、长文本、工具调用与多智能体任务上。
| MiniCPM5-2B | 2B 级模型 | 4B 级模型 | |||||||
|---|---|---|---|---|---|---|---|---|---|
| LFM2.5-2.6B | Qwen3.5-2B | Gemma-4-E2B-it | Qwen3.5-4B | granite-4.2-3B | Nemotron-3-Nano-4B | Gemma-4-E4B-it | LFM2.5-8B-A1B | ||
平均分 | 53.9 | 33.2 | 28.0 | 24.6 | 51.1 | 42.7 | 32.6 | 31.2 | 28.4 |
| 代码推理 | |||||||||
LiveCodeBench v6 | 69.1 | 42.1 | 20.2 | 42.9 | 56.4 | 58.9 | 50.7 | 53.9 | 39.8 |
LCB-Pro 25Q2 (Easy) | 68.0 | 30.9 | 10.3 | 27.1 | 58.3 | 54.6 | 51.6 | 45.8 | 27.8 |
LCB-Pro 25Q2 (Medium) | 17.5 | 0.0 | 0.0 | 0.0 | 7.0 | 5.3 | 5.3 | 1.8 | 0.0 |
OJBench | 32.5 | 11.2 | 2.6 | 11.6 | 24.8 | 21.8 | 20.0 | 19.0 | 8.2 |
SciCode (wbg) | 26.3† | 14.2† | 2.8† | 20.9† | 16.1† | 24.9† | 16.4† | 24.4† | 7.8† |
| 数学推理 | |||||||||
AIME 2025 | 86.5 | 41.9 | 29.6 | 31.7 | 78.8 | 79.4 | 56.3 | 37.1 | 46.0 |
AIME 2026 | 86.5 | 45.2 | 29.0 | 39.8 | 82.7 | 83.5 | 62.1 | 45.0 | 56.7 |
HMMT Feb 2026 | 63.8 | 33.7 | 20.5 | 17.8 | 64.0 | 60.8 | 51.3 | 30.1 | 38.5 |
MATH-500 | 94.6 | 89.6 | 85.8 | 85.4 | 99.0 | 97.0 | 91.6 | 88.2 | 93.2 |
| 指令遵循 | |||||||||
IFBench | 66.3 | 59.0 | 46.0 | 25.7 | 59.0 | 73.0 | 58.3 | 28.3 | 51.0 |
IFEval | 86.7 | 93.4 | 77.5 | 31.4 | 90.2 | 93.7 | 88.0 | 44.4 | 90.8 |
Multi-IF | 71.8 | 76.8 | 57.1 | 40.3 | 73.6 | 75.9 | 65.9 | 45.9 | 71.4 |
| 综合知识 | |||||||||
MMLU-Pro | 70.8 | 65.2 | 64.3 | 56.0 | 78.0 | 65.8 | 65.7 | 68.3 | 63.1 |
MMLU-Redux | 84.7 | 80.0 | 80.0 | 71.8 | 88.7 | 78.9 | 79.8 | 83.7 | 80.0 |
HLE | 8.9† | 6.2† | 2.6† | 4.8† | 9.9† | 6.6† | 4.9† | 3.8† | 6.9† |
GPQA-Diamond | 70.2† | 55.8† | 45.6† | 43.3† | 77.1† | 55.9† | 51.3† | 57.6† | 51.3† |
SuperGPQA | 40.8 | 26.2 | 38.6 | 30.3 | 52.8 | 39.9 | 37.8 | 38.7 | 34.5 |
| 长文本 | |||||||||
AA-LCR | 59.0† | 5.3† | 28.7† | 17.0† | 61.0† | 24.3† | 17.3† | 33.0† | 0.0† |
NoLiMa | 68.1 | 0.7 | 17.1 | 3.9 | 43.5 | 5.1 | 1.1 | 2.3 | 0.5 |
LongBenchPro | 44.8 | 23.7 | 8.2 | 42.2 | 58.4 | 34.8 | 27.9 | 53.5 | 19.6 |
LongBench v2 | 43.7 | 30.3 | 24.9 | 33.2 | 47.3 | 36.0 | 32.0 | 42.7 | 30.4 |
| 工具调用 | |||||||||
τ³-Bench Banking | 20.8† | 7.2† | 2.1 | 3.9 | 6.8† | 5.6† | 1.2 | 4.1 | 3.4 |
τ²-Bench Telecom | 97.1 | 90.4 | 69.0† | 20.8† | 92.1† | 40.9 | 28.1† | 20.8† | 16.1† |
BFCL v4 | 66.6 | 61.1 | 43.6 | 36.6 | 56.8 | 52.2 | 43.7 | 47.0 | 49.2 |
| 代码智能体 | |||||||||
SWE-bench Verified | 46.4 | 6.0 | 5.0 | 2.0 | 33.6 | 36.8 | 3.0 | 15.0 | 0.4 |
SWE-bench Pro | 14.4 | 0.6 | 0.8 | 0.0 | 28.2 | 12.3 | 0.1 | 3.3 | 0.4 |
Terminal-Bench v2.1 | 8.6† | 4.5† | 3.0† | 0.4† | 25.8† | 13.9† | 3.8† | 1.9† | 1.9 |
| 搜索智能体 | |||||||||
BrowseComp-ZH | 43.5 | 9.8 | 18.2 | 4.7 | 39.6 | 21.1 | 3.3 | 7.0 | 13.2 |
BrowseComp Top100 | 39.7 | 13.7 | 19.3 | 6.0 | 33.3 | 19.0 | 4.7 | 6.3 | 9.7 |
GAIA Text-103 | 88.7 | 49.5 | 47.9 | 30.1 | 78.6 | 57.3 | 26.5 | 39.5 | 41.1 |
| 通用智能体 | |||||||||
GDPval-AA v2 | 19.6† | 4.5 | 0.0 | 0.0 | 11.7 | 0.0† | 0.0 | 0.0 | 0.0 |
Claw-Gym | 59.2 | 19.3 | 25.5 | 31.3 | 51.6 | 60.0 | 33.7 | 37.9 | 2.7 |
WildClaw | 23.9 | 10.2 | 9.2 | 8.9 | 17.0 | 20.0 | 8.9 | 14.3 | 4.5 |
QwenClaw | 42.9 | 19.3 | 18.2 | 14.5 | 37.1 | 36.4 | 16.8 | 16.7 | 4.5 |
1. 蓝色加粗为该行全场最优结果(含 4B 级模型);黑色加粗为 2B 级模型中的最优结果。
2. 带 † 的分数取自 Artificial Analysis 官方公布值,其余为内部复现结果。
MiniCPM5-2B 的训练过程是 UltraData 分级数据管理体系 的一次完整实践,覆盖 base training、mid-training 与后训练三个阶段。
Base training 采用逐级推进的训练配方,包含 stable training 与 decay training,用于建立基础语言能力与训练稳定性。随后进入 mid-training,进一步强化目标能力并适配数据分布。训练语料来自我们同步开源的 Ultra-FineWeb、Ultra-FineWeb-L3、UltraX、UltraData-Code 与 UltraData-Math。
后训练阶段 分为 SFT、RL 与 OPD 三步。我们首先使用 400B tokens deep-thinking SFT 建立深度思考和通用对话能力,相关 SFT 数据已同步开源为 UltraData-SFT-2605 与 UltraData-SFT-Agent-2609。随后,针对数学、代码、Agent 和写作等方向训练专用 RL teacher(相关数据已同步开源为 UltraData-RL-2609),并通过 On-Policy Distillation (OPD) 将这些 teacher 的能力蒸馏回同一个发布模型。

RL + OPD 是 MiniCPM5-2B 后训练中的关键环节。RL 阶段,使用了 JustRL II 阐述的 critic-based 算法,大幅提升训练稳定性,并在多个领域取得了显著收益。在下列基准中,RL + OPD 使推理与通用能力平均提升 ↑ 10.96 分,Agent 能力平均提升 ↑ 6.96 分。
OPD 阶段对 16 个通过 RL 训练得到的专家模型(含 5 个 agentic 专家模型)实现了能力合并。训练方式上,我们在 response 序列的每个位置,分别对学生模型和教师模型 logits 计算全词表的反向 KL 散度,并将其作为优势估计值,替代原有的 verification-based advantage;训练数据上,OPD 直接复用各 RL teacher 训练时的 prompt 作为蒸馏数据,无需额外构造语料。

pip install "vllm>=0.21"
vllm serve openbmb/MiniCPM5-2B --port 8000curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openbmb/MiniCPM5-2B",
"messages": [{"role": "user", "content": "你是谁?可以简单介绍一下自己吗?"}],
"max_tokens": 128,
"temperature": 1.0
}'pip install "sglang[srt]>=0.5.16"
python -m sglang.launch_server --model-path openbmb/MiniCPM5-2B --port 30000curl http://localhost:30000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openbmb/MiniCPM5-2B",
"messages": [{"role": "user", "content": "你是谁?可以简单介绍一下自己吗?"}],
"max_tokens": 128,
"temperature": 1.0
}'投机采样(DSpark):我们同步开源了专为 MiniCPM5-2B 训练的 DSpark 草稿模型 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 30000pip 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": "你是谁?可以简单介绍一下自己吗?"}]
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))推荐采样参数:temperature=1.0, top_p=0.95
工具调用推荐使用 SGLang。MiniCPM5-2B 以 XML 格式生成工具调用,SGLang 内置的 minicpm5 parser 会将其自动转换为 OpenAI 兼容的 tool_calls 字段。
python -m sglang.launch_server --model-path openbmb/MiniCPM5-2B --port 30000 \
--tool-call-parser minicpm5 # 或:--tool-call-parser autoMiniCPM5-2B 采用标准 LlamaForCausalLM 架构,主流推理引擎可直接加载,无需自定义算子,也无需 fork 模型代码。逐步部署与微调说明请参考下方 GitHub Cookbooks;Agent Skills 以 GitHub 资源形式提供,面向使用 Cursor / Claude Code 类 coding agent 的用户。
| 后端 | 模型格式 / 适用场景 | Cookbook | Agent Skill |
|---|---|---|---|
| Transformers | BF16 / FP16,本地 Python 推理,GPU + CPU | transformers.md | minicpm5-deploy-transformers |
| vLLM | BF16 / FP16,OpenAI 兼容服务 | vllm.md | minicpm5-deploy-vllm |
| SGLang | BF16 / FP16,OpenAI 兼容服务,推荐用于工具调用 | 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 兼容服务 | 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 兼容服务 | vllm_ascend.md | minicpm5-deploy-vllm-ascend |
| 框架 | 适用场景 | 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 |
除上述部署与微调框架外,MiniCPM5-2B 还支持通过 FlagOS 进行多芯片部署。
为解决不同 AI 芯片大规模落地应用的问题,北京智源研究院联合众多科研机构、芯片企业、系统厂商、算法和软件相关单位等国内外机构,共同发起并创立了 FlagOS 开源社区。
FlagOS 社区致力于打造面向多种 AI 芯片的统一、开源系统软件栈,涵盖大型算子库、统一 AI 编译器、并行训推框架、统一通信库等核心开源项目,构建“模型-系统-芯片”三层贯通的开放技术生态;通过“一次开发、跨芯迁移”释放硬件计算潜力,打破不同芯片软件栈之间的生态壁垒,有效降低开发者的迁移成本。FlagOS 社区构建人工智能软硬件生态,突破单一闭源垄断,推动 AI 硬件技术大范围落地发展,立足中国、拥抱全球合作。
官网入口:https://flagos.io
借助 FlagOS,MiniCPM5-2B 在极短时间内完成了对 9 种不同 AI 芯片的适配,这得益于众智 FlagOS 多芯片统一 AI 系统软件栈的能力。目前,在 FlagOS 团队构建的面向多架构人工智能芯片的大模型自动迁移、适配与发布平台 FlagRelease 上,已发布 MiniCPM5-2B 的多芯片版本。详情如下:
FlagRelease 是 FlagOS 团队构建的一套面向多架构人工智能芯片的大模型自动迁移、适配与发布平台,已发布 MiniCPM5-2B 的多芯片版本。FlagRelease 已内置相关软件包,用户无需额外安装。
官方仓库:https://github.com/flagos-ai/FlagGems
pip install flag-gems==4.2.1rc0
pip install triton==3.5.1在 vllm 的推理源码中导入 flagGems,即可启用 flagGems 加速
import flag_gems
flag_gems.enable(record=True, once=True, path="/root/gems.txt")vllm serve ${model_path} \
--trust-remote-code \
--dtype bfloat16 \
--enforce-eager \
--port ${Port} \
--served-model-name ${model_name} \
--gpu-memory-utilization 0.85vllm-plugin-FL 是一款面向 vLLM 推理/服务框架的插件,基于 FlagOS 统一多芯片后端构建,旨在扩展 vLLM 在多种硬件环境下的功能与性能表现。
| 厂商 | 从零开始 | 从 FlagRelease 开始 | |
|---|---|---|---|
| 英伟达 | vllm-plugin-FL/MiniCPM5-2B | MiniCPM5-2B-ModelScope | MiniCPM5-2B-nvidia-FlagOS |
本模型不具备自主意识或法律主体资格。其输出仅为基于统计模式的文本生成结果,可能不准确、带有偏见或具有冒犯性,也可能在精心设计的提示词(“越狱”)引导下生成不符合预期的内容。对于政治、健康、金融、法律等敏感话题的回答未经专家审核,不应视为专业建议。
本模型按“现状”提供,不附带任何明示或默示担保,开发者不对因使用本模型而产生的任何损害承担责任。使用者应仅将模型用于合法、合规且符合伦理的目的,自行配置必要的安全措施,并依据当地要求标识 AI 生成内容;不得故意实施越狱、注入攻击或诱导模型生成有害内容;如进行此类测试,相关风险由使用者自行承担。
MiniCPM 模型权重与相关代码依照 Apache-2.0 协议发布。
如果我们的工作对您有所帮助,请引用:
@article{minicpm4,
title={Minicpm4: Ultra-efficient llms on end devices},
author={MiniCPM, Team},
journal={arXiv preprint arXiv:2506.07900},
year={2025}
}