【大模型系列篇】探索面壁小钢炮最强多模态端侧大模型 MiniCPM-o
MiniCPM-o 是从 MiniCPM-V 升级的最新端侧多模态大模型系列。该系列模型可以以端到端方式,接受图像、视频、文本、音频作为输入,并生成高质量文本和语音输出。自2024年2月以来,面壁以实现高性能和高效部署为目标,发布了6个版本的模型。目前系列中最值得关注的模型包括:
- MiniCPM-o 2.6: MiniCPM-o 系列的最新、性能最佳模型。总参数量 8B,视觉、语音和多模态流式能力达到了 GPT-4o-202405 级别,是开源社区中模态支持最丰富、性能最佳的模型之一。在新的语音模式中,MiniCPM-o 2.6 支持可配置声音的中英双语语音对话,还具备情感/语速/风格控制、端到端声音克隆、角色扮演等进阶能力。模型也进一步提升了 MiniCPM-V 2.6 的 OCR、可信行为、多语言支持和视频理解等视觉能力。基于其领先的视觉 token 密度,MiniCPM-V 2.6 成为了首个支持在 iPad 等端侧设备上进行多模态实时流式交互的多模态大模型。
- MiniCPM-V 2.6: MiniCPM-V 系列中性能最佳的模型。总参数量 8B,单图、多图和视频理解性能超越了 GPT-4V。它取得了优于 GPT-4o mini、Gemini 1.5 Pro 和 Claude 3.5 Sonnet等的单图理解表现,并成为了首个支持在 iPad 等端侧设备上进行实时视频理解的多模态大模型。
🔥🔥🔥 MiniCPM-o 2.6是MiniCPM-o系列中最新且功能最强大的模型。该模型基于 SigLip-400M、Whisper-medium-300M、ChatTTS-200M 和 Qwen2.5-7B 构建,共 8B 参数,通过端到端方式训练和推理。相比 MiniCPM-V 2.6,该模型在性能上有了显著提升,并支持了实时语音对话和多模态流式交互的新功能。
主要特性
- 🔥 领先的视觉能力。 MiniCPM-o 2.6 在 OpenCompass 榜单上(综合 8 个主流多模态评测基准)平均得分 70.2,以 8B 量级的大小在单图理解方面超越了 GPT-4o-202405、Gemini 1.5 Pro 和 Claude 3.5 Sonnet 等主流商用闭源多模态大模型。此外,它的多图和视频理解表现也优于 GPT-4V 和 Claude 3.5 Sonnet,并展现出了优秀的上下文学习能力。
- 🎙 出色的语音能力。 MiniCPM-o 2.6 支持可配置声音的中英双语实时对话。MiniCPM-o 2.6 在语音理解任务(如 ASR 和 STT 等)优于 GPT-4o-realtime,并在语音对话的语义和声学评估中展现了开源模型中最高的语音生成性能。它还支持情绪/语速/风格控制、语音克隆、角色扮演等进阶能力。
- 🎬 强大的多模态流式交互能力。 作为一项新功能,MiniCPM-o 2.6 能够接受连续的视频和音频流,并和用户进行实时语音交互。在针对实时视频理解、全模态视音频理解、多模态上下文理解的综合评测基准 StreamingBench 中,MiniCPM-o 2.6 取得开源社区最佳水平,并超过了 GPT-4o-202408 和 Claude 3.5 Sonnet。
- 💪 强大的 OCR 能力及其他功能。 MiniCPM-o 2.6 进一步优化了 MiniCPM-V 2.6 的众多视觉理解能力,其可以处理任意长宽比的图像,像素数可达 180 万(如 1344x1344)。在 OCRBench 上取得25B 以下最佳水平,超过 GPT-4o-202405 等商用闭源模型。基于最新的 RLHF-V、RLAIF-V 和 VisCPM 技术,其具备了可信的多模态行为,在 MMHal-Bench 上超过了 GPT-4o 和 Claude 3.5,并支持英语、中文、德语、法语、意大利语、韩语等30多种语言。
- 🚀 卓越的效率。 除了对个人用户友好的模型大小,MiniCPM-o 2.6 还表现出最先进的视觉 token 密度(即每个视觉 token 编码的像素数量)。它仅需 640 个 token 即可处理 180 万像素图像,比大多数模型少 75%。这一特性优化了模型的推理速度、首 token 延迟、内存占用和功耗。因此,MiniCPM-o 2.6 可以支持 iPad 等终端设备上的高效多模态实时流式交互。
- 💫 易于使用。 MiniCPM-o 2.6 可以通过多种方式轻松使用:(1) llama.cpp 支持在本地设备上进行高效的 CPU 推理,(2) int4 和 GGUF 格式的量化模型,有 16 种尺寸,(3) vLLM 支持高吞吐量和内存高效的推理,(4) 通过LLaMA-Factory框架针对新领域和任务进行微调,(5) 使用 Gradio 快速设置本地 WebUI 演示,(6) 部署于服务器的在线 demo。
即它在视觉理解、语音交互和多模态直播方面表现出色,支持实时语音对话和多模态直播功能。该模型在开源社区中表现优异,超越了多个知名模型。其优势在于高效的推理速度、低延迟、低内存和功耗,能够在iPad等终端设备上高效支持多模态直播。此外,MiniCPM-o 2.6易于使用,支持多种使用方式,包括llama.cpp的CPU推理、int4和GGUF格式的量化模型、vLLM的高吞吐量推理等。
MiniCPM-o 2.6
开源地址
:
🔗 https://github.com/OpenBMB/MiniCPM-o
🔗 https://huggingface.co/openbmb/MiniCPM-o-2_6
模型架构
- 端到端全模态架构。 通过端到端的方式连接和训练不同模态的编/解码模块以充分利用丰富的多模态知识。模型完全使用 CE 损失端到端训练。
- 全模态流式机制。
- (1) 将不同模态的离线编/解码器改造为适用于流式输入/输出的在线模块。
- (2) 针对大语言模型基座设计了时分复用的全模态流式信息处理机制,将平行的不同模态的信息流拆分重组为周期性时间片序列。
- 可配置的声音方案。 设计了新的多模态系统提示,包含传统文本系统提示词,和用于指定模型声音的语音系统提示词。模型可在推理时灵活地通过文字或语音样例控制声音风格,并支持端到端声音克隆和音色创建等高级能力。
性能评估
以端胜云,优点大满贯,8B小模型的「1米8大气场」
端侧部署 | 小参数 | 全模态 |
视频通话 | 真流式视频 | |
端到端语音 | 背景音识别 | 实时打断 |
变换音色 | 情感控制 | 语速变换 |
声音克隆 | 中英双语 | |
超拟人情感对话 |
模型微调
简易微调
支持使用 Huggingface Transformers 库简易地微调 MiniCPM-o 2.6、MiniCPM-V 2.6、MiniCPM-Llama3-V 2.5 和 MiniCPM-V 2.0 模型。
使用 Align-Anything
支持使用北大团队开发的 Align-Anything 框架微调 MiniCPM-o 系列模型,同时支持 DPO 和 SFT 在视觉和音频模态上的微调。
Align-Anything 是一个用于对齐全模态大模型的高度可扩展框架,开源了数据集、模型和评测。它支持了 30+ 开源基准,40+ 模型,以及包含SFT、SimPO、RLHF在内的多种算法,并提供了 30+ 直接可运行的脚本,适合初学者快速上手。
最佳实践:MiniCPM-o 2.6
使用 LLaMA-Factory
支持使用 LLaMA-Factory 微调 MiniCPM-o 2.6 和 MiniCPM-V 2.6。
LLaMA-Factory 提供了一种灵活定制 200 多个大型语言模型(LLM)微调(Lora/Full/Qlora)解决方案,无需编写代码,通过内置的 Web 用户界面 LLaMABoard 即可实现训练/推理/评估。
它支持多种训练方法,如 sft/ppo/dpo/kto,并且还支持如 Galore/BAdam/LLaMA-Pro/Pissa/LongLoRA 等高级算法。
最佳实践:MiniCPM-o 2.6 | MiniCPM-V 2.6
使用 SWIFT 框架
支持使用 SWIFT 框架微调 MiniCPM-V 系列模型。SWIFT 支持近 200 种大语言模型和多模态大模型的训练、推理、评测和部署。
支持 PEFT 提供的轻量训练方案和完整的 Adapters 库支持的最新训练技术如 NEFTune、LoRA+、LLaMA-PRO 等。
参考文档:MiniCPM-V 1.0 | MiniCPM-V 2.0 | MiniCPM-V 2.6
Web Demo本地部署
安装MiniCPM-o依赖环境
创建并激活专属的minicpmo环境
conda create -n minicpmo python==3.10
conda activate minicpmo
下载 MiniCPM-o 2.6 代码
git clone https://github.com/OpenBMB/MiniCPM-o.git
安装python依赖包
cd MiniCPM-o
pip install -r requirements_o2.6.txt
启动模型服务
# 如果是可以访问huggingface, 那可以直接运行以下命令
python web_demos/minicpm-o_2.6/model_server.py
# 如果想使用本地模型,或者无法访问huggingface
# 首先从魔搭下载MiniCPM-O模型,需要安装git-lfs
# git clone https://www.modelscope.cn/models/OpenBMB/MiniCPM-o-2_6
python web_demos/minicpm-o_2.6/model_server.py --model /root/autodl-tmp/model/MiniCPM-o-2_6
部署前端网页
新起一个终端,安装客户端依赖
conda activate minicpmo
sudo yum install nodejs npm
npm install -g pnpm
设置SSL签名身份信息
cd web_demos/minicpm-o_2.6/web_server
bash ./make_ssl_cert.sh
安装客户端依赖
pnpm install --registry=https://registry.npmmirror.com
启动web端
pnpm run dev