清华大学THUNLP推出的端到端全能多模态大模型,支持视觉理解、语音对话和全双工多模态实时流交互,性能接近Gemini 2.5 Flash,可在手机端高效运行。
项目简介#
MiniCPM-o 是由清华大学自然语言处理实验室(THUNLP)与 ModelBest 联合推出的端到端全能多模态大模型系列。该模型不仅支持传统的单图/多图/视频理解(Vision),还集成了强大的语音对话(Speech)能力,包括语音克隆、情感控制等,并创新性地实现了全双工多模态实时流(Full-Duplex Multimodal Live Streaming)——模型可以像人类一样同时进行"听、看、说",输入流与输出流互不阻塞。
模型版本#
MiniCPM-o 4.5 (9B参数)#
- 最新旗舰版本,基于 SigLip2 + Whisper-medium + CosyVoice2 + Qwen3-8B 构建
- OpenCompass 综合评估 77.6 分,接近 Gemini 2.5 Flash
- 端到端多模态架构,支持视觉、语音、全双工多模态实时流
MiniCPM-V 4.0 (4.1B参数)#
- 高效版本,基于 SigLIP2-400M + MiniCPM4-3B 构建
- OpenCompass 综合评估 69.0 分,超越 GPT-4.1-mini-20250414
- 适用于手机端部署,iPhone 16 Pro Max 上首token延迟 <2s
核心能力#
| 能力类别 | 具体特性 |
|---|---|
| 视觉理解 | 单图/多图/视频理解、OCR (最高1.8M像素)、高FPS视频(10fps) |
| 语音能力 | 中英双语实时语音对话、语音克隆、情感/语速/风格控制 |
| 全双工多模态实时流 | 输入流与输出流互不阻塞,可同时看、听、说 |
| 主动交互 | 1Hz 频率决策是否发言,支持主动提醒 |
| 多语言 | 支持30+语言 |
技术架构#
模型组成#
- 视觉编码器: SigLIP2 (400M参数)
- 音频编码器: Whisper-medium
- 语音解码器: CosyVoice2 / Step-Audio2
- LLM 主干: Qwen3-8B
关键技术机制#
- 端到端全模态架构: 模态编码器/解码器与 LLM 通过隐藏状态紧密连接
- TDM (Time-Division Multiplexing): 时间分割复用机制,处理毫秒级时间线同步
- 全双工流机制: 将离线编码器/解码器改造为在线全双工版本
- 高效视觉压缩: 1.8M像素图像仅需640个视觉token(比同类模型少75%)
典型应用场景#
- 实时语音助手(中英双语)
- 角色扮演与语音克隆
- 文档 OCR 解析(OmniDocBench SOTA)
- 视觉问答(VQA)
- 多模态实时交互(视频 + 音频 + 文本)
- 端侧部署(手机、iPad、Mac)
环境要求#
- Python 3.10+
- transformers==4.51.0 (推荐)
- PyTorch >= 2.3.0, <= 2.8.0
安装命令#
无TTS/流式推理版本:
pip install "transformers==4.51.0" accelerate "torch>=2.3.0,<=2.8.0" "torchaudio<=2.8.0" "minicpmo-utils>=1.0.5"
含TTS/流式推理版本:
pip install "transformers==4.51.0" accelerate "torch>=2.3.0,<=2.8.0" "torchaudio<=2.8.0" "minicpmo-utils[all]>=1.0.5"
模型加载示例#
import torch
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained(
'openbmb/MiniCPM-o-2_6',
trust_remote_code=True,
attn_implementation='sdpa',
torch_dtype=torch.bfloat16,
init_vision=True,
init_audio=True,
init_tts=True
)
model = model.eval().cuda()
tokenizer = AutoTokenizer.from_pretrained('openbmb/MiniCPM-o-2_6', trust_remote_code=True)
model.init_tts()
运行模式#
| 模式 | 用途 | 关键参数 |
|---|---|---|
| Duplex Omni Mode | 全双工流式推理(实时/录像视频对话) | omni_input=True |
| Half-Duplex Omni Mode | 半双工多模态对话(chat/streaming) | use_tts_template=True |
| Speech Conversation | 语音对话(角色扮演/助手) | mode='audio_roleplay' / 'audio_assistant' |
| Vision-Only | 纯视觉理解 | init_audio=False, init_tts=False |
关键推理参数#
temperature: 默认 0.5max_new_tokens: 最大生成token数(如 4096)generate_audio: 是否生成音频输出output_audio_path: 音频保存路径
语音系统提示配置#
ref_audio, _ = librosa.load('reference_audio.wav', sr=16000, mono=True)
sys_msg = model.get_sys_prompt(ref_audio=ref_audio, mode='omni', language='en')
支持的框架#
| 框架 | 用途 |
|---|---|
| vLLM | 高吞吐量推理 |
| SGLang | 内存高效推理 |
| llama.cpp / llama.cpp-omni | 本地设备 CPU 推理 |
| Ollama | 简化部署 |
| LLaMA-Factory | 微调 |
| SWIFT | 微调 |
| FlagOS | 多芯片统一后端 |
许可证#
Apache-2.0
开发机构#
THUNLP(清华大学自然语言处理实验室)与 ModelBest