最强终端部署的多模态MiniCPM-V模型部署分享(不看后悔)

杰说新技术 2024-09-17 13:31:01 阅读 50

MiniCPM-V模型是一个强大的端侧多模态大语言模型,专为高效的终端部署而设计。

目前该模型有MiniCPM-V 1.0、MiniCPM-V 2.0和MiniCPM-Llama3-V 2.5版本。

MiniCPM-V 1.0模型:该模型系列第一个版本,具有基础的多模态处理能力,同时是最轻量级的版本。

MiniCPM-V 2.0模型:此版本提供了高效而先进的端侧双语多模态理解能力,能够处理最大180万像素的高清大图,包括那些具有1:9极限宽高比的图像,进行高效编码和无损识别。

它集成了多模态通用能力、OCR(光学字符识别)综合能力和对多种类型数据的处理能力。

MiniCPM-Llama3-V 2.5:这是MiniCPM系列的最新版本,拥有80亿(8B)参数,被宣传为“最强端侧多模态模型”。它在2024年5月21日推出并开源,支持超过30种语言,性能超越了Gemini Pro和GPT-4V等多模态巨无霸模型。

该模型在HuggingFace和GitHub Trending榜上均登顶,展示了其在开源社区的影响力和受欢迎程度。

MiniCPM-Llama3-V 2.5强调了在有限的硬件资源(如8GB显存)上实现高效推理的能力,适合在手机等移动设备上部署。

github项目地址:https://github.com/OpenBMB/MiniCPM-V

一、环境安装

1、python环境

建议安装python版本在3.10以上。

2、pip库安装

<code>pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 torchaudio==2.1.2 --extra-index-url https://download.pytorch.org/whl/cu118

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install jmespath -i https://pypi.tuna.tsinghua.edu.cn/simple

3、模型下载

(1)MiniCPM-V-1模型

git lfs install

git clone https://www.modelscope.cn/OpenBMB/MiniCPM-V.git

(2)MiniCPM-V-2.0模型

git lfs install

git clone https://www.modelscope.cn/OpenBMB/MiniCPM-V-2.git

(3)MiniCPM-V-2.5模型

git lfs install

git clone https://www.modelscope.cn/OpenBMB/MiniCPM-Llama3-V-2_5.git

、功能测试

1、web功能测试

使用第一张显卡,显卡至少要有19G显存以上测试MiniCPM-V-2.5模型

CUDA_VISIBLE_DEVICES=0 python web_demo_2.5.py --device cuda

2、python接口测试

from PIL import Image

import torch

from modelscope import AutoModel, AutoTokenizer

#初始化模型和分词器

model = AutoModel.from_pretrained('openbmb/MiniCPM-Llama3-V-2_5', trust_remote_code=True, torch_dtype=torch.float16).to('cuda')

model.eval()

tokenizer = AutoTokenizer.from_pretrained('openbmb/MiniCPM-Llama3-V-2_5', trust_remote_code=True)

#输入图片和问题

image_path = 'example_image.jpg'

image = Image.open(image_path).convert('RGB')

query = 'Describe the scene depicted in this image.'

#定义对话消息

messages = [{'role': 'user', 'content': query}]

#方法1:使用模型进行聊天(非流式)

response = model.chat(image=image, msgs=messages, tokenizer=tokenizer, sampling=True, temperature=0.5)

print("\nNon-streaming response:")

print(response)

#方法2:使用模型进行聊天(流式)

print("\nStreaming response:")

stream_response = model.chat(image=image, msgs=messages, tokenizer=tokenizer, sampling=True, temperature=0.5, stream=True)

for text_chunk in stream_response:

print(text_chunk, end='', flush=True)code>

print()

3、测试结果

(1)案例1

(2)案例2

(2)案例3

、总结

MiniCPM-V是一个端侧多模态大型语言模型,专为视觉-语言理解任务设计。

该模型能够同时理解和生成文本及图像内容,适用于各种交互式应用,如虚拟助手、图像描述生成、增强现实等。

MiniCPM-V模型不仅仅能够提供高性能、低资源消耗的多模态处理能力,还特别适合在设备端(如手机、嵌入式设备等)运行,无需依赖云端计算资源。

随着MiniCPM-V系列模型的不断演进,预计它们将在智能家居、可穿戴设备、移动应用、自动驾驶等多个领域发挥重要作用,推动AI技术的普及和创新应用。

喜欢就点赞转发,后期我还会持续在这里分享最新研发技术动向。

另外,想看更多的CogVLM2相关技术经验,欢迎后台留言讨论。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。