Minicpm4 8B Marlin Vllm
MiniCPM4是专为端侧设备设计的高效大语言模型,在相同规模下实现了极致的效率提升和最优性能。
下载量 200
发布时间 : 6/6/2025
模型简介
MiniCPM4是一款高效的大语言模型,专为端侧设备优化设计,通过模型架构、训练数据、训练算法和推理系统四个维度的创新,实现了在相同规模下的最优性能和极致效率。
模型特点
高效模型架构
采用可训练的稀疏注意力机制架构,显著降低长文本计算开销。
高效学习算法
引入下游任务性能的缩放预测方法,实现更精确的模型训练配置搜索。
高质量训练数据
基于高效的数据验证构建迭代数据清理策略,提供高质量的中英文预训练数据集。
高效推理系统
支持轻量级推测采样和跨平台部署系统,提供灵活的跨平台适配能力。
模型能力
文本生成
对话系统
长文本处理
工具调用
调查论文生成
使用案例
旅游推荐
旅游景点推荐
根据用户请求生成旅游景点推荐列表。
生成包含5个北京旅游景点的详细推荐。
内容创作
文章撰写
根据主题生成高质量文章。
生成关于人工智能的详细文章。
学术研究
调查论文生成
根据用户查询自主生成可信的长篇调查论文。
🚀 MiniCPM4
MiniCPM4 是专为端侧设备设计的高效大语言模型,通过在模型架构、训练数据、训练算法和推理系统四个关键维度进行系统创新,在相同规模下实现了极致的效率提升和最优性能。在典型的端侧芯片上,它的生成速度能提升 5 倍以上。

🚀 快速开始
安装依赖
根据不同的使用场景,安装相应的依赖库。具体安装方法请参考后续的使用示例部分。
运行示例
按照后续使用示例中的代码,进行模型的推理操作。
✨ 主要特性
最新动态
- [2025.06.06] MiniCPM4 系列发布!该模型在相同规模下保持最优性能的同时,实现了极致的效率提升!在典型的端侧芯片上,它能实现超过 5 倍的生成加速!你可以在 这里 找到技术报告。
MiniCPM4 系列模型
- MiniCPM4-8B:MiniCPM4 的旗舰模型,拥有 80 亿参数,在 8T 标记上进行训练。
- MiniCPM4-0.5B:MiniCPM4 的小版本,拥有 5 亿参数,在 1T 标记上进行训练。
- MiniCPM4-8B-Eagle-FRSpec:用于 FRSpec 的 Eagle 头,加速 MiniCPM4-8B 的推测推理。
- MiniCPM4-8B-Eagle-FRSpec-QAT-cpmcu:使用 QAT 训练的用于 FRSpec 的 Eagle 头,有效整合推测和量化,为 MiniCPM4-8B 实现超加速。
- MiniCPM4-8B-Eagle-vLLM:vLLM 格式的 Eagle 头,加速 MiniCPM4-8B 的推测推理。
- MiniCPM4-8B-marlin-Eagle-vLLM:vLLM 格式的量化 Eagle 头,加速 MiniCPM4-8B 的推测推理。
- BitCPM4-0.5B:将极端三元量化应用于 MiniCPM4-0.5B,将模型参数压缩为三元值,实现 90% 的比特宽度缩减。
- BitCPM4-1B:将极端三元量化应用于 MiniCPM3-1B,将模型参数压缩为三元值,实现 90% 的比特宽度缩减。
- MiniCPM4-Survey:基于 MiniCPM4-8B,接受用户的查询作为输入,自主生成可信的长篇调查论文。
- MiniCPM4-MCP:基于 MiniCPM4-8B,接受用户的查询和可用的 MCP 工具作为输入,自主调用相关的 MCP 工具以满足用户需求。
高效优化维度
- 高效模型架构:
- InfLLM v2 -- 可训练的稀疏注意力机制:采用可训练的稀疏注意力机制架构,在 128K 长文本处理中,每个标记只需与不到 5% 的标记计算相关性,显著降低了长文本的计算开销。
- 高效学习算法:
- 模型风洞 2.0 -- 高效可预测的缩放:引入下游任务性能的缩放预测方法,实现更精确的模型训练配置搜索。
- BitCPM -- 极致三元量化:将模型参数比特宽度压缩为 3 个值,实现 90% 的极端模型比特宽度缩减。
- 高效训练工程优化:采用 FP8 低精度计算技术,结合多标记预测训练策略。
- 高质量训练数据:
- UltraClean -- 高质量预训练数据过滤和生成:基于高效的数据验证构建迭代数据清理策略,开源高质量的中文和英文预训练数据集 UltraFinweb。
- UltraChat v2 -- 高质量监督微调数据生成:构建大规模高质量的监督微调数据集,涵盖知识密集型数据、推理密集型数据、指令跟随数据、长文本理解数据和工具调用数据等多个维度。
- 高效推理系统:
- FRSpec -- 轻量级推测采样:通过草稿模型的词汇剪枝实现草稿模型加速。
- ArkInfer -- 跨平台部署系统:支持在多个后端环境中进行高效部署,提供灵活的跨平台适配能力。
📦 安装指南
安装 vLLM
pip install -U vllm \
--pre \
--extra-index-url https://wheels.vllm.ai/nightly
安装 CPM.cu
git clone https://github.com/OpenBMB/cpm.cu.git --recursive
cd cpm.cu
python3 setup.py install
安装 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
安装 SGLang
git clone -b openbmb https://github.com/OpenBMB/sglang.git
cd sglang
pip install --upgrade pip
pip install -e "python[all]"
💻 使用示例
基础用法
使用 vLLM 进行量化 Eagle 推测解码
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "openbmb/MiniCPM4-8B-marlin-vLLM"
prompt = [{"role": "user", "content": "请推荐北京的 5 个旅游景点。"}]
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,
speculative_config={
"method": "eagle",
"model": "openbmb/MiniCPM4-8B-marlin-Eagle-vLLM",
"num_speculative_tokens": 2,
"max_model_len": 32768,
},
)
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 推理量化 MiniCPM4-8B
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "openbmb/MiniCPM4-8B-marlin-vLLM"
prompt = [{"role": "user", "content": "请推荐北京的 5 个旅游景点。"}]
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)
使用 CPM.cu 进行推理
git clone https://github.com/OpenBMB/cpm.cu.git --recursive
cd cpm.cu
python3 setup.py install
修改 config.json
文件以启用 LongRoPE:
{
...,
"rope_scaling": {
"rope_type": "longrope",
"long_factor": [0.9977997200264581, 1.014658295992452, 1.0349680404997148, 1.059429246056193, 1.0888815016813513, 1.1243301355211495, 1.166977103606075, 1.2182568066927284, 1.2798772354275727, 1.3538666751582975, 1.4426259039919596, 1.5489853358570191, 1.6762658237220625, 1.8283407612492941, 2.0096956085876183, 2.225478927469756, 2.481536379650452, 2.784415934557119, 3.1413289096347365, 3.560047844772632, 4.048719380066383, 4.752651957515948, 5.590913044973868, 6.584005926629993, 7.7532214876576155, 9.119754865903639, 10.704443927019176, 12.524994176518703, 14.59739595363613, 16.93214476166354, 19.53823297353041, 22.417131025031697, 25.568260840911098, 28.991144156566317, 32.68408069090375, 36.65174474170465, 40.90396065611201, 45.4664008671033, 50.37147343433591, 55.6804490772103, 61.470816952306556, 67.8622707390618, 75.00516023410414, 83.11898235973767, 92.50044360202462, 103.57086856690864, 116.9492274587385, 118.16074567836519, 119.18497548708795, 120.04810876261652, 120.77352815196981, 121.38182790207875, 121.89094985353891, 122.31638758099915, 122.6714244963338, 122.9673822552567, 123.21386397019609, 123.41898278254268, 123.58957065488238, 123.73136519024158, 123.84917421274221, 123.94701903496814, 124.02825801299717, 124.09569231686116],
"short_factor": [0.9977997200264581, 1.014658295992452, 1.0349680404997148, 1.059429246056193, 1.0888815016813513, 1.1243301355211495, 1.166977103606075, 1.2182568066927284, 1.2798772354275727, 1.3538666751582975, 1.4426259039919596, 1.5489853358570191, 1.6762658237220625, 1.8283407612492941, 2.0096956085876183, 2.225478927469756, 2.481536379650452, 2.784415934557119, 3.1413289096347365, 3.560047844772632, 4.048719380066383, 4.752651957515948, 5.590913044973868, 6.584005926629993, 7.7532214876576155, 9.119754865903639, 10.704443927019176, 12.524994176518703, 14.59739595363613, 16.93214476166354, 19.53823297353041, 22.417131025031697, 25.568260840911098, 28.991144156566317, 32.68408069090375, 36.65174474170465, 40.90396065611201, 45.4664008671033, 50.37147343433591, 55.6804490772103, 61.470816952306556, 67.8622707390618, 75.00516023410414, 83.11898235973767, 92.50044360202462, 103.57086856690864, 116.9492274587385, 118.16074567836519, 119.18497548708795, 120.04810876261652, 120.77352815196981, 121.38182790207875, 121.89094985353891, 122.31638758099915, 122.6714244963338, 122.9673822552567, 123.21386397019609, 123.41898278254268, 123.58957065488238, 123.73136519024158, 123.84917421274221, 123.94701903496814, 124.02825801299717, 124.09569231686116],
"original_max_position_embeddings": 32768
}
}
运行以下命令以重现长文本加速效果:
python3 tests/test_generate.py
使用 Transformers 进行推理
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
torch.manual_seed(0)
path = 'openbmb/MiniCPM4-8B'
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, "写一篇关于人工智能的文章。", temperature=0.7, top_p=0.7)
# print(responds)
# 用户也可以使用生成接口
messages = [
{"role": "user", "content": "写一篇关于人工智能的文章。"},
]
model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).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))
]
responses = tokenizer.batch_decode(output_token_ids, skip_special_tokens=True)[0]
print(responses)
使用 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": "写一篇关于人工智能的文章。"},
],
temperature=0.7,
max_tokens=1024,
)
print(response.choices[0].message.content)
高级用法
启用 InfLLM v2
修改 config.json
文件以启用 InfLLM v2:
{
...,
"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
}
}
📚 详细文档
评估结果
-
处理速度:在 Jetson AGX Orin 和 RTX 4090 这两种典型的端侧芯片上,MiniCPM4 在长文本处理任务中的处理速度明显快于相同规模的模型。随着文本长度的增加,MiniCPM4 的效率优势更加明显。在 Jetson AGX Orin 平台上,与 Qwen3-8B 相比,MiniCPM4 的解码速度提高了约 7 倍。
-
综合评估:MiniCPM4 推出了 80 亿和 5 亿参数规模的端侧版本,在各自的类别中均实现了同类最佳性能。
-
长文本评估:MiniCPM4 在 32K 长文本上进行预训练,并通过 YaRN 技术实现长度扩展。在 128K 长文本的大海捞针任务中,MiniCPM4 表现出色。
声明
- MiniCPM 作为一种语言模型,通过学习大量文本生成内容。
- 然而,它不具备理解或表达个性的能力。
📄 许可证
本项目采用 Apache-2.0 许可证。
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98