MiniCPM 论文 | MiniCPM 知识库 | MiniCPM-V 仓库 | 加入我们的 discord 和 微信群 | 加入我们
- [2026.02.11] MiniCPM-SALA 发布!这是首个经过大规模实验验证的稀疏与线性混合注意力模型,支持百万词元的有效处理与高效推理。🔥🔥🔥
- [2025.09.29] **发布 InfLLM-V2详细技术论文!**仅需5B长文本词元,即可完成稀疏注意力能力的训练🔥🔥🔥
- [2025.09.05] 发布 MiniCPM4.1!该模型基于原生稀疏注意力架构(InfLLM-V2),支持混合思考。🔥🔥🔥
- [2025.06.06] 发布 MiniCPM4!该模型在保持同等规模最优性能的同时,实现了极致的效率提升!在典型端侧芯片上能够实现 5 倍以上生成加速!
- [2024.09.05] 发布 MiniCPM3-4B!该模型的表现超越 Phi-3.5-mini-instruct 和 GPT-3.5-Turbo-0125,并且能够比肩 Llama3.1-8B-Instruct、Qwen2-7B-Instruct、GLM-4-9B-Chat 等多个 7B-9B 参数量的模型。
- [2024.07.05] 发布 MiniCPM-S-1B!该模型在保持下游任务性能无损的前提下,FFN 层实现了 87.89% 的平均稀疏度,将 FFN FLOPs 降低了 84%。
- [2024.04.11] 发布 MiniCPM-2B-128k、MiniCPM-MoE-8x2B 和 MiniCPM-1B!点击这里查看技术博客。
- [2024.02.01] 发布 MiniCPM-2B!该模型在公开评测集上与 Mistral-7B 表现相近(中文、数学、代码能力更优),整体性能超越 Llama2-13B、MPT-30B、Falcon-40B 等模型。
- 更新日志🔥
- 目录
- 模型下载
- MiniCPM-SALA
- MiniCPM4 和 MiniCPM4.1 系列
- 开源协议
- 开发机构
- 工作引用
📋 点击展开查看所有 MiniCPM 系列模型
MiniCPM-SALA(稀疏注意力与线性注意力)是首个高效融合稀疏与线性注意力机制、支持百万令牌上下文建模的大规模混合模型
✅ 创新混合架构:融合 25% 稀疏注意力(InfLLM-v2)实现高精度长文本建模,搭配 75% 线性注意力(Lightning Attention)保障全局处理效率。
✅ 突破效率壁垒:打破“计算墙”与“内存墙”限制,相比密集注意力基线实现 3.5 倍推理加速,并显著降低KV缓存开销。
✅ 百万令牌上下文:依托长上下文感知位置编码技术 HyPE,可扩展至 100 万+ 令牌容量,同时保持优异的长文本泛化能力。
✅ HALO 适应机制:采用 HALO 分层优化混合注意力技术,通过创新的蒸馏方案将密集注意力能力有效迁移至混合架构,规避纯线性模型常见的严重性能衰减问题。
MiniCPM-SALA 是一种高效的混合模型,其中 25% 的层采用 InfLLM-V2,其余 75% 使用 Lightning Attention。这种架构能在 NVIDIA RTX 5090 等消费级 GPU 上进行一百万令牌(tokens)的推理。
-
SALA 混合注意力机制
- 整合了 25% 的 InfLLM-V2 和 75% 的 Lightning Attention,有效地利用了稀疏注意力对局部细节的细粒度聚焦,以及线性注意力对广泛上下文的高效率。
-
Transformer 到混合架构的持续训练
- 通过对预训练权重进行架构转换,规避了冷启动训练的低效性,从而将总训练预算降至从头训练同类模型的约 25%。
-
HyPE (混合位置编码)
- 协调了短上下文和长上下文的性能,能够保持与 Qwen3-8B 等现代全注意力模型相当的通用能力(如知识、数学和编程),并在多个长上下文基准测试中取得显著优势。
-
长序列的高效推理
- 在 NVIDIA A6000D 上、序列长度为 256K 令牌时,推理速度达到 Qwen3-8B 的 3.5 倍;支持在 NVIDIA A6000D 和 RTX 5090 GPU 上进行高达 1M 令牌的上下文长度推理,而 Qwen3-8B 在此长度下因显存溢出(OOM)而失败。
我们针对 MiniCPM-SALA (9B) 与 Qwen3-8B 在 NVIDIA A6000D 和 RTX 5090 GPU 上的表现进行了推理效率测试。MiniCPM-SALA 不仅在首字响应时间(TTFT)上实现了高达 2.5 倍的加速,还成功突破了全注意力机制架构的显存瓶颈。在超长文本处理中,Qwen3-8B 因显存溢出(OOM)而失败,而 MiniCPM-SALA 则能在单块消费级 RTX 5090 显卡上成功处理一百万词元的上下文,有望支持在边缘硬件上进行超长上下文推理。
在大多数长上下文基准测试中,MiniCPM-SALA 的表现始终优于所测试的其他同等规模的开源模型。具体而言,MiniCPM-SALA 在 RULER 和 NoLiMa 测试的所有长度范围(最高 128K)内均取得了最高分,并取得了 38.97 的最高综合平均分,表明其在长文本信息处理方面的强大性能。
MiniCPM-SALA 展现出出色的长度外推能力。尽管其训练长度最长为 520K 词元,但在 2048K 的上下文长度下仍能保持 81.6 的高分。该模型无需借助 YaRN 等辅助技术即可实现有效外推,这可能得益于其在稀疏注意力层中采用的无位置编码(NoPE)配置,提升了模型长距离建模的能力。
MiniCPM-SALA 在多项标准基准测试中的平均得分为 76.53,优于 Qwen3-8B 和 Falcon-H1R-7B 等同类模型。该架构在常识知识、代码生成及数学逻辑等维度均保持了稳健的性能表现。
为了获得最佳性能,我们建议使用 Temperature=0.9。
我们的模型与 🤗 Hugging Face transformers 完全兼容。你可以通过以下代码进行推理:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "openbmb/MiniCPM-SALA"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True, device_map="auto")
model.eval()
prompts = ["My name is", "The capital of China is"]
with torch.no_grad():
inputs = tokenizer(prompts, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs)
output_texts = tokenizer.batch_decode(outputs)
print(output_texts)- CUDA 12.x 或更高版本
gcc/g++编译器uv包管理器(脚本会自动检测)
# 克隆仓库
git clone -b minicpm_sala https://github.com/OpenBMB/sglang.git
cd sglang
# 一键安装(自动创建虚拟环境并编译所有依赖)
bash install_minicpm_sala.sh
# 或指定 PyPI 镜像源
bash install_minicpm_sala.sh https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple安装脚本会自动完成以下步骤:
- 创建
sglang_minicpm_sala_env虚拟环境(Python 3.12) - 克隆依赖到
3rdparty/目录 (infllmv2) 并初始化子模块 (sparse_kernel) - 安装 MiniCPM-SALA (当前仓库)
- 编译安装
infllmv2_cuda_impl - 编译安装
sparse_kernel - 安装
tilelang和flash-linear-attention
# 激活环境
source sglang_minicpm_sala_env/bin/activate
# 启动推理服务(将 MODEL_PATH 替换为实际模型路径)
MODEL_PATH=/path/to/your/model
python3 -m sglang.launch_server \
--model ${MODEL_PATH} \
--trust-remote-code \
--disable-radix-cache \
--attention-backend minicpm_flashinfer \
--chunked-prefill-size 8192 \
--max-running-requests 32 \
--skip-server-warmup \
--port 31111 \
--dense-as-sparse| 参数 | 说明 |
|---|---|
--trust-remote-code |
允许加载模型自带的自定义代码 |
--disable-radix-cache |
禁用 RadixAttention 前缀缓存 |
--attention-backend minicpm_flashinfer |
使用 MiniCPM FlashInfer 注意力后端 |
--chunked-prefill-size 8192 |
chunked prefill 大小 |
--max-running-requests 32 |
最大并发推理请求数 |
--skip-server-warmup |
跳过服务预热 |
--port 31111 |
服务端口 |
--dense-as-sparse |
使用 dense-as-sparse 模式 |
如果一键脚本不满足需求,可以分步执行:
# 0. 确保 uv 可用
pip install uv
# 1. 创建虚拟环境
uv venv --python 3.12 sglang_minicpm_sala_env
source sglang_minicpm_sala_env/bin/activate
# 2. 安装 SGLang
uv pip install --upgrade pip setuptools wheel
uv pip install -e ./python[all]
# 3. 编译安装 CUDA 扩展
# (确保依赖已克隆到 3rdparty/ 目录)
cd 3rdparty/infllmv2_cuda_impl && python setup.py install && cd ../..
cd 3rdparty/sparse_kernel && python setup.py install && cd ../..
# 4. 安装额外依赖
uv pip install tilelang flash-linear-attentionQ: CUDA 扩展编译失败怎么办?
- 确保系统安装了 CUDA 12 以上(
nvcc --version检查)。 - 确保
gcc/g++可用。 - 如果
CXX环境变量被设为clang++ -pthread,手动export CXX=g++。
MiniCPM4.1具有如下亮点:
✅ 强大的推理能力:在15项任务中超越同等规模模型!
✅ 快速生成:相比同等规模模型,推理解码速度提升3倍!
✅ 高效架构:使用可训练的稀疏注意力机制、高效投机解码加速生成!
MiniCPM4 和 MiniCPM4.1 系列是一个极致高效的端侧大模型,从模型架构、学习算法、训练数据与推理系统四个层面进行了高效优化,实现了极致的效率提升。
- 🏗️ 高效模型架构:
- InfLLM-V2 -- 可训练的稀疏注意力机制:采用可训练的稀疏注意力机制架构,在 128K 长文本处理中,每个词元仅需与不足 5% 的词元进行相关性计算,显著降低长文本的计算开销 (训练算子)
- 🧠 高效学习算法:
- 模型风洞 2.0 -- 高效 Predictable Scaling:引入下游任务的 Scaling 预测方法,实现更精准的模型训练配置搜索
- BitCPM -- 极致的三值量化:将模型参数位宽压缩至 3 值,实现模型位宽 90% 的极致瘦身
- 高效训练工程优化:采用 FP8 低精度计算技术,结合多词元预测(Multi-token Prediction)训练策略
- 📚 高知识密度训练数据:
- UltraClean -- 高质量预训练数据的清洗与合成:构建基于高效验证的迭代式数据清洗策略,开源高质量中英文预训练数据集 UltraFineweb
- UltraChat v2 -- 高质量有监督微调数据合成:构建大规模高质量有监督微调数据集,涵盖知识密集型数据、推理密集型数据、指令遵循数据、长文本理解数据、工具调用数据等多个维度
- ⚡ 高效推理系统:
- CPM.cu -- 轻量级的高效CUDA推理框架:融合了稀疏注意力机制、模型量化与投机采样,充分体现MiniCPM4/MiniCPM4.1的效率优势 (推理算子与框架)
- ArkInfer -- 跨平台部署系统:支持多后端环境的一键部署,提供灵活的跨平台适配能力
在 Jetson AGX Orin 和 RTX 4090 两款典型端侧芯片上,MiniCPM4 和 MiniCPM4.1 在长文本处理任务中展现出大幅领先同尺寸模型的处理速度。随着文本长度的增加,MiniCPM4 和 MiniCPM4.1 的性能优势愈发显著。在 Jetson AGX Orin 平台上,相较于 Qwen3-8B,MiniCPM4 实现了约 7 倍的生成速度提升。
MiniCPM4.1 在推理速度上实现了 3 倍的生成速度提升。
MiniCPM4.1 推出端侧 8B 参数规模版本,深思考模式在同级别模型中实现了最佳性能表现。

MiniCPM4 推出端侧 8B、0.5B 两种参数规模版本,均在同级别模型中实现了最佳性能表现。

MiniCPM4 基于 32K 长文本进行预训练,并通过 YaRN 技术实现长度扩展。在 128K 长文本的大海捞针任务中,MiniCPM4 展现出卓越的性能表现。MiniCPM4.1 基于 64K 长文本进行预训练,并通过 YaRN 技术实现长度扩展。在 128K 长文本的大海捞针任务中,MiniCPM4.1 展现出卓越的性能表现。
你可以使用Huggingface Transformers、vLLM、SGLang、CPM.cu对模型进行推理。如果想要体验极致的效率优化,我们推荐使用CPM.cu。
MiniCPM4/MiniCPM4.1 支持稠密推理与稀疏推理两种模式,其中vLLM与SGLang目前只支持了稠密推理模式。如果想要使用稀疏推理模式,请使用Huggingface Transformers及CPM.cu。
- 稠密注意力推理:vLLM、SGLang、Huggingface Transformers
- 稀疏注意力推理:Huggingface Transformers、CPM.cu
MiniCPM4.1 支持混合思考模式,可以用于深度思考和非思考模式。用户可以通过设置 enable_thinking=True 来启用混合思考模式,设置 enable_thinking=False 来启用非思考模式。同样,用户可以直接在查询末尾添加 /no_think 来启用非思考模式。如果未添加任何特殊标记或在查询末尾添加 /think,模型将启用思考模式。
# Enable reasoning mode
prompt_text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True
)
# Enable non-reasoning mode
prompt_text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False
)- 稠密注意力推理
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
torch.manual_seed(0)
path = 'openbmb/MiniCPM4.1-8B'
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained(path)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.bfloat16, device_map=device, trust_remote_code=True)
# User can directly use the chat interface
# responds, history = model.chat(tokenizer, "Write an article about Artificial Intelligence.", temperature=0.7, top_p=0.7)
# print(responds)
# User can also use the generate interface
messages = [
{"role": "user", "content": "Write an article about Artificial Intelligence."},
]
prompt_text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
model_inputs = tokenizer([prompt_text], return_tensors="pt").to(device)
model_outputs = model.generate(
**model_inputs,
max_new_tokens=32768,
top_p=0.95,
temperature=0.6
)
output_token_ids = [
model_outputs[i][len(model_inputs[i]):] for i in range(len(model_inputs['input_ids']))
]
responses = tokenizer.batch_decode(output_token_ids, skip_special_tokens=True)[0]
print(responses)- 稀疏注意力推理 本模型支持稀疏注意力机制 InfLLM v2,可高效处理长序列推理。如需启用该功能,请先安装依赖库 infllmv2_cuda_impl
运行以下命令即可安装:
git clone -b feature_infer https://github.com/OpenBMB/infllmv2_cuda_impl.git
cd infllmv2_cuda_impl
git submodule update --init --recursive
pip install -e . # or python setup.py install 启用 InfLLM v2 需在 config.json 配置文件中添加 sparse_config 字段:
{
...,
"sparse_config": {
"kernel_size": 32,
"kernel_stride": 16,
"init_blocks": 1,
"block_size": 64,
"window_size": 2048,
"topk": 64,
"use_nope": false,
"dense_len": 8192
}
}这些参数控制 InfLLM v2 的行为:
kernel_size(默认值:32):语义核的大小。kernel_stride(默认值:16):相邻语义核的步长。init_blocks(默认值:1):每个 query token 关注的初始的块数量,用于确保关注序列开头部分。block_size(默认值:64):key-value blocks 的块大小。window_size(默认值:2048):局部滑动窗口大小。topk(默认值:64):每个 token 仅与最相关的 top-k 个 key-value blocks 计算注意力。use_nope(默认值:false):是否在块选择中使用NOPE技术以提升性能。dense_len(默认值:8192):稀疏注意力对短序列收益有限,当 token 长度低于此阈值时自动切换为标准注意力。设为-1则强制始终使用稀疏注意力。
- 长度扩展 Minicpm4.1 原生支持 65,536 tokens 的上下文长度。若对话总长度(输入 + 输出)远超此限制,建议通过 RoPE 缩放技术扩展上下文。我们已验证通过调整 LongRoPE 因子,模型可稳定支持 131,072 tokens 的超长上下文。
修改方法:在 config.json 文件中调整 rope_scaling 字段参数即可。
{
...,
"rope_scaling": {
"rope_type": "longrope",
"long_factor": [0.9982316082870437, 1.033048153422584, 1.0749920956484724, 1.1255096879436193, 1.1863348602111476, 1.259543828902579, 1.3476188888731149, 1.4535223827776373, 1.5807816745852985, 1.7335856049489526, 1.9168922912975785, 2.1365471404135326, 2.3994084200118646, 2.713475511863602, 3.0880118452194134, 3.533650295140154, 4.062463396503134, 4.687974098908333, 5.425075306704039, 6.289818967956352, 7.29902962722721, 8.6357018163639, 10.210822723989212, 12.053807765671676, 14.193944598909404, 16.65780676784363, 19.463620727694074, 22.628311203524586, 26.150106147261315, 30.02526691405111, 34.23183327975347, 38.73811934094828, 43.502489489729555, 48.47627117965394, 53.61139491762471, 58.857366522037935, 64.16798299215064, 69.51359464319125, 74.86555458220285, 80.21497790341579, 85.55322183307433, 90.89611806932027, 96.26245306514224, 101.68269304046481, 107.18619510219668, 112.82253283014026, 118.63764063163615, 119.88866203644656, 120.9462882391725, 121.837565139014, 122.58663780572562, 123.2147719894291, 123.74049454862576, 124.17980424685767, 124.54641761955492, 124.85202548028222, 125.10654406389756, 125.31835105170659, 125.49450117164764, 125.64091910903052, 125.76256945356558, 125.86360463815589, 125.94749252260765, 126.01712561287873],
"short_factor": [0.9982316082870437, 1.033048153422584, 1.0749920956484724, 1.1255096879436193, 1.1863348602111476, 1.259543828902579, 1.3476188888731149, 1.4535223827776373, 1.5807816745852985, 1.7335856049489526, 1.9168922912975785, 2.1365471404135326, 2.3994084200118646, 2.713475511863602, 3.0880118452194134, 3.533650295140154, 4.062463396503134, 4.687974098908333, 5.425075306704039, 6.289818967956352, 7.29902962722721, 8.6357018163639, 10.210822723989212, 12.053807765671676, 14.193944598909404, 16.65780676784363, 19.463620727694074, 22.628311203524586, 26.150106147261315, 30.02526691405111, 34.23183327975347, 38.73811934094828, 43.502489489729555, 48.47627117965394, 53.61139491762471, 58.857366522037935, 64.16798299215064, 69.51359464319125, 74.86555458220285, 80.21497790341579, 85.55322183307433, 90.89611806932027, 96.26245306514224, 101.68269304046481, 107.18619510219668, 112.82253283014026, 118.63764063163615, 119.88866203644656, 120.9462882391725, 121.837565139014, 122.58663780572562, 123.2147719894291, 123.74049454862576, 124.17980424685767, 124.54641761955492, 124.85202548028222, 125.10654406389756, 125.31835105170659, 125.49450117164764, 125.64091910903052, 125.76256945356558, 125.86360463815589, 125.94749252260765, 126.01712561287873],
"original_max_position_embeddings": 65536
}
}你可以使用投机采样加速模型生成,也可以使用标准模式部署模型。
使用 vLLM 进行加速推理的投机采样步骤如下:
首先,下载 MiniCPM4.1 草稿模型:
cd /your_path
git clone https://huggingface.co/openbmb/MiniCPM4.1-8B-Eagle3EAGLE3 的 vLLM PR 已经提交。目前请使用我们的仓库进行安装:
git clone https://github.com/LDLINGLINGLING/vllm.git
cd vllm
pip install -e .启动启用了投机采样的 vLLM 推理服务。请确保在 speculative-config 中将模型路径更新为下载的 MiniCPM4_1-8B-Eagle3-bf16 文件夹:
VLLM_USE_V1=1 \
vllm serve openbmb/MiniCPM4.1-8B \
--seed 42 \
--trust-remote-code \
--speculative-config '{
"model": "your/path/MiniCPM4_1-8B-Eagle3-bf16",
"num_speculative_tokens": 3,
"method": "eagle3",
"draft_tensor_parallel_size": 1
}'客户端使用方式在标准解码和投机采样下保持一致:
import openai
client = openai.Client(base_url="http://localhost:8000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="openbmb/MiniCPM4.1-8B",
messages=[
{"role": "user", "content": "Write an article about Artificial Intelligence."},
],
temperature=0.6,
max_tokens=32768,
extra_body=dict(add_special_tokens=True), # 确保在聊天模板中加入特殊符号
)
print(response.choices[0].message.content)VLLM_USE_V1=1: 启用 vLLM v1 API--speculative-config: 投机采样的 JSON 配置model: 草稿模型的路径num_speculative_tokens: 推测的 token 数量(默认:3)method: 投机采样方法(eagle3)draft_tensor_parallel_size: 草稿模型的张量并行大小(默认:1)--seed: 随机种子,用于可复现性--trust-remote-code: 允许执行远程代码以支持自定义模型
目前你需要安装最新版本的 vLLM。
pip install -U vllm \
--pre \
--extra-index-url https://wheels.vllm.ai/nightly然后可以用 vLLM 推理 MiniCPM4.1-8B:
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "openbmb/MiniCPM4.1-8B"
prompt = [{"role": "user", "content": "Write an article about Artificial Intelligence."}]
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
input_text = tokenizer.apply_chat_template(prompt, tokenize=False, add_generation_prompt=True)
llm = LLM(
model=model_name,
trust_remote_code=True,
max_num_batched_tokens=65536,
dtype="bfloat16",
gpu_memory_utilization=0.8,
)
sampling_params = SamplingParams(top_p=0.95, temperature=0.6, max_tokens=32768)
outputs = llm.generate(prompts=input_text, sampling_params=sampling_params)
print(outputs[0].outputs[0].text)你也可以通过以下命令启动推理服务:
注意: 在 vLLM 的 chat API 中,add_special_tokens 默认是 False。这意味着重要的特殊符号——比如序列开始符(BOS token)——不会被自动加入。为了确保输入提示对模型格式正确,建议显式设置 extra_body={"add_special_tokens": True}。
vllm serve openbmb/MiniCPM4.1-8B --trust-remote-code然后可以通过以下代码使用聊天接口:
import openai
client = openai.Client(base_url="http://localhost:8000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="openbmb/MiniCPM4.1-8B",
messages=[
{"role": "user", "content": "Write an article about Artificial Intelligence."},
],
temperature=0.6,
max_tokens=32768,
extra_body=dict(add_special_tokens=True), # 确保在聊天模板中加入特殊符号
)
print(response.choices[0].message.content)你可以使用投机采样加速模型生成,也可以使用标准模式部署模型。
使用投机采样进行加速推理的步骤如下:
首先,下载 MiniCPM4.1 草稿模型:
cd /your_path
git clone https://huggingface.co/openbmb/MiniCPM4.1-8B-Eagle3EAGLE3 的适配 PR 已经提交。目前请使用我们的仓库进行安装:
git clone https://github.com/LDLINGLINGLING/sglang.git
cd sglang
pip install -e .启动启用了投机采样的 SGLang 服务:
python -m sglang.launch_server \
--model-path "openbmb/MiniCPM4.1-8B" \
--host "127.0.0.1" \
--port 30002 \
--mem-fraction-static 0.9 \
--speculative-algorithm EAGLE3 \
--speculative-draft-model-path "your/path/MiniCPM4_1-8B-Eagle3-bf16" \
--speculative-num-steps 3 \
--speculative-eagle-topk 1 \
--speculative-num-draft-tokens 32 \
--temperature 0.7客户端使用方式在标准解码和投机采样下保持一致:
import openai
client = openai.Client(base_url=f"http://localhost:30002/v1", api_key="None")
response = client.chat.completions.create(
model="openbmb/MiniCPM4.1-8B",
messages=[
{"role": "user", "content": "Write an article about Artificial Intelligence."},
],
temperature=0.6,
max_tokens=32768,
)
print(response.choices[0].message.content)注意:请确保在客户端代码中更新端口号,以匹配服务端端口(在投机采样示例中为 30002)。
--speculative-algorithm EAGLE3: 启用 EAGLE3 投机采样--speculative-draft-model-path: 草稿模型路径--speculative-num-steps: 推测步数(默认:3)--speculative-eagle-topk: EAGLE 的 top-k 参数(默认:1)--speculative-num-draft-tokens: 草稿 token 数量(默认:32)--mem-fraction-static: 静态分配的显存比例(默认:0.9)
目前你需要安装我们 fork 的 SGLang 版本。
git clone -b openbmb https://github.com/OpenBMB/sglang.git
cd sglang
pip install --upgrade pip
pip install -e "python[all]"你可以通过以下命令启动推理服务:
python -m sglang.launch_server --model openbmb/MiniCPM4.1-8B --trust-remote-code --port 30000 --chat-template chatml然后可以通过以下代码使用聊天接口:
import openai
client = openai.Client(base_url=f"http://localhost:30000/v1", api_key="None")
response = client.chat.completions.create(
model="openbmb/MiniCPM4.1-8B",
messages=[
{"role": "user", "content": "Write an article about Artificial Intelligence."},
],
temperature=0.6,
max_tokens=32768,
)
print(response.choices[0].message.content)我们推荐使用 CPM.cu 对 MiniCPM4 和 MiniCPM4.1 模型进行推理。CPM.cu 是面壁开发的一个集合了高效稀疏、投机采样、量化等技术的 CUDA 推理框架,能够完全发挥 MiniCPM4 和 MiniCPM4.1 的效率优势。
你可以通过以下脚本安装 CPM.cu 并进行推理:
git clone https://github.com/OpenBMB/CPM.cu.git --recursive
cd CPM.cu
python3 setup.py install你可以通过以下命令进行推理并查看模型的运行速度。
python3 tests/long_prompt_gen.py # 生成 prompt.txt
python3 tests/test_generate.py --prompt-file prompt.txt你可以通过一下命令使用 EAGLE3 进行投机推理。
python3 -m cpmcu.cli \
--model-path $BASE_MODEL_PATH \
--draft-model-path $EAGLE3_DRAFT_MODEL_PATH \
--prompt-text "Tell me about Tsinghua University" \
--use-eagle3 true更多关于 CPM.cu 的细节,请参考 CPM.cu 仓库。
我们同样支持使用 llama.cpp 和 Ollama 进行模型推理。
你可以从 huggingface 下载 MiniCPM4.1-8B 的 GGUF 格式模型,并使用 llama.cpp 进行推理。
# case 1: main-cli
./build/bin/llama-cli -m MiniCPM4.1-8B-Q4_K_M.gguf -p "Write an article about Artificial
Intelligence." -n 1500
# case 2: server
## launch server
./build/bin/llama-server -m MiniCPM4.1-8B-Q4_K_M.gguf --host 127.0.0.1 --port 8080 -c
4096 -fa on &
## send request
curl -X POST http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Write an article about Artificial
Intelligence."}],
"max_tokens": 1500
}'
请前往 模型库 下载模型。安装好 Ollama 后,可以通过以下命令使用 MiniCPM4.1:
ollama run openbmb/minicpm4.1
目前模型微调支持 LLaMA-Factory,使用方法参考 LLaMA-Factory 微调
BitCPM4 是基于 MiniCPM 系列模型进行量化感知训练(QAT)后得到的三值量化模型,在训练效率和模型参数效率实现了有效的提升。
- 训练方法改进
- 在小规模模型上进行风洞实验,搜索训练所需的训练超参。
- 通过使用一阶段高精训练+二阶段 QAT 的方法,充分利用已经完成或部分完成训练的高精度模型,极大地压缩了 QAT 阶段所需要的算力。
- 高效参数效率
- 模型使用 1.58Bit 的位宽达到的性能对标与同参数量级别的全精度模型,模型参数效率高。
BitCPM4 在测试中的表现可以对标同级别的业界主流全精度模型。

BitCPM4 开源的模型参数为伪量化形式,可以直接使用 Huggingface 框架进行推理。
查看 MiniCPM4 的应用
#### MiniCPM4-Survey: 综述生成 MiniCPM4-Survey 是由 [THUNLP](https://nlp.csai.tsinghua.edu.cn)、中国人民大学和 [ModelBest](https://modelbest.cn/en) 联合开发的开源大语言模型智能体。它基于 MiniCPM4-8B 基座模型,接受用户质量作为输入,自主生成可信的长篇综述论文。 主要特性包括: - 计划-检索-写作生成框架 — 我们提出了一个多智能体生成框架,包含三个核心阶段:计划(定义综述的整体结构)、检索(生成合适的检索关键词)和写作(利用检索到的信息,生成连贯的段落)。 - 高质量数据集构建——我们收集并处理大量人类专家写作的综述论文,构建高质量训练集。同时,我们收集大量研究论文,构建检索数据库。 - 多方面奖励设计 — 我们精心设计了包含结构、内容和引用的奖励,用于评估综述的质量,在强化学习训练阶段作奖励函数。 - 多步强化学习训练策略 — 我们提出了一个上下文管理器,以确保在促进有效推理的同时保留必要的信息,并构建了并行环境,维持强化学习训练高效。 ##### 使用与演示案例详见此处
| Method | Relevance | Coverage | Depth | Novelty | Avg. | Fact Score |
|---|---|---|---|---|---|---|
| Naive RAG (driven by G2FT) | 3.25 | 2.95 | 3.35 | 2.60 | 3.04 | 43.68 |
| AutoSurvey (driven by G2FT) | 3.10 | 3.25 | 3.15 | 3.15 | 3.16 | 46.56 |
| Webthinker (driven by WTR1-7B) | 3.30 | 3.00 | 2.75 | 2.50 | 2.89 | -- |
| Webthinker (driven by QwQ-32B) | 3.40 | 3.30 | 3.30 | 2.50 | 3.13 | -- |
| OpenAI Deep Research (driven by GPT-4o) | 3.50 | 3.95 | 3.55 | 3.00 | 3.50 | -- |
| MiniCPM4-Survey | 3.45 | 3.70 | 3.85 | 3.00 | 3.50 | 68.73 |
| w/o RL | 3.55 | 3.35 | 3.30 | 2.25 | 3.11 | 50.24 |
GPT-4o 对综述生成系统的性能比较。“G2FT” 代表 Gemini-2.0-Flash-Thinking,“WTR1-7B” 代表 Webthinker-R1-7B。由于 Webthinker 不包括引用功能,OpenAI Deep Research 在导出结果时不提供引用,因此省略了对它们的 FactScore 评估。我们的技术报告中包含评测的详细信息。
MiniCPM4-MCP 是由清华大学自然语言处理实验室(THUNLP)、中国人民大学与 ModelBest 联合开发的开源本地大语言模型代理,它基于 MiniCPM-4-8B,拥有 80 亿参数。它能够通过 MCP 协议与各种工具和数据资源交互,解决多种真实世界任务。截至目前,MiniCPM4-MCP 已支持:
-
涵盖 16 个 MCP 服务器(servers)中工具的使用:这些服务器所包含的工具横跨了办公类、生活类、通讯类、资讯类、工作管理类等.
-
单工具使用的能力:可使用符合 MCP 协议的工具进行单一工具的一步或多步调用。
-
跨工具组合使用的能力:可组合使用符合 MCP 协议的不同工具。
详见此处
| MCP 服务器 | gpt-4o | qwen3 | minicpm4 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 函数名正确率 | 参数名正确率 | 数值正确率 | 函数名正确率 | 参数名正确率 | 数值正确率 | 函数名正确率 | 参数名正确率 | 数值正确率 | |
| Airbnb | 89.3 | 67.9 | 53.6 | 92.8 | 60.7 | 50.0 | 96.4 | 67.9 | 50.0 |
| Amap-Maps | 79.8 | 77.5 | 50.0 | 74.4 | 72.0 | 41.0 | 89.3 | 85.7 | 39.9 |
| Arxiv-MCP-Server | 85.7 | 85.7 | 85.7 | 81.8 | 54.5 | 50.0 | 57.1 | 57.1 | 52.4 |
| Calculator | 100.0 | 100.0 | 20.0 | 80.0 | 80.0 | 13.3 | 100.0 | 100.0 | 6.67 |
| Computor-Control-MCP | 90.0 | 90.0 | 90.0 | 90.0 | 90.0 | 90.0 | 90.0 | 90.0 | 86.7 |
| Desktop-Commander | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 |
| Filesystem | 63.5 | 63.5 | 31.3 | 69.7 | 69.7 | 26.0 | 83.3 | 83.3 | 42.7 |
| Github | 92.0 | 80.0 | 58.0 | 80.5 | 50.0 | 27.7 | 62.8 | 25.7 | 17.1 |
| Gaode | 71.1 | 55.6 | 17.8 | 68.8 | 46.6 | 24.4 | 68.9 | 46.7 | 15.6 |
| MCP-Code-Executor | 85.0 | 80.0 | 70.0 | 80.0 | 80.0 | 70.0 | 90.0 | 90.0 | 65.0 |
| MCP-Docx | 95.8 | 86.7 | 67.1 | 94.9 | 81.6 | 60.1 | 95.1 | 86.6 | 76.1 |
| PPT | 72.6 | 49.8 | 40.9 | 85.9 | 50.7 | 37.5 | 91.2 | 72.1 | 56.7 |
| PPTx | 64.2 | 53.7 | 13.4 | 91.0 | 68.6 | 20.9 | 91.0 | 58.2 | 26.9 |
| Simple-Time-Server | 90.0 | 70.0 | 70.0 | 90.0 | 90.0 | 90.0 | 90.0 | 60.0 | 60.0 |
| Slack | 100.0 | 90.0 | 70.0 | 100.0 | 100.0 | 65.0 | 100.0 | 100.0 | 100.0 |
| Whisper | 90.0 | 90.0 | 90.0 | 90.0 | 90.0 | 90.0 | 90.0 | 90.0 | 30.0 |
| 平均值 | 80.2 | 70.2 | 49.1 | 83.5 | 67.7 | 43.8 | 88.3 | 76.1 | 51.2 |
MiniCPM Intel AIPC Client 是面壁智能和 Intel 合作推出的端侧大模型客户端,专为搭载 Intel Core Ultra 系列处理器的设备设计,旨在为开发者、研究人员与 AI 爱好者带来低延迟、高效率、高隐私的本地大模型使用体验。其核心特性如下:
- 深度适配 Intel 硬件:全面支持 Intel Core Ultra 系列处理器,实现与硬件的深度融合,充分释放硬件性能,让用户无需依赖云端,在本地设备上就能流畅运行大模型。
- 基于 OpenVINO 的极致优化:基于 OpenVINO 推理框架进行深度优化,大幅提升推理效率,推理速度最高可达每秒 80 tokens,确保模型响应迅速,无论是快速问答还是复杂任务处理,都能高效完成。
- 隐私安全保障:采用本地部署方式,所有数据处理均在本地设备完成,避免数据上传至云端带来的隐私风险,让用户使用更安心,尤其适合对数据隐私要求较高的场景。
- 面向多元用户群体:无论是追求前沿技术的开发者,专注学术研究的科研人员,还是热衷于探索 AI 应用的爱好者,都能通过 MiniCPM Intel AIPC Client,轻松体验本地大模型的强大功能,开启个性化的 AI 探索之旅 。
配置要求:
- 建议使用英特尔酷睿 ultra7 及以上移动端处理器
- 建议运行内存 32GB 及以上
应用下载:
- 本仓库中代码与 MiniCPM 模型权重依照 Apache-2.0 协议开源
- 作为一个语言模型,MiniCPM 通过学习大量的文本来生成内容,但它无法理解、表达个人观点或价值判断,它所输出的任何内容都不代表模型开发者的观点和立场。
- 因此用户在使用 MiniCPM 生成的内容时,应自行负责对其进行评估和验证。
- 如果由于使用 MiniCPM 开源模型而导致的任何问题,包括但不限于数据安全问题、公共舆论风险,或模型被误导、滥用、传播或不当利用所带来的任何风险和问题,我们将不承担任何责任。
本项目由以下机构共同开发:
- 如果觉得 MiniCPM 有助于您的工作,请引用我们的论文:MiniCPM4
@article{minicpm4,
title={Minicpm4: Ultra-efficient llms on end devices},
author={MiniCPM, Team},
journal={arXiv preprint arXiv:2506.07900},
year={2025}
}












