MiniCPM-V: A GPT-4V Level MLLM on Your Phone 手机上的 GPT-4V 级多模态大模型
GitHub - OpenBMB/MiniCPM-V: MiniCPM-V 2.6: A GPT-4V Level MLLM for Single Image, Multi Image and Video on Your Phone
2408.01800 (arxiv.org)
目录
Introduction
Model Architecture
Training
End-side Deployment
MiniCPM-V是一种高效的多模态大型语言模型,可在移动设备上部署。它在单图、多图和视频理解方面表现出色,超越了GPT-4V,并且在单图理解方面优于GPT-4o mini、Gemini 1.5 Pro和Claude 3.5 Sonnet。这是首次能够在iPad等终端设备上实时支持视频理解!代码已开源,由面壁智能提供。
-------------------------------------------
近期,多模态大语言模型(MLLM)的兴起对AI研究和行业产生了重要影响,并为实现下一个AI里程碑指明了方向。然而,MLLM仍存在一些挑战,限制其广泛应用于实际场景中。其中最主要的挑战来自运行具有大量参数和计算需求的MLLM所带来的巨大成本。因此,许多MLLM需要部署在高性能云服务器上,从而限制了它们在移动、离线、低功耗以及隐私保护场景中的应用范围。基于此,在本研究中我们提出了MiniCPM-V系列,这是一种可以高效运行于终端设备上的MLLM模型集合体系结构。最新版本MiniCPM-Llama3-V 2.5整合了最先进的MLLM技术包括架构设计、预训练方法以及对齐策略,并具有以下几个显著特点:(1)强劲性能,在11个流行基准测试中OpenCompass表现优于GPT-4V-1106、Gemini Pro和Claude 3;(2)卓越OCR功能以及对任意宽高比下180万像素高分辨率图像感知;(3)可靠性强且幻觉率低;(4)支持30多种语言;(5)适用于手机等终端设备进行高效部署。更重要的是,MiniCPM-V代表着一个有希望发展趋势:随着终端计算能力快速增长,在不久之后将会出现类似规模更小但与GPT-4V相当性能水平的MLLM部署到终端设备上变得越来越可能,并将推动人工智能技术更广泛地应用于真实世界场景。
Introduction
MiniCPM-V Series Techniques. In this paper, we will take the latest MiniCPM-Llama3-V 2.5 as an example, and systematically introduce the notable features of MiniCPM-V series and the key techniques behind them:
• Leading Performance. MiniCPM-Llama3-V 2.5 achieves better performance than GPT-4V-1106, Gemini Pro and Claude 3 on OpenCompass collection, a comprehensive evaluation over 11 popular benchmarks. This is jointly contributed by its careful design in architecture, data and training recipes, which we will detail in the following.
性能卓越。在 OpenCompass 集合上,MiniCPM-Llama3-V 2.5 在涵盖 11 个流行基准的综合评估中,其性能优于 GPT-4V-1106、Gemini Pro 和 Claude 3。这一成果得益于其在架构、数据和训练配方方面的精心设计。
• Strong OCR Capability. MiniCPM-Llama3-V 2.5 outperforms GPT-4V, Gemini Pro and Qwen-VL-Max on OCRBench. It also supports high-utility functions such as table-to-markdown conversion and full OCR content transcribtion. These are largely attributed to the 1.8M pixel high-resolution (e.g., 1344 × 1344) image perception technique across any aspect ratios [107].
OCR能力强大。MiniCPM-Llama3-V 2.5 在 OCRBench 上的表现优于 GPT-4V、Gemini Pro 和 Qwen-VL-Max。它还支持高实用性功能,如表格到 Markdown 的转换和完整的 OCR 内容转录。这些能力主要归功于其跨任何纵横比的 180 万像素高分辨率(例如 1344x1344)图像感知技术。
• Trustworthy Behavior. Based on the RLAIF-V [112] and RLHF-V [111] techniques that align MLLM behaviors from AI/human feedback, MiniCPM-Llama3-V 2.5 exhibits more trustworthy behaviors, achieving lower hallucination rates than GPT-4V-1106 on Object HalBench.
行为可信。基于从AI/人类反馈中调整多语言大型模型(MLLM)行为的RLAIF-V[112]和RLHF-V[111]技术,MiniCPM-Llama3-V 2.5 展现了更可信的行为,在Object HalBench上的幻觉率低于GPT-4V-1106。
• Multilingual Support. Inspired by the findings from VisCPM [41], the integration of multilingual LLM significantly alleviates the heavy reliance on multimodal training data in low-resource languages. Based on the foundation, a high-quality multilingual multimodal instruction tuning helps MiniCPM-Llama3-V 2.5 generalize its multimodal capabilities to more than 30 languages.
• 支持多语言。受VisCPM[41]研究成果的启发,集成多语言大型语言模型(LLM)显著减轻了低资源语言对多模态训练数据的严重依赖。基于这一基础,高质量的多语言多模态指令调整帮助MiniCPM-Llama3-V 2.5将其多模态能力推广到30多种语言。
• Efficient End-side Deployment. We systematically integrate a suite of end-side optimization techniques, encompassing quantization, memory optimization, compilation optimization and NPU acceleration, enabling efficient deployment on end-side devices.
终端部署高效。系统地集成了一套终端优化技术,包括量化、内存优化、编译优化和NPU加速,从而实现了在终端设备上的高效部署。
Model Architecture
- 模型总体结构:
- 视觉编码器:采用SigLIP SoViT-400m/14作为视觉编码器,负责将输入图像进行编码。
- 压缩层:通过具有一层交叉注意力的感知器重采样结构,对视觉标记进行压缩。
- LLM:将压缩后的视觉标记与文本输入一起送入大语言模型,进行条件文本生成。
- 平衡目标:MiniCPM-V系列的设计哲学是在性能和效率之间实现良好平衡,以满足更广泛的现实世界应用需求。
- 自适应高分辨率视觉编码:
- 视觉编码的重要性:视觉编码在MLLM性能中扮演关键角色,特别是对于OCR等细粒度能力。
- 图像分区:根据输入图像的分辨率和ViT的预训练设置,计算并选择合适的图像分区,以匹配ViT的预训练分辨率和宽高比。
- 切片编码:通过调整每个切片的大小和插值ViT的位置嵌入,使切片更好地适应ViT的预训练设置。
- 标记压缩:利用压缩模块将每个切片的视觉标记压缩成更少的查询,减少GPU内存消耗,提升推理速度和首令牌延迟。
- 空间模式:
- 切片位置表示:引入空间模式,通过特殊标记
<slice>
和<\slice>
包装每个切片的标记,并使用特殊标记\n
分隔不同行的切片,以指示每个切片相对于整个图像的位置。
- 切片位置表示:引入空间模式,通过特殊标记
- 模块间交互:
- 编码与压缩:视觉编码器生成的视觉标记经过压缩层压缩后,与文本输入一同被送入LLM进行后续处理。
- 高效处理:通过优化视觉编码和标记压缩,MiniCPM-V能够在保证性能的同时,实现高效的资源利用。
- 设计优势:
- 灵活性:自适应视觉编码方法能够处理不同分辨率和宽高比的输入图像。
- 效率:显著减少的视觉标记数量使MiniCPM-V在GPU内存消耗、推理速度等方面具有优势。
- 实用性:平衡性能与效率的设计哲学使MiniCPM-V适用于更广泛的设备和场景。
Training
MiniCPM-V模型的训练过程,主要包括三个关键阶段:预训练(Pre-training)、监督微调(Supervised Fine-tuning)和基于反馈的学习(RLAIF-V)。以下是详细总结:
- 预训练(Pre-training):
- 阶段一(Stage-1):目标是初步训练压缩层,连接视觉编码器和LLM。通过随机初始化和训练压缩层,同时保持其他参数冻结,使用200M的图像描述数据进行训练。视觉编码器分辨率设为224x224,与预训练设置相同。
- 阶段二(Stage-2):扩展预训练视觉编码器的输入分辨率,从224x224提升到448x448。此阶段仅训练视觉编码器,保持其他模块参数冻结,并再次使用200M图像描述数据。
- 阶段三(Stage-3):采用自适应视觉编码策略训练视觉模块,以适应任意纵横比的高分辨率输入。同时训练压缩层和视觉编码器,LLM保持冻结。引入OCR数据增强视觉编码器的OCR能力。
- 辅助技术:引入低质量标题重写模型和数据打包策略。标题重写模型用于改善网络数据的质量,数据打包策略则提高内存使用效率和计算效率。
- 监督微调(Supervised Fine-tuning):
- 训练目标:在高质量视觉问答数据集上进一步学习知识和交互能力。
- 可训练模块:解锁所有模型参数,以充分利用高质量数据。
- 数据分类:将微调数据分为两部分:Part-1注重提升基础识别能力,包括短回答的数据集;Part-2则旨在增强生成详细响应和遵循人类指令的能力,包括长回答和复杂交互的数据集。
- 多语言泛化:通过轻量级但高质量的多语言监督微调,实现跨语言的多模态能力。
- 基于反馈的学习(RLAIF-V):
- 目标:解决MLLMs中的幻觉问题,即生成未基于输入图像的事实性响应。
- 方法:采用RLAIF-V框架,通过从开源模型获取可扩展的高质量反馈,进行直接偏好优化(DPO)。
- 步骤:
- 响应生成:使用策略模型为给定指令生成多个响应。
- 反馈收集:以分而治之的方式评估每个响应的正确性。
- 直接偏好优化(DPO):在偏好数据集上优化模型。
- 训练效果与数据增强:
- 在MiniCPM-Llama3-V 2.5中,集成了2M的Cauldron数据集用于多模态知识增强,以及90K多语言数据以提升多语言对话能力。
- 通过上述训练流程,MiniCPM-V系列模型在GPU内存消耗、推理速度、首令牌延迟和功耗方面表现出色,具有广泛的应用前景和社区友好性。
End-side Deployment
MiniCPM-V在终端设备上的部署情况,包括面临的挑战、基本实践、高级实践以及部署结果。以下是详细总结:
- 部署挑战:
- 内存限制:高性能服务器通常具有超过100GB甚至1TB的内存容量,而智能手机的内存通常在12GB到16GB之间,这对于部署大型MLLM(多模态大语言模型)来说可能不足。
- CPU/GPU速度限制:智能手机CPU的处理速度远低于高性能服务器,且GPU性能也较弱。例如,Snapdragon 8Gen3拥有8个CPU核心,而Intel Xeon Platinum 8580拥有60个CPU核心;Qualcomm Adreno 750 GPU仅具有6TFLOPS,而NVIDIA 4090 GPU可达到83TFLOPS。
- 基本实践:
- 量化技术:采用量化技术减少内存消耗。通过统一缩放因子将多个权重压缩到更窄的范围内,并进行离散化。对于MiniCPM-Llama3-V 2.5,使用GGML框架的Q4_K_M模式(4位量化策略),将内存需求从约16~17GB减少到约5GB。
- 部署框架:针对不同芯片类型(CPU、GPU、NPU)选择不同的部署框架。由于CPU在设备中的普及性,优先使用llama.cpp框架。
- 高级实践:
- 内存使用优化:通过顺序加载ViT和LLM到内存中,避免在ViT编码期间因内存不足导致的频繁分页,从而提高了程序效率。这一优化显著减少了图像处理时间。
- 编译优化:直接在目标设备上编译模型可以显著改善编码延迟和解码吞吐量。这归因于编译与目标设备指令集架构之间的一致性提高。
- 配置优化:自动参数搜索算法动态确定最适合的配置(如不同CPU核心上的计算分配),显著提高了解码吞吐量。
- NPU加速:利用NPUs(神经网络处理单元)加速视觉编码,特别是在智能手机上,显著减少了视觉编码时间。
- 部署结果:
- 实验设备:在Xiaomi 14Pro(Snapdragon 8Gen 3)、vivo X100Pro(Mediatek Dimensity 9300)和Mac M1上进行了测试。
- 性能评估:优化后的MiniCPM-Llama3-V 2.5在不同设备上均表现出良好的性能和用户友好的延迟。特别是,利用NPU的Xiaomi 14Pro在编码速度上与Mac M1相近,且所有设备的解码吞吐量均达到或超过人类阅读速度。
- 讨论:
- 计算瓶颈:当前计算瓶颈主要来自LLM预填充,即图像和文本令牌的编码。未来研究可以集中在开发更有效的视觉编码方法和更好地利用GPU/NPU加速LLM编码。
- 未来展望:随着对终端MLLM的关注增加和GPU/NPU加速技术的快速发展,预计很快可以实现与终端MLLM的实时交互。
相关文章:

MiniCPM-V: A GPT-4V Level MLLM on Your Phone 手机上的 GPT-4V 级多模态大模型
GitHub - OpenBMB/MiniCPM-V: MiniCPM-V 2.6: A GPT-4V Level MLLM for Single Image, Multi Image and Video on Your Phone 2408.01800 (arxiv.org) 目录 Introduction Model Architecture Training End-side Deployment MiniCPM-V是一种高效的多模态大型语言模型&…...

Unity初识
1:下载Unity Hub 下载地址:Unity官方下载_Unity最新版_从Unity Hub下载安装 | Unity中国官网 建议直接使用unity hub因为支持比较全面,适合新手 有中文 管理 编辑器等等功能支持 下载安装不过多介绍 2:Unity Hub汉化 因为我…...

【游戏引擎之路】登神长阶(九)——《3D游戏编程大师技巧》:我想成为游戏之神!
5月20日-6月4日:攻克2D物理引擎。 6月4日-6月13日:攻克《3D数学基础》。 6月13日-6月20日:攻克《3D图形教程》。 6月21日-6月22日:攻克《Raycasting游戏教程》。 6月23日-7月1日:攻克《Windows游戏编程大师技巧》。 7月…...
Linux:线程同步之信号量
信号量 (1)What(什么是信号量) 提供一种计数器的方式控制对共享资源的访问;当计数器大于0时,请求资源成功并计数器-1;当计数器小于0时,线程阻塞,等待其它线程执行signal(V操作&…...

GPT-SoVITS-文本转语音(你的声音不再是唯一)
本文将要介绍GPT-SoVITS的安装和使用方法 首先感谢花儿不哭大佬带来的RVC声音克隆 花儿不哭: 花儿不哭的个人空间-花儿不哭个人主页-哔哩哔哩视频 (bilibili.com) GPT-SoVITS下载地址 GitHub - RVC-Boss/GPT-SoVITS: 1 min voice data can also be used to train a …...

C语言深度剖析(部分)--剩下随缘更新
C语言深度剖析 关键字auto-最宽容大度的关键字 变量的分类 代码块:用{ }括起来的区域 局部变量:包含在代码块中的变量,局部变量具有临时性,进入代码块,自动形成局部变量,退出代码块自动释放。 全局变量…...

计算机毕业设计选题推荐-电缆行业生产管理系统-Java/Python项目实战
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

Linux 下查看 CPU 使用率
目录 一、什么是 CPU 使用率二、查看 CPU 利用率1、使用 top 查看2、用 pidstat 查看3、用 ps 查看4、用 htop 查看5、用 nmon 查看6、用 atop 查看7、用 glances 查看8、用 vmstat 查看9、用 sar 查看10、dstat11、iostat 三、总结 CPU 使用率是最直观和最常用的系统性能指标&…...
数理基础知识
数理基础 大数定律期望方差常见分布伯努利分布泊松分布高斯分布服从一维高斯分布的随机变量KL散度服从多元高斯分布的随机变量KL散度 Gibbs不等式凸函数Jensen不等式 似然函数泰勒近似信息论信息量信息熵KL散度JS散度交叉熵 Wiener ProcessSDE 大数定律 期望方差 x为连续随机…...
Java解决lombok和mapstruct编译模块的问题
pom.xml <dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><!-- 1.18.16版本 --><version>${lombok.version}</version><scope>provided</scope><!-- 防…...

大模型场景应用全集:持续更新中
一、应用场景 1.办公场景 智能办公:文案生成(协助构建大纲优化表达内容生成)、PPT美化(自动排版演讲备注生成PPT)、数据分析(生成公式数据处理表格生成)。 智能会议:会议策划&…...
理解RabbitMQ中的消息存储机制:非持久化、持久化与惰性队列(Lazy Queue)
文章目录 1. 非持久化消息(Transient Messages)内存压力处理 2. 持久化消息(Persistent Messages)3. 惰性队列(Lazy Queue)官方推荐 总结 在RabbitMQ中,消息的存储和处理方式可以根据不同的需求…...

【机器学习】BP神经网络正向计算
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 BP神经网络正向计算1. 引言2. BP神经网络结构回顾3. 正向计算的基本原理4. 数学…...
谷粒商城实战笔记-108~109-elasticsearch删除与批量导入
一,108-全文检索-ElasticSearch-入门-put&post修改数据 第一种更新方式: POST customer/external/1/_update {"doc":{"name": "John Doew"} }第二种更新方式: POST customer/external/1 { "name&q…...
RabbitMQ:发送者的可靠性之使用消息确认回调
文章目录 配置RabbitMQ的ConfirmCallback使用ConfirmCallback发送消息实际使用中的注意事项总结 在开发消息驱动的系统时,消息的可靠传递至关重要。而RabbitMQ作为一个广泛使用的消息队列中间件,提供了多种消息确认机制,确保消息从生产者到交…...

HCIP学习 | OSPF---LSA限制、不规则区域、附录E、选路
目录 Days06(24.8.8)OSPF---LSA限制、不规则区域、附录E、选路 特殊区域 stub 区域, 末节区域 Totally stub :完全的末节区域 NSSA区域:(not so stub area) 非完全末节区域 完全的非完全的末节区域: …...

CVE-2017-15715~Apache解析漏洞【春秋云境靶场渗透】
Apache解析漏洞 漏洞原理 # Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如如下配置文件: AddType text/html .html AddLanguage zh-CN .cn# 其给 .html 后缀增加了 media-type ,值为 text/html ;给 …...
thinkphp 5.0.24生成模块
访问的形式生成模块: 1、需要在入口文件Public/index.php中加入以下代码: //生成Home模块,添加以下这句后,打开浏览器执行:http://www3.phptp5.com/public/index.php自动生成Home模块 \think\Build::module(Home); …...

值得注意!家里有带毛发动物就有浮毛?宠物空气净化器一键净化
上次跟朋友逛完街去她家,她家热情的哈基米开门就一个猛冲,我朋友接住就是一顿猛亲,亲猫一时爽,汗液粘着猫毛,粘得满手臂、满脸都是,看得鼻炎星人头皮发麻...好多养宠物的都说,梳毛根本不管用&am…...
Linux 代理(proxy)设置
有关网络代理的环境变量 环境变量说明可选的取值http_proxyhttp协议的网络连接使用该代理。ip:porthttp://ip:portsocks://ip:portsocks4://ip:portsocks5://ip:porthttps_proxyhttps协议的网络连接使用该代理。ftp_proxyftp协议使用该代理。all_proxy所有网络协议的网络连接都…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...