上一篇:《搭建人工智能多模态大语言模型的通用方法》
在今天的文章中,我将回顾2024年有关多模态大语言模型(LLM)的文献资料,主要关注过去几个月发布的工作,以确保范围合理。
因此,这并不是一个关于多模态LLM的历史性概述或全面回顾,而是对最新进展的简要探讨。同时,我会尽量保持总结简洁,不加太多无关内容,因为要介绍10项研究。
文章最后的结论部分会提供一个总结,比较这些论文中使用的方法。
4.1 Llama 3 模型系列
Meta AI 的 Llama 3 模型系列 论文(发表于2024年7月31日)在今年夏天发布,但在LLM领域,感觉像是很久以前的事情了。然而,考虑到他们只是描述了多模态模型,但直到更晚才真正发布模型,我认为将 Llama 3 包括在这份列表中是合理的。(Llama 3.2 模型正式宣布并开放获取的时间是2024年9月25日。)
Llama 3.2 是一种多模态模型,提供了 110亿和900亿参数的版本。这些模型基于之前描述的跨注意力(cross-attention)方法,与下图所示一致。
Llama 3.2 的多模态LLM方法示意图
(摘自 Llama 3 论文的注释图:https://arxiv.org/abs/2407.21783。这张图为了突出图像部分,视频和语音部分被视觉遮蔽。)
注意,虽然图中显示了视频和语音作为可能的模态,但截至撰写本文时,发布的模型仅支持图像和文本。
Llama 3.2 使用了跨注意力方法,但与我之前提到的有些不同。通常在多模态LLM开发中,我们会冻结图像编码器的参数,只更新语言模型的参数。然而,这里的研究人员几乎采取了相反的做法:他们更新了图像编码器的参数,而语言模型的参数则保持不变。研究人员指出,这样做是有意的,目的是保留其纯文本能力,使得 110亿和900亿参数的多模态模型可以无缝替代 Llama 3.1 的80亿和700亿参数纯文本模型,用于文本任务。
训练流程
训练分多个迭代,从 Llama 3.1 的文本模型开始。在添加图像编码器和投影(即"适配器")层之后,模型在图文数据上进行预训练。接着,与 Llama 3 纯文本模型训练流程类似(我在之前的文章中写过),模型进行指令和偏好微调。
不同于采用 CLIP 等预训练模型作为图像编码器,研究人员从零开始预训练了一个视觉变换器(ViT)。具体而言,他们采用了经典视觉变换器架构(Dosovitskiy等,2020)中的 ViT-H/14 变体(6.3亿参数)。他们在包含25亿对图文数据的数据集上进行了5个epoch的预训练,这发生在将图像编码器连接到LLM之前。(图像编码器接收 224×224 分辨率的图像,将其分割为14×14的网格,每个网格块大小为16×16像素。)
由于跨注意力层会显著增加参数量,因此每四个变换器块才添加一次跨注意力层。(对于80亿参数的模型,这会增加30亿参数;对于700亿参数的模型,这会增加200亿参数。)
4.2 Molmo 和 PixMo:开源权重与数据的多模态模型前沿探索
《Molmo 和 PixMo:开源权重与数据的多模态模型前沿探索》 论文(2024年9月25日)非常值得注意,因为它不仅承诺开源模型权重,还会开源数据集和源码,类似于纯语言模型 OLMo LLM。(这对LLM研究非常有利,因为研究人员可以查看完整的训练过程和代码,还能在同一个数据集上进行消融实验并复现结果。)
如果你好奇为什么论文标题里有两个名字------Molmo 指代模型(Multimodal Open Language Model,多模态开源语言模型),而 PixMo(Pixels for Molmo)则是对应的数据集。
Molmo 解码器(Decoder-Only)方法示意图(方法A)
注释图改编自《Molmo 和 PixMo:开源权重与数据的多模态模型前沿探索》论文:
https://www.arxiv.org/abs/2409.17146
如上图所示,图像编码器使用的是现成的视觉变换器(Vision Transformer),具体来说是 CLIP 模型。"Connector"(连接器)在这里指代"投影器",它的作用是将图像特征与语言模型对齐。
Molmo 简化了训练流程,避免了多次预训练阶段,选择了一种更简单的统一训练管道。这个方法更新了所有参数,包括基础LLM、连接器以及图像编码器的参数。
Molmo 团队为基础LLM提供了多种选项:
• OLMo-7B-1024
(完全开源的模型框架)
• OLMoE-1B-7B
(一种专家混合架构,是最有效率的模型)
• Qwen2 7B
(一种开源权重模型,性能优于 OLMo-7B-1024)
• Qwen2 72B
(开源权重模型,也是性能最佳的模型)
4.3 NVLM:开放的前沿级多模态LLM
NVIDIA 的 NVLM:开放的前沿级多模态LLM 论文(2024年9月17日)非常有意思,因为它不仅专注于一种方法,而是同时探索了两种方法:
• 方法A:统一嵌入解码架构("仅解码器架构",NVLM-D);
• 方法B:跨模态注意力架构("基于跨注意力的架构",NVLM-X)。
此外,他们还开发了一种混合方法(NVLM-H),并对这三种方法进行了公平对比。
三种多模态方法的概述
(注释图摘自《NVLM:开放的前沿级多模态LLM》论文:https://arxiv.org/abs/2409.11402)
正如下图总结的那样,NVLM-D 对应方法A,而 NVLM-X 对应方法B,具体在前文中已有讨论。混合模型(NVLM-H)的概念是结合两种方法的优点:首先输入一张缩略图,然后通过跨注意力传递一组动态数量的图像块,从而捕捉更高分辨率的细节信息。
研究团队的发现可以总结如下:
-
NVLM-X 在处理高分辨率图像时展现了卓越的计算效率。
-
NVLM-D 在OCR(光学字符识别)相关任务中达到了更高的准确率。
-
NVLM-H 结合了两种方法的优势。
训练流程和方法
和 Molmo 及其他方法类似,NVLM 研究团队不是从零开始预训练一个多模态模型,而是从一个纯文本LLM开始(通常这种方法表现更好)。此外,他们选择使用指令微调后的LLM,而不是基础LLM。具体来说,他们的基础LLM是 Qwen2-72B-Instruct(据我所知,Molmo 使用的是 Qwen2-72B 基础模型)。
在 NVLM-D 方法中,他们训练了所有的LLM参数,而对于 NVLM-X,他们发现冻结原始LLM参数,仅在预训练和指令微调阶段训练跨注意力层效果很好。
图像编码器和投影器
在图像编码器方面,他们没有使用常见的 CLIP 模型,而是选择了 InternViT-6B,并在所有阶段保持参数冻结。
投影器使用的是一个多层感知器(MLP),而不是单一线性层。
4.4 Qwen2-VL:在任何分辨率下增强视觉-语言模型对世界的感知
前面提到的两个论文和模型------Molmo 和 NVLM------都基于 Qwen2-72B LLM。而在这篇论文中,Qwen 研究团队自己发布了一种多模态LLM,Qwen2-VL:在任何分辨率下增强视觉-语言模型对世界的感知(发表于2024年10月3日)。
这项研究的核心是他们所谓的**"Naive Dynamic Resolution"(简单动态分辨率)**机制("Naive"这个词是有意使用的,并不是"Native"(原生)的拼写错误,尽管"Native"这个词也适合)。这个机制允许模型处理不同分辨率的图像,而不是简单地进行降采样,从而能够输入原始分辨率的图像。
多模态 Qwen 模型的概述
(注释图摘自 Qwen2-VL 论文:https://arxiv.org/abs/2409.12191)
该模型通过一个经过修改的视觉变换器(ViT)实现原生分辨率输入,这一修改去掉了原有的绝对位置嵌入(absolute position embeddings),并引入了二维旋转位置编码(2D-RoPE)。
他们使用了一个经典的视觉编码器,参数量为 675M,以及不同大小的LLM主干模型,具体参数如下面的表格所示。
不同 Qwen2-VL 模型的组成部分
(注释图摘自 Qwen2-VL 论文:https://arxiv.org/abs/2409.12191)
训练过程分为三个阶段:
-
仅预训练图像编码器;
-
解冻所有参数(包括LLM);
-
冻结图像编码器,仅对LLM进行指令微调(instruction-finetuning)。
这三阶段的流程结合了高效的视觉处理与强大的语言理解能力,从而使 Qwen2-VL 能够更好地感知和处理来自现实世界的视觉输入。
4.5 Pixtral 12B
Pixtral 12B(2024年9月17日)是 Mistral AI 的第一个多模态模型,它采用了方法A:统一嵌入解码架构。遗憾的是,目前没有公开的技术论文或报告,但 Mistral 团队在他们的博客中分享了一些有趣的细节。
有趣的是,他们选择不使用预训练的图像编码器,而是从头开始训练了一个拥有 4亿参数 的图像编码器。至于 LLM 的主干模型,他们使用了 12亿参数的 Mistral NeMo 模型。
类似于 Qwen2-VL,Pixtral 也原生支持可变图像大小,具体如下面的示意图所示。
Pixtral 如何处理不同大小图像的示意图
(注释图来源于 Pixtral 博客文章:https://mistral.ai/news/pixtral-12b/)
4.6 MM1.5:多模态LLM微调的方法、分析与洞察
《MM1.5:多模态LLM微调的方法、分析与洞察》 论文(2024年9月30日)提供了许多实用建议,并引入了一种混合专家多模态模型以及类似 Molmo 的稠密模型。这些模型的规模范围从 1亿参数 到 300亿参数 不等。
该论文中描述的模型主要集中在方法A:统一嵌入变换器架构,这种架构能够有效地组织输入数据以进行多模态学习。
此外,论文还进行了多项有趣的消融研究,探讨了数据组合以及使用坐标标记(coordinate tokens)的效果。
MM1.5 方法的示意图,包括用于表示边界框的附加坐标标记
(注释图来源于 MM1.5 论文:https://arxiv.org/abs/2409.20566)
4.7 Aria:一种开放的多模态原生混合专家模型
《Aria:一种开放的多模态原生混合专家模型》 论文(2024年10月8日)引入了另一种混合专家模型的方法,与 Molmo 和 MM1.5 系列中的某些变体类似。
Aria 模型拥有 24.9亿参数,其中每个文本标记分配了 3.5亿参数。图像编码器(SigLIP)则拥有 4.38亿参数。
该模型基于跨注意力方法,整体训练流程如下:
-
从零开始训练LLM主干模型。
-
同时预训练LLM主干和视觉编码器。
4.8 Baichuan-Omni
《Baichuan-Omni技术报告》(2024年10月11日)介绍了 Baichuan-Omni,这是一种基于方法A:统一嵌入解码架构的 70亿参数多模态LLM,如下图所示:
Baichuan-Omni 模型概述,可以处理多种输入模态
(注释图来源于 Baichuan-Omni 论文:https://arxiv.org/abs/2410.08565)
Baichuan-Omni 的训练过程分为三阶段:
-
投影器训练:最初仅训练投影器,视觉编码器和语言模型(LLM)保持冻结状态。
-
视觉编码器训练:接下来解冻视觉编码器并进行训练,LLM 仍然冻结。
-
完整模型训练:最终解冻 LLM,允许整个模型进行端到端的训练。
该模型采用 SigLIP 视觉编码器,并引入 AnyRes 模块,通过降采样技术处理高分辨率图像。
尽管报告没有明确说明LLM的主干模型,但根据模型参数规模和命名规则,很可能是基于 Baichuan 7B LLM。
4.9 Emu3:下一标记预测是你唯一需要的
《Emu3:下一标记预测是你唯一需要的》 论文(2024年9月27日)提出了一种引人注目的替代扩散模型的图像生成方法,这种方法完全基于变换器解码器架构。虽然它不是传统意义上的多模态LLM(即专注于图像理解而非生成的模型),但 Emu3 非常有趣,因为它表明可以使用变换器解码器进行图像生成,而这通常是扩散方法的领域。(不过需要注意的是,以前也有类似的方法,比如《Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation》。)
Emu3 是一种基于 LLM 的图像生成模型,可作为扩散模型的替代方案
(注释图摘自 Emu3 论文:https://arxiv.org/abs/2409.18869)
研究人员从零开始训练了 Emu3,并使用**直接偏好优化(DPO)**方法将模型调整为符合人类偏好的结果。
该架构包含一个受 SBER-MoVQGAN 启发的视觉标记器(Vision Tokenizer)。核心 LLM 架构基于 Llama 2,但整个模型完全从零开始训练。
4.10 Janus:解耦视觉编码以实现统一的多模态理解与生
我们之前关注的是用于图像理解的多模态LLM,并在上文中通过 Emu3 介绍了一个图像生成的例子。现在,《Janus:解耦视觉编码以实现统一的多模态理解与生成》 论文(2024年10月17日)引入了一个框架,将理解和生成任务统一在一个LLM主干中。
Janus 的一个关键特性是解耦视觉编码路径,以应对理解和生成任务的不同需求。研究人员指出,图像理解任务需要高维语义表示,而生成任务则需要图像的局部细节和全局一致性。通过分离这些路径,Janus 能够有效处理这些不同的需求。
Janus 使用的统一仅解码器框架概述
(注释图摘自 Janus 论文:https://arxiv.org/abs/2410.13848)
该模型使用了与 Baichuan-Omni 相似的 SigLIP 视觉编码器 处理视觉输入。在图像生成方面,它使用向量量化(VQ)标记器处理生成过程。Janus 的基础LLM为 DeepSeek-LLM,拥有 13亿参数。
Janus 模型的三阶段训练流程
(注释图摘自 Janus 论文:https://arxiv.org/abs/2410.13848)
训练过程分为以下三个阶段:
-
阶段I:仅训练投影层和图像输出层,LLM、理解和生成编码器保持冻结状态。
-
阶段II:解冻LLM主干和文本输出层,使模型在理解和生成任务上进行统一的预训练。
-
阶段III:解冻整个模型,包括 SigLIP 图像编码器,进行监督微调,使模型全面整合和优化其多模态能力。
结论
正如你可能注意到的,我几乎完全跳过了模型和计算性能的对比。首先,在公共基准上比较 LLM 和多模态 LLM 的性能非常具有挑战性,因为普遍存在的数据污染问题,这意味着测试数据可能已包含在训练数据中。
此外,架构组件的差异如此之大,以至于很难进行真正的公平对比。所以,向 NVIDIA 团队致敬,他们开发了多种版本的 NVLM,至少使得仅解码器和跨注意力方法之间的比较成为可能。
无论如何,这篇文章的主要结论是:多模态 LLM 可以通过多种不同的方法成功构建。下图总结了本文中涉及的不同模型的组件和训练方法。
本文涉及的不同模型及其子组件和训练方法概述
希望你觉得这几篇文章具有教育意义,并且对多模态 LLM 的工作原理有了更深入的理解!