本地部署 MiniCPM-Llama3-V 2.5
- 0. 引言
- 1. 性能评估
- 2. 典型示例
- 3. 本地部署
- 4. 运行 WebUI Demo
- 5. vLLM 部署
0. 引言
MiniCPM-Llama3-V 2.5 是 MiniCPM-V 系列的最新版本模型,基于 SigLip-400M 和 Llama3-8B-Instruct 构建,共 8B 参数量,相较于 MiniCPM-V 2.0 性能取得较大幅度提升。MiniCPM-Llama3-V 2.5 值得关注的特点包括:
🔥 领先的性能。 MiniCPM-Llama3-V 2.5 在综合了 11 个主流多模态大模型评测基准的 OpenCompass 榜单上平均得分 65.1,以 8B 量级的大小超过了 GPT-4V-1106、Gemini Pro、Claude 3、Qwen-VL-Max 等主流商用闭源多模态大模型,大幅超越基于Llama 3构建的其他多模态大模型。
💪 优秀的 OCR 能力。 MiniCPM-Llama3-V 2.5 可接受 180 万像素的任意宽高比图像输入,OCRBench 得分达到 725,超越 GPT-4o、GPT-4V、Gemini Pro、Qwen-VL-Max 等商用闭源模型,达到最佳水平。基于近期用户反馈建议,MiniCPM-Llama3-V 2.5 增强了全文 OCR 信息提取、表格图像转 markdown 等高频实用能力,并且进一步加强了指令跟随、复杂推理能力,带来更好的多模态交互体感。
🏆 可信行为。 借助最新的 RLAIF-V 对齐技术(RLHF-V [CVPR’24]系列的最新技术),MiniCPM-Llama3-V 2.5 具有更加可信的多模态行为,在 Object HalBench 的幻觉率降低到了 10.3%,显著低于 GPT-4V-1106 (13.6%),达到开源社区最佳水平。数据集已发布。
🌏 多语言支持。 得益于 Llama 3 强大的多语言能力和 VisCPM 的跨语言泛化技术,MiniCPM-Llama3-V 2.5 在中英双语多模态能力的基础上,仅通过少量翻译的多模态数据的指令微调,高效泛化支持了德语、法语、西班牙语、意大利语、葡萄牙语等 30+ 种语言的多模态能力,并表现出了良好的多语言多模态对话性能。查看所有支持语言
🚀 高效部署。 MiniCPM-Llama3-V 2.5 较为系统地通过模型量化、CPU、NPU、编译优化等高效加速技术,实现高效的终端设备部署。对于高通芯片的移动手机,我们首次将 NPU 加速框架 QNN 整合进了 llama.cpp。经过系统优化后,MiniCPM-Llama3-V 2.5 实现了多模态大模型端侧语言解码速度 3 倍加速、图像编码 150 倍加速的巨大提升。
1. 性能评估
图片来源:https://github.com/OpenBMB/MiniCPM-V/blob/main/assets/MiniCPM-Llama3-V-2.5-peformance.png
多语言LLaVA Bench评测结果,
图片来源:https://github.com/OpenBMB/MiniCPM-V/blob/main/assets/llavabench_compare_3.png
2. 典型示例
图片来源:https://github.com/OpenBMB/MiniCPM-V/blob/main/assets/minicpmv-llama3-v2.5/cases_all.png
3. 本地部署
克隆Gihub的仓库并跳转到相应目录,
git clone https://github.com/OpenBMB/MiniCPM-V.git
cd MiniCPM-V
创建 conda 虚拟环境,
conda create -n MiniCPMV python=3.10 -y
conda activate MiniCPMV
安装依赖,
pip install -r requirements.txt
4. 运行 WebUI Demo
# For NVIDIA GPUs, run:
python web_demo_2.5.py --device cuda
5. vLLM 部署
(20240527记:由于MiniCPM团队对 vLLM 提交的 PR 还在 review 中,因此目前他们 fork 了一个 vLLM 仓库以供测试使用。)
首先克隆他们 fork 的 vLLM 库,
git clone https://github.com/OpenBMB/vllm.git
安装 vLLM 库,
cd vllm
pip install -e .
安装 timm 库,
pip install timm=0.9.10
测试运行示例程序,
python examples/minicpmv_example.py
reference:
- https://github.com/OpenBMB/MiniCPM-V/blob/main/README_zh.md