🚀 MiniCPM4
MiniCPM4是专为端侧设备设计的高效大语言模型,通过在模型架构、训练数据、训练算法和推理系统四个关键维度进行系统创新,实现了极致的效率提升。在典型的端侧芯片上,它能实现超过5倍的生成加速。
🚀 快速开始
你可以通过以下链接访问项目相关资源:
同时,欢迎加入我们的交流社区:
✨ 主要特性
最新动态
- [2025.06.06] MiniCPM4 系列模型发布!该模型在相同规模下保持最佳性能的同时,实现了极致的效率提升!在典型的端侧芯片上,它能实现超过5倍的生成加速。你可以点击此处查看技术报告。🔥🔥🔥
MiniCPM4系列模型
MiniCPM4系列是专门为端侧设备设计的高效大语言模型,通过在模型架构、训练数据、训练算法和推理系统四个关键维度进行系统创新,实现了极致的效率提升。
高效优化维度
-
🏗️ 高效模型架构:
- InfLLM v2 -- 可训练的稀疏注意力机制:采用可训练的稀疏注意力机制架构,在处理128K长文本时,每个token只需与不到5%的token计算相关性,显著降低了长文本的计算开销。
-
🧠 高效学习算法:
- 模型风洞2.0 -- 高效可预测的缩放:引入下游任务性能的缩放预测方法,实现更精确的模型训练配置搜索。
- BitCPM -- 极致三元量化:将模型参数位宽压缩至3个值,实现90%的极端模型位宽缩减。
- 高效训练工程优化:采用FP8低精度计算技术,结合多token预测训练策略。
-
📚 高质量训练数据:
- UltraClean -- 高质量预训练数据过滤与生成:基于高效数据验证构建迭代数据清洗策略,开源高质量中英文预训练数据集 UltraFinweb。
- UltraChat v2 -- 高质量监督微调数据生成:构建大规模高质量监督微调数据集,涵盖知识密集型数据、推理密集型数据、指令跟随数据、长文本理解数据和工具调用数据等多个维度。
-
⚡ 高效推理系统:
- CPM.cu -- 轻量级高效CUDA推理框架:集成稀疏注意力、模型量化和推测采样,实现高效的预填充和解码。
- ArkInfer -- 跨平台部署系统:支持在多个后端环境中进行高效部署,提供灵活的跨平台适配能力。
📦 安装指南
使用SGLang进行推理
目前,你需要安装我们分叉版本的SGLang。
git clone -b openbmb https://github.com/OpenBMB/sglang.git
cd sglang
pip install --upgrade pip
pip install -e "python[all]"
使用vLLM进行推理
目前,你需要安装最新版本的vLLM。
pip install -U vllm \
--pre \
--extra-index-url https://wheels.vllm.ai/nightly
💻 使用示例
基础用法
使用Transformers进行推理
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
torch.manual_seed(0)
path = 'openbmb/MiniCPM4-0.5B'
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained(path)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.bfloat16, device_map=device, trust_remote_code=True)
responds, history = model.chat(tokenizer, "Write an article about Artificial Intelligence.", temperature=0.7, top_p=0.7)
print(responds)
使用SGLang进行推理
你可以通过以下命令启动推理服务器:
python -m sglang.launch_server --model openbmb/MiniCPM4-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-8B",
messages=[
{"role": "user", "content": "Write an article about Artificial Intelligence."},
],
temperature=0.7,
max_tokens=1024,
)
print(response.choices[0].message.content)
使用vLLM进行推理
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "openbmb/MiniCPM4-8B"
prompt = [{"role": "user", "content": "Please recommend 5 tourist attractions in Beijing. "}]
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=32768,
dtype="bfloat16",
gpu_memory_utilization=0.8,
)
sampling_params = SamplingParams(top_p=0.7, temperature=0.7, max_tokens=1024, repetition_penalty=1.02)
outputs = llm.generate(prompts=input_text, sampling_params=sampling_params)
print(outputs[0].outputs[0].text)
📚 详细文档
评估结果
端侧芯片处理速度
在Jetson AGX Orin和RTX 4090这两种典型的端侧芯片上,MiniCPM4在长文本处理任务中的处理速度明显快于同规模的模型。随着文本长度的增加,MiniCPM4的效率优势更加明显。在Jetson AGX Orin平台上,与Qwen3 - 8B相比,MiniCPM4的解码速度提高了约7倍。

综合评估
MiniCPM4推出了8B和0.5B参数规模的端侧版本,在各自的类别中均实现了同类最佳的性能。

长文本评估
MiniCPM4在32K长文本上进行预训练,并通过YaRN技术实现了长度扩展。在128K长文本的大海捞针任务中,MiniCPM4表现出色。

声明
- 作为一种语言模型,MiniCPM通过学习大量文本生成内容。
- 然而,它不具备理解或表达个人观点或价值判断的能力。
- MiniCPM生成的任何内容均不代表模型开发者的观点或立场。
- 因此,在使用MiniCPM生成的内容时,用户应自行承担评估和验证的全部责任。
引用
如果您认为我们的工作有价值,请引用我们的论文。
@article{minicpm4,
title={{MiniCPM4}: Ultra-Efficient LLMs on End Devices},
author={MiniCPM Team},
year={2025}
}
📄 许可证
本仓库和MiniCPM模型均遵循 Apache - 2.0 许可证发布。