1. 简介
自以 GPT-3 为代表的大语言模型问世以来,纯文本模态的大模型和多种模态混合的多模态大模型都获得了迅速的发展。无论是学术界还是工业界,文本模态的大语言模型几乎学习了目前人类能够从公开渠道获取到的所有文本数据。结合模型规模的扩大以及模型'涌现'能力,使得大语言模型的'智能'、'记忆'、'推理'、'对话'、'创作'等多方面的能力得到了长足的发展。
互联网发展到今天,除了海量的文本数据之外,还产生了更多的多模态数据,如图文多模态数据、音视频,甚至于某些终端还包含了位姿信号、深度、雷达等多种模态的信号。因此高效、系统的处理多模态数据,将带来机器智能的进一步发展。当前研究多模态大模型的主流方向是通过不同模态数据独有的编码器编码,然后将多模态信号同文本进行'语义'层面的对齐,再利用大语言模型的能力进行处理。
• 这种通用的处理方式,是否是最优的,值得深入研究 • 是否有更好的进行单独模态数据编码的方式,以及更好的同文本进行'语义'对齐的技术方案? • 从文本训练的大语言模型拥有较高的'智能',但是否一定就适合用来处理多模态的问题? • 有没有一种类似文本大模型的端到端的通用的训练范式适用于多模态场景? • 计算机视觉发展了很多年,也有非常多的任务类型,多模态大模型是否有可能将这些多样的任务进行统一建模? • 多模态大模型都有哪些不可或缺的应用场景?
以上问题都值得更为深入和系统的研究。
2. 关键词
多模态大模型(Multi-Modal Large Language Model, MLLM)、大语言模型(Large Language Model, LLM)、视觉编码器(Vision Encoder)、音频编码器(Audio Encoder)、模态对齐(Modal Alignment)、端到端训练(End-to-End Training)、视觉摘要(Vision Caption)、视觉问答(Vision QA)、多模态理解(Multi-Modal Understanding)、多模态生成(Multi-Modal Generation)、长视频理解(Long Video Understanding)
3. 文献综述
多模态模型的发展由来已久,从早期通过多模态数据的引入提升模型精度,如通过引入图像和文本信息,提升内容分类的精度,这是通过有监督的多模态分类标注数据,将图像、文本模态的信息进行融合来提升精度的方法;中期,出现了多种不同方式的无监督多模态对比学习,通过对比学习拉近不同模态之间的距离,来提升多模态表示学习的效果,进而在其他任务上表现出更好的泛化性和精度;当前,多模态大模型的发展更多是在对不同模态'语义'对齐的基础上,通过大语言模型强大的理解、推理、总结等能力,来提升模型的效果,同时通过一个模型完成多个任务。
本文将从以下几个方面来进行多模态大模型的文献解读: • 多模态大模型的典型结构,以及不同结构的研究重点; • 多模态大模型同更多任务的结合,如和更多计算机视觉任务的结合,和生成任务的结合等; • 多模态大模型数据集及构建方式的演进; • 多模态大模型幻觉问题机理及解决思路; • 多模态理解与生成任务统一
多模态大模型的典型结构,以及不同结构的研究重点
![图:多模态大模型的典型模块]
如图一所示,一个典型的多模态大模型(仅视觉、文本示意),包括针对图像信息的 Vision Encoder 结构,将 Vision 特征映射到类似大语言模型 Token 的映射模块 Projector,大语言模型,以及训练任务,以及各任务的训练顺序和策略。
Vision Encoder(视觉编码器)
针对 Vision Encoder 结构,直观能够想到的可能的问题包括如何处理多尺度的图像。最简单的方式是 Resize 到固定的尺寸(如 256x256),但这种粗暴的方式显然会引入较多的问题,如长图、高分辨率图像 Resize 到小尺度之后,细节信息丢失等。论文 InternVL 1.5 中,作者通过 Dynamic High Resolution 技术来解决图像尺度以及高分辨率的问题。首先将图片 Resize 到最适合的预设的长宽比(如 448x448, 448x896 等),同时对全图进行缩放,保留图片的一个缩略图,然后将每一个大小为 448x448 的 Patch 送入 Encoder 提取视觉特征。论文 Navit 中,作者通过固定 Patch 大小的方式,将不同长宽比和分辨率的图像先进行 Patchify,然后通过 Token Drop 的方式来减少运算量。
针对 Vision Encoder,在处理完长宽比和分辨率的问题之后,另一个直观能够想到的问题是如何处理多图和视频。论文 Qwen2-VL 中,可以支持同时输入不同长宽比,不同分辨率,以及视频作为多模态的输入。视频被视为多张长宽比一致的图片(如每秒中采样 1 张图片),然后通过相同的 Vision Encoder 进行编码。由于不同的尺度和 Patch 数量的问题,不同大小的图像或视频将会最终获得不同数量的 Token 数。又由于大语言模型能够支持的输入 Token 数有上限,因此也有方法研究如何动态调整如视频模态所占用的 Token 数量。
针对 Vision Encoder,还有一部分工作在研究如何在大语言模型场景,训练或者复用更适配的 Encoder。大部分多模态大模型的工作中,初期 Vision Encoder 的参数都是冻结,但会在图文语义对齐阶段打开,或者是最后的任务 Tuning 阶段打开对 Vision Encoder 参数进行训练,以保证在初期视觉编码器能够有效提取视觉特征,以及在后期能够让特征更适配多模态大模型的场景。论文 Points 中,为了提升模型对图片中 OCR 信息的提取和理解精度,作者创新的引入了一直冻结的 OCR Vit 编码器,提取 OCR 相关的信息。以此类推,若模型希望较大的提升某一视觉任务的精度,可以引入在对应任务训练的视觉编码器作为输入,通过更大的计算量换取精度的提升。


