モデル概要
モデル特徴
モデル能力
使用事例
🚀 MiniCPM4
MiniCPM4は、エッジデバイス向けに設計された高効率大規模言語モデルです。モデルアーキテクチャ、学習アルゴリズム、学習データ、推論システムの4つの主要な次元で革新的な最適化を行い、極限までの効率向上を達成しています。
🚀 クイックスタート
このセクションでは、MiniCPM4の概要と使い方を紹介します。まずは、MiniCPM4シリーズの最新情報を見てみましょう。

GitHub Repo | Technical Report
👋 Discord と WeChat で私たちに参加しましょう
✨ 主な機能
What's New
- [2025.06.06] MiniCPM4 シリーズがリリースされました!このモデルは、同じ規模で最高のパフォーマンスを維持しながら、究極の効率向上を達成しました!典型的なエッジデバイスのチップで、5倍以上の生成速度向上を達成できます。技術レポートは こちら から見ることができます。🔥🔥🔥
MiniCPM4 Series
MiniCPM4シリーズは、エッジデバイス向けに特別に設計された高効率大規模言語モデル(LLM)です。この効率性は、モデルアーキテクチャ、学習データ、学習アルゴリズム、推論システムの4つの主要な次元での体系的な革新によって達成されています。
- MiniCPM4-8B: MiniCPM4のフラグシップモデルで、80億のパラメータを持ち、8兆トークンで学習されています。
- MiniCPM4-0.5B: MiniCPM4の小型バージョンで、5億のパラメータを持ち、1兆トークンで学習されています。 (<-- ここにいます)
- 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ツールを自動的に呼び出してユーザーの要求を満たします。
Introduction
MiniCPM 4は、モデルアーキテクチャ、学習アルゴリズム、学習データ、推論システムの4つの次元で効率的な最適化が行われた、非常に効率的なエッジ側の大規模モデルです。究極の効率向上を達成しています。
-
🏗️ Efficient Model Architecture:
- InfLLM v2 -- Trainable Sparse Attention Mechanism: 学習可能な疎注意力機構を採用したアーキテクチャで、128Kの長文処理では、各トークンが関連性を計算する必要があるトークンは5%未満です。これにより、長文の計算オーバーヘッドが大幅に削減されます。
-
🧠 Efficient Learning Algorithms:
- Model Wind Tunnel 2.0 -- Efficient Predictable Scaling: 下流タスクのパフォーマンスに対するスケーリング予測方法を導入し、より正確なモデルトレーニング構成の探索を可能にします。
- BitCPM -- Ultimate Ternary Quantization: モデルパラメータのビット幅を3値に圧縮し、90%の極限のモデルビット幅削減を達成します。
- Efficient Training Engineering Optimization: FP8低精度計算技術とMulti-token Predictionトレーニング戦略を組み合わせた効率的なトレーニングエンジニアリング最適化を採用しています。
-
📚 High-Quality Training Data:
- UltraClean -- High-quality Pre-training Data Filtering and Generation: 効率的なデータ検証に基づく反復的なデータクリーニング戦略を構築し、高品質の中国語と英語の事前学習データセット UltraFinweb をオープンソース化しています。
- UltraChat v2 -- High-quality Supervised Fine-tuning Data Generation: 知識集約型データ、推論集約型データ、命令追従型データ、長文理解型データ、ツール呼び出し型データなど、複数の次元をカバーする大規模な高品質の教師付き微調整データセットを構築しています。
-
⚡ Efficient Inference System:
- CPM.cu -- Lightweight and Efficient CUDA Inference Framework: 疎注意力、モデル量子化、推測サンプリングを統合して、効率的な事前埋め込みとデコードを実現します。
- ArkInfer -- Cross-platform Deployment System: 複数のバックエンド環境での効率的なデプロイをサポートし、柔軟なクロスプラットフォーム適応能力を提供します。
📦 インストール
Inference with 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)
# 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."},
# ]
# 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)
Inference with SGLang
現時点では、私たちがフォークしたバージョンの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-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)
Inference with vLLM
現時点では、最新バージョンのvLLMをインストールする必要があります。
pip install -U vllm \
--pre \
--extra-index-url https://wheels.vllm.ai/nightly
次に、vLLMを使用してMiniCPM4-8Bの推論を行うことができます。
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)
💻 使用例
基本的な使用法
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)
高度な使用法
# ユーザーはgenerateインターフェースを使用することもできます
messages = [
{"role": "user", "content": "Write an article about Artificial Intelligence."},
]
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)
📚 ドキュメント
Evaluation Results
2つの典型的なエッジデバイスのチップ、Jetson AGX OrinとRTX 4090で、MiniCPM4は長文処理タスクで同規模のモデルと比較して大幅に高速な処理速度を示しています。テキストの長さが増すにつれて、MiniCPM4の効率的な利点がより顕著になります。Jetson AGX Orinプラットフォームでは、Qwen3-8Bと比較して、MiniCPM4は約7倍のデコード速度の向上を達成しています。
Comprehensive Evaluation
MiniCPM4は、80億と5億のパラメータ規模のエッジ側バージョンをリリースしており、それぞれのカテゴリで最高水準のパフォーマンスを達成しています。
Long Text Evaluation
MiniCPM4は32Kの長文で事前学習されており、YaRN技術によって長さの拡張を達成しています。128Kの長文のニードルインハウスタスクでは、MiniCPM4は優れたパフォーマンスを示しています。
Statement
- 言語モデルとして、MiniCPMは大量のテキストを学習することでコンテンツを生成します。
- ただし、MiniCPMは理解や個人的な意見や価値判断を表現する能力を持っていません。
- MiniCPMによって生成されたコンテンツは、モデル開発者の見解や立場を表すものではありません。
- したがって、MiniCPMによって生成されたコンテンツを使用する際には、ユーザーは独自に評価と検証の責任を負う必要があります。
📄 ライセンス
- このリポジトリとMiniCPMモデルは、Apache-2.0 ライセンスの下でリリースされています。
Citation
- 私たちの研究が役に立った場合、論文 を引用してください。
@article{minicpm4,
title={{MiniCPM4}: Ultra-Efficient LLMs on End Devices},
author={MiniCPM Team},
year={2025}
}



