MiniCPM4 系列是专为端侧设备设计的高效能大语言模型(LLMs),通过在模型架构、训练数据、训练算法和推理系统四个关键维度的系统性创新,实现了卓越的效率。
MiniCPM 4 是一款极致高效的边缘侧大模型,它通过在模型架构、学习算法、训练数据和推理系统四个维度进行高效优化,实现了极致的效率提升。
🏗️ 高效模型架构:
🧠 高效学习算法:
📚 高质量训练数据:
⚡ 高效推理系统:
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)
# 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=1024,
# top_p=0.7,
# temperature=0.7
# )
# 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)目前,您需要安装我们的 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-0.5B --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-0.5B",
messages=[
{"role": "user", "content": "Write an article about Artificial Intelligence."},
],
temperature=0.7,
max_tokens=1024,
)
print(response.choices[0].message.content)目前,您需要安装最新版本的vLLM。
pip install -U vllm \
--pre \
--extra-index-url https://wheels.vllm.ai/nightly然后您可以使用 vLLM 对 MiniCPM4-0.5B 进行推理:
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "openbmb/MiniCPM4-0.5B"
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)此外,你可以通过运行以下命令启动推理服务器:
注意:在 vLLM 的聊天 API 中,
add_special_tokens默认值为False。这意味着重要的特殊标记(例如序列开始标记 BOS)不会被自动添加。为确保输入提示符合模型的正确格式,你应显式设置extra_body={"add_special_tokens": True}。
vllm serve openbmb/MiniCPM4-0.5B 然后您可以通过运行以下代码来使用聊天界面:
import openai
client = openai.Client(base_url="http://localhost:8000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="openbmb/MiniCPM4-0.5B",
messages=[
{"role": "user", "content": "Write an article about Artificial Intelligence."},
],
temperature=0.7,
max_tokens=1024,
extra_body=dict(add_special_tokens=True), # Ensures special tokens are added for chat template
)
print(response.choices[0].message.content)在Jetson AGX Orin和RTX 4090这两款典型的端侧芯片上,MiniCPM4在长文本处理任务中展现出相较于同尺寸模型显著更快的处理速度。随着文本长度的增加,MiniCPM4的效率优势愈发明显。在Jetson AGX Orin平台上,与Qwen3-8B相比,MiniCPM4实现了约7倍的解码速度提升。

MiniCPM4推出了8B和0.5B参数规模的端侧版本,两者在各自类别中均达到了同类最佳性能。

MiniCPM4基于32K长文本进行预训练,并通过YaRN技术实现了长度扩展。在128K长文本“大海捞针”任务中,MiniCPM4表现出卓越的性能。

@article{minicpm4,
title={{MiniCPM4}: Ultra-Efficient LLMs on End Devices},
author={MiniCPM Team},
year={2025}
}