多模态大语言模型(Multimodal Large Language Model , MLLM),在LLM原有的强大泛化和推理能力基础上,进一步引入了多模态信息处理能力。相比于以往的多模态方法,例如以 CLIP 为代表的判别式,或以 OFA 为代表的生成式,新兴的 MLLM 展现出一些典型的特质,在下面这两种特质的加持下,MLLM 涌现出一些以往多模态模型所不具备的能力!
- 模型大。MLLM 通常具有数十亿的参数量,更多的参数量带来更多的潜力;
- 新的训练范式。为了激活巨大参数量的潜力,MLLM 采用了多模态预训练、多模态指令微调等新的训练范式,与之匹配的是相应的数据集构造方式和评测方法等。
下面主要介绍一下MLLM的模型架构。
1 模型架构
对于多模态输入-文本输出的典型 MLLM,其架构一般包括模态编码器、连接器以及 LLM。如要支持更多模态的输出(如图片、音频、视频),一般需要额外接入生成器,如下图所示:
模态编码器(Modality Encoder)负责将原始的信息(如图片)编码成特征,连接器(Connector)则进一步将特征处理成LLM 易于理解的形式,即视觉 Token。LLM 则作为“大脑”综合这些信息进行理解和推理,生成回答。目前,三者的参数量并不等同,以 Qwen-VL为例,LLM 作为“大脑”参数量为 7.7B,约占总参数量的 80.2%,视觉编码器次之(1.9B,约占 19.7%),而连接器参数量仅有 0.08B。
2 模态编码器
模态编码器(Modality Encoder)主要是将其他的非文本模型信息编码成易于 LLM 可用的特征信息,并且编码器编码的特征大小会影响视觉特征输入到LLM模型中的信息量。例如,对于视觉编码器而言,增大输入图片的分辨率是提升性能的有效方法。一种方式是直接提升分辨率,这种情况下需要放开视觉编码器进行训练以适应更高的分辨率。另一种方式是将大分辨率图片切分成多个子图,每个子图以低分辨率送入视觉编码器中,这样可以间接提升输入的分辨率。
3 LLM
常用的包括LLM包括 LLaMA系列、Qwen系列和 InternLM系列等,前者主要支持英文,而后两者中英双语支持得更好。就性能影响而言,加大 LLM 的参数量可以带来显著的性能增益,如 LLaVA-NeXT在 7B/13B/34B 的 LLM 上进行实验,发现提升LLM 大小可以带来各 benchmark 上的显著提升,在 34B 的模型上更涌现出 zero-shot 的中文能力。除了直接增大 LLM 参数量,近期火热的 MoE 架构则提供了更高效实现的可能性,即通过稀疏计算的方式,在不增大实际计算参数量的前提下提高总的模型参数量。
4 连接器
连接器(Connector)主要作用是进一步将非文本特征处理(如视觉特征)成适合LLM的输入token格式。相对前两者来说,连接器的重要性略低,其不如视觉 token 数量(决定之后 LLM 可用的视觉信息)及图片的分辨率(决定视觉编码器的输入信息量)重要。
5 生成器
生成器(Generator)一般而言是可选的,其主要作用是对LLM输出特征进行非文本多模态的内容生成,生成器可以支持更多模态的输出(如图片、音频、视频),弥补了LLM的多模态生成能力不足的缺点。例如:
- 图像生成:根据文本描述,利用LLM输出特征生成对应的图像。
- 视频生成:根据文本描述利用LLM输出特征生成视频内容,或将图片序列生成视频。
结语
PS: 欢迎大家扫码关注公众号_,我们一起在AI的世界中探索前行,期待共同进步!
精彩回顾
1. 国内外多模态模型发展的路径是什么样的
2. 离大模型落地应用最近的工程化技术(RAG)
3. 比较好的几个PyTorch练手项目(CV/NLP/LLM)