目录
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的实时交互。