校招/实习简历修改、模拟面试欢迎私信
《MiniCPM-V: A GPT-4V Level MLLM on Your Phone》
在本节中,我们介绍了MiniCPM-V的模型架构,概述了其总体结构和自适应高分辨率视觉编码方法。MiniCPM-V系列的设计理念是在性能和效率之间实现良好的平衡,这是一个更实用的目标,适用于更广泛的现实世界应用,在架构设计、训练、推理和部署中实现。
3.1 architecture
该模型包括三个关键模块:视觉编码器、压缩层和LLM。输入图像首先由视觉编码器利用自适应视觉编码方法进行编码。具体来说,我们采用SigLIP SoViT-400m/14[115]作为视觉编码器。然后,压缩层对视觉标记进行压缩,压缩层采用具有一层交叉注意力的感知重采样器结构。最后,压缩的视觉标记与文本输入一起被馈送到LLM中,用于条件文本生成。
3.2 Adaptive Visual Encoding
最近,人们对视觉编码在MLLM性能中的基本作用越来越达成共识[76,68],特别是对于OCR等细粒度功能。为了有效,一个好的视觉编码策略应该既尊重输入的原始纵横比,又保留足够的视觉细节(高分辨率)。为了提高效率,图像编码的视觉标记数量应该适中,以便在终端设备上负担得起。为此,我们利用了LLaVA UHD[107]提出的自适应视觉编码方法。
在实践中,我们设置N<10,在编码过程中最多支持180万像素(例如1344×1344分辨率)。尽管我们可以包含更多的图像切片以获得更高的分辨率,但我们故意强加了这个分辨率上限,因为它已经很好地覆盖了大多数现实世界的应用场景,考虑到性能和开销,进一步提高编码分辨率的好处微乎其微。
Slice Encoding 虽然图像分割可以确保切片和ViT预训练设置之间的良好匹配,但每个切片的大小并不完全等于(Wv,Hv)。为了将切片馈送到ViT中,我们首先通过按比例调整每个切片的大小来调整它,使得到的区域大小与ViT预训练区域大小Wv×Hv相匹配。这种调整有助于防止编码补丁的数量与ViT的预训练设置之间出现显著差距。注意,这里不一定是与VIT输入等大小
参考这里。
随后,我们插值ViT的位置嵌入以适应切片的比率。这涉及将ViT的1D嵌入P1∈RQ×l重新整形为其2D格式P2∈Rq×q×l,其中位置嵌入的数量q=q×q。然后,我们通过2D插值来插值P2以适应每个切片的大小。我们还将原始图像作为附加切片,以提供有关整个图像的整体信息。
token compression。视觉编码后,每个切片被编码为1024个令牌,其中10个切片可以共同产生超过10k个令牌。我们采用了一个压缩模块,该模块由一层交叉注意力和适量查询组成,在实践中,通过这一层,每个切片的视觉标记被压缩为64个MiniCPM V1&2查询和96个MiniCPM-Llama3-V 2.5查询。
4.Training
The model training consists of 3 phases: the pre-training phase, the supervised fine-tuning phase, and the RLAIF-V phase.
4.1 Pre-training
在这个阶段,我们利用大规模的图像文本对进行MLLM预训练。该阶段的主要目标是将视觉模块(即视觉编码器和压缩层)与LLM的输入空间对齐,并学习基础的多模态知识。预训练阶段又分为3个阶段。
第一阶段。第一阶段的作用是warm up 压缩层,主要连接视觉编码器和LLM。 (1) 可训练模块。我们随机初始化压缩层,并在第一阶段训练该模块,保持其他参数frozen。视觉编码器的分辨率设置为224×224。
第二阶段。在压缩层的预热训练之后,第二阶段的作用是扩展预训练的视觉编码器的输入分辨率。(1) 可训练模块。在第二阶段,我们将图像分辨率从224×224扩展到448×448。整个视觉编码器经过训练,其他参数frozen。
第三阶段。在扩展了视觉编码器的主要输入分辨率后,我们最终使用自适应视觉编码策略训练视觉模块,该策略可以进一步适应任何宽高比的高分辨率输入。(1) 可训练模块。在第三阶段训练中,压缩层和视觉编码器都经过训练以适应语言模型嵌入空间。LLM保持冻结状态,以避免因相对低质量的预训练数据而干扰。(2) 数据。与之前只有图像字幕数据的阶段不同,在高分辨率预训练阶段,我们额外引入了OCR数据来增强视觉编码器的OCR能力。
4.3 RLAIF-V
MLLM通常容易出现幻觉问题,产生与输入图像不符的反应。这个问题极大地限制了MLLM的广泛应用。为了解决幻觉问题,我们采用了最近的RLAIF-V[112]方法(图4),其中关键是从开源模型中获得可扩展的高质量反馈,用于直接偏好优化(DPO)
Direct Preference Optimization.
在收集到高质量的人工智能反馈后,我们通过DPO方法进行偏好学习。DPO算法需要对偏好对进行训练,其中一个样本yw比另一个样本yl更受欢迎。为了组成偏好数据集,我们从每个响应集Y={y1,y2,··,yn}中随机抽样,并根据它们的相对得分确定(yw,yl)。最后,我们从3K个独特的图像中构建了一个由6K个偏好对组成的偏好数据集,用于偏好学习。