面壁推出超强端侧多模态模型,推理仅需8G显存!

简介: 面壁小钢炮 MiniCPM 系列,再次推出超强端侧多模态模型 MiniCPM-Llama3-V 2.5,且支持 30+ 多种语言

面壁小钢炮 MiniCPM 系列,再次推出超强端侧多模态模型 MiniCPM-Llama3-V 2.5,且支持 30+ 多种语言

  • 端侧多模态综合性能:超越多模态巨无霸 Gemini Pro 、GPT-4V
  • OCR 能力 SOTA!9 倍像素更清晰,难图长图长文本精准识别
  • 图像编码快 150 倍!首次端侧系统级多模态加速

随着大模型参数愈益降低、端侧算力愈益增强,高性能端侧模型势头强劲。而手机、PC等智能终端设备因其高频的影像视觉处理需求,对在端侧部署AI模型提出了更高的多模态识别与推理能力要求。

从面壁「小钢炮」三月三级跳的迅猛进化来看,推动推理成本大幅降低、大模型高效落地,胜利在望!

➤  MiniCPM-Llama3-V 2.5 开源地址:

🔗 https://github.com/OpenBMB/MiniCPM-V

➤  MiniCPM 系列开源地址:

🔗 https://github.com/OpenBMB/MiniCPM


OCR 能力SOTA

MiniCPM-Llama3-V 2.5 以 8B 端侧模型参数量级,贡献了惊艳的  OCR(光学字符识别)SOTA 成绩,以及端侧模型中的优秀多模态综合成绩与幻觉能力水平。


模型雷达图显示 MiniCPM-Llama3-V 2.5 综合能力水平全面优秀


OCR(光学字符识别)是多模态大模型最重要的能力之一,也是考察多模态识别与推理能力的硬核指标。新一代 MiniCPM-Llama3-V 2.5  在 OCR 综合能⼒权威榜单 OCRBench 上,越级超越了 GPT-4o、GPT-4V、Claude 3V Opus、Gemini Pro 等标杆模型,实现了性能 SOTA。

在评估多模态大模型性能可靠性的重要指标——幻觉能力上,MiniCPM-Llama3-V 2.5 在 Object HalBench 榜单上超越了 GPT-4V 等众多模型(注:目标幻觉率应为 0)。

在旨在评估多模态模型的基本现实世界空间理解能力的 RealWorldQA 榜单上,MiniCPM-Llama3-V 2.5 再次超越 GPT-4V 和 Gemini Pro,这对 8B 模型而言难能可贵。

模型体验

体验链接:

https://modelscope.cn/studios/OpenBMB/MiniCPM-Llama3-V-2_5-int4-demo


数数和图片理解:


海关报关单识别和实体抽取:


模型下载

模型链接:

MiniCPM-Llama3-V-2_5 [端侧可用]:https://modelscope.cn/models/OpenBMB/MiniCPM-Llama3-V-2_5

MiniCPM-Llama3-V-2_5-int4:https://modelscope.cn/models/OpenBMB/MiniCPM-Llama3-V-2_5-int4

模型下载:

from modelscope import snapshot_download model_dir = snapshot_download("OpenBMB/MiniCPM-Llama3-V-2_5-int4")


模型推理

环境配置和安装:

  1. python 3.10及以上版本
  2. pytorch 1.12及以上版本,推荐2.0及以上版本
  3. 建议使用CUDA 11.4及以上

本文在魔搭社区免费提供的GPU免费算力上体验:


仅需8G显存,推理MiniCPM-Llama3-V-2_5-int4

环境依赖:

!pip install transformers -U

推理代码:


# test.py
import torch
from PIL import Image
from modelscope import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained('openbmb/MiniCPM-Llama3-V-2_5-int4', trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained('openbmb/MiniCPM-Llama3-V-2_5-int4', trust_remote_code=True)
model.eval()
image = Image.open('/mnt/workspace/玫瑰.jpeg').convert('RGB')
question = 'how many flowers in the image?'
msgs = [{'role': 'user', 'content': question}]
res = model.chat(
    image=image,
    msgs=msgs,
    tokenizer=tokenizer,
    sampling=True,
    temperature=0.7
)
print(res)


显存占用:


模型微调

我们将使用swift来对MiniCPM-Llama3-V-2_5进行微调。swift是魔搭社区官方提供的大模型与多模态大模型微调推理框架。swift开源地址:https://github.com/modelscope/swift


swift对MiniCPM-Llama3-V-2_5推理与微调的最佳实践可以查看:https://github.com/modelscope/swift/blob/main/docs/source/Multi-Modal/minicpm-v-2.5%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.md


通常,多模态大模型微调会使用 自定义数据集 进行微调。在这里,我们将展示可直接运行的demo。我们使用 coco-mini-en-2 数据集进行微调,该数据集的任务是对图片内容进行描述。您可以在 modelscope 上找到该数据集:https://modelscope.cn/datasets/modelscope/coco_2014_caption/summary


在开始微调之前,请确保您的环境已准备妥当。

git clone https://github.com/modelscope/swift.git
cd swift
pip install -e .[llm]

LoRA微调脚本如下所示。该脚本将只对LLM部分的qkv进行lora微调,如果你想对所有linear含vision模型部分都进行微调,可以指定--lora_target_modules ALL。该模型支持全参数微调。

# Experimental environment: A100
# 32GB GPU memory
CUDA_VISIBLE_DEVICES=0 swift sft \
    --model_id_or_path OpenBMB/MiniCPM-Llama3-V-2_5 \
    --dataset coco-en-2-mini \

如果要使用自定义数据集,只需按以下方式进行指定:

# val_dataset可选,如果不指定,则会从dataset中切出一部分数据集作为验证集
--dataset train.jsonl \
--val_dataset val.jsonl \

自定义数据集支持json和jsonl样式。MiniCPM-Llama3-V-2_5支持多轮对话,但总的对话轮次中需包含一张图片, 支持传入本地路径或URL。以下是自定义数据集的示例:

{"query": "55555", "response": "66666", "images": ["image_path"]}
{"query": "eeeee", "response": "fffff", "history": [], "images": ["image_path"]}
{"query": "EEEEE", "response": "FFFFF", "history": [["AAAAA", "BBBBB"], ["CCCCC", "DDDDD"]], "images": ["image_path"]}

微调后推理脚本如下,这里的ckpt_dir需要修改为训练生成的checkpoint文件夹:

# Experimental environment: A10, 3090, V100, ...
# 20GB GPU memory
CUDA_VISIBLE_DEVICES=0 swift infer \
    --ckpt_dir output/minicpm-v-v2_5-chat/vx-xxx/checkpoint-xxx \
    --load_dataset_config true \

你也可以选择merge lora并进行推理:

CUDA_VISIBLE_DEVICES=0 swift export \
    --ckpt_dir output/minicpm-v-v2_5-chat/vx-xxx/checkpoint-xxx \
    --merge_lora true
CUDA_VISIBLE_DEVICES=0 swift infer \
    --ckpt_dir output/minicpm-v-v2_5-chat/vx-xxx/checkpoint-xxx-merged \
    --load_dataset_config true

微调过程的loss可视化:(由于时间原因,这里只微调了400个steps)



微调后模型对验证集进行推理的示例:

[PROMPT]<|begin_of_text|><|start_header_id|>user<|end_header_id|>
<image>[128002 * 96]</image><slice><image>[128002 * 96]</image><image>[128002 * 96]</image></slice>
please describe the image.<|eot_id|><|start_header_id|>assistant<|end_header_id|>
[OUTPUT]A green plate topped with two sandwiches and a fork.<|eot_id|>
[LABELS]A green white with a sandwich on top of it.
[IMAGES]['https://xingchen-data.oss-cn-zhangjiakou.aliyuncs.com/coco/2014/val2014/COCO_val2014_000000026676.jpg']


[PROMPT]<|begin_of_text|><|start_header_id|>user<|end_header_id|>
<image>[128002 * 96]</image><slice><image>[128002 * 96]</image><image>[128002 * 96]</image></slice>
please describe the image.<|eot_id|><|start_header_id|>assistant<|end_header_id|>
[OUTPUT]A man riding a wave on top of a surfboard.<|eot_id|>
[LABELS]A person riding a beautiful wave very smooth
[IMAGES]['https://xingchen-data.oss-cn-zhangjiakou.aliyuncs.com/coco/2014/val2014/COCO_val2014_000000567011.jpg']

点击链接⚡️直达原文

https://modelscope.cn/studios/OpenBMB/MiniCPM-Llama3-V-2_5-int4-demo/summary

相关文章
|
1月前
|
人工智能 弹性计算 自然语言处理
【Hello AI】AIACC-ACSpeed性能数据
本文展示了AIACC-ACSpeed的部分性能数据,相比较通过原生DDP训练模型后的性能数据,使用AIACC-ACSpeed训练多个模型时,性能具有明显提升。
|
1月前
|
机器学习/深度学习 弹性计算 TensorFlow
阿里云GPU加速:大模型训练与推理的全流程指南
随着深度学习和大规模模型的普及,GPU成为训练和推理的关键加速器。本文将详细介绍如何利用阿里云GPU产品完成大模型的训练与推理。我们将使用Elastic GPU、阿里云深度学习镜像、ECS(云服务器)等阿里云产品,通过代码示例和详细说明,带你一步步完成整个流程。
1158 0
|
25天前
|
测试技术 PyTorch 算法框架/工具
魔搭开源推理引擎 DashInfer,助力CPU服务器解锁大模型超强推理
ModelScope推出了预训练大语言模型(LLM)推理引擎DashInfer,采用C++ Runtime编写,提供C++和Python语言接口,具有生产级别的高性能表现,适用于多种CPU架构,包括x86和ARMv9。DashInfer支持连续批处理(Continuous Batching)和多NUMA推理(NUMA-Aware),能够充分利用服务器级CPU的算力,为推理14B及以下的LLM模型提供更多的硬件选择。该项工作已开源。
|
1月前
|
机器学习/深度学习 算法 物联网
LISA微调技术解析:比LoRA更低的显存更快的速度
LISA是Layerwise Importance Sampling for Memory-Efficient Large Language Model Fine-Tuning的简写,由UIUC联合LMFlow团队于近期提出的一项LLM微调技术,可实现把全参训练的显存使用降低到之前的三分之一左右,而使用的技术方法却是非常简单。
|
1月前
|
人工智能 自动驾驶 算法
只要千元级,人人可用百亿级多模态大模型!国产“AI模盒”秒级训练推理
云天励飞,中国AI独角兽,发布“AI模盒”,以千元成本实现多模态大模型的秒级训练推理,降低AI应用门槛。该产品凸显了公司在技术创新与普及中的努力,旨在构建智能城市并重塑日常生活,同时也面临数据安全、隐私保护及人才挑战。
45 3
只要千元级,人人可用百亿级多模态大模型!国产“AI模盒”秒级训练推理
|
1月前
|
自然语言处理
多模态混合大模型将成为标配
【1月更文挑战第22天】多模态混合大模型将成为标配
31 1
多模态混合大模型将成为标配
|
1月前
|
人工智能 弹性计算 固态存储
【Hello AI】AIACC-AGSpeed性能数据
本文展示了AIACC-AGSpeed(简称AGSpeed)的部分性能数据,相比较通过PyTorch原生Eager模式训练模型后的性能数据,使用AGSpeed训练多个模型时,性能具有明显提升。
|
1月前
|
存储 人工智能 弹性计算
阿里云推出第八代企业级实例 g8i:AI 推理性能最高提升 7 倍、可支持 72B 大语言模型
1 月 11 日,全球领先的云计算厂商阿里云宣布推出第八代企业级通用计算实例 ECS g8i,这也是国内首款搭载第五代英特尔至强可扩展处理器(代号 EMR)的云计算产品。依托阿里云自研的「飞天+CIPU」架构体系,ECS g8i 实例的整机性能最高提升 85%,AI 推理性能最高提升 7 倍,可支撑高达 72B 参数的大语言模型,为 AI 提速,同时新实例还提供了端到端安全防护,为企业构建可信 AI 应用提供强有力的隐私增强算力支撑。
|
1月前
|
机器学习/深度学习 人工智能 安全
多模态将成为大模型标配
【1月更文挑战第10天】多模态将成为大模型标配
60 1
多模态将成为大模型标配
|
1月前
|
人工智能 弹性计算 并行计算
【Hello AI】推理引擎DeepGPU-LLM-提供免费的高性能、低延迟推理服务
DeepGPU-LLM是阿里云研发的基于GPU云服务器的大语言模型(Large Language Model,LLM)推理引擎,在处理大语言模型任务中,该推理引擎可以为您提供高性能的大模型推理服务。