探索多模态大模型的实现路径
探索多模态大模型的实现路径
在人工智能研究的快速发展中,多模态大语言模型(Multimodal LLMs) 正成为一个备受关注的领域。与传统的仅处理文本的LLMs不同,多模态LLMs能够处理多种类型的输入,例如文本、图像、音频和视频。最直观的应用之一是图像字幕生成:输入一张图片,模型就能生成对图片的描述。那么,这些强大的模型是如何构建的呢?本文将深入探讨构建多模态LLMs的两种主要方法及其关键组件。
参考:Understanding Multimodal LLMs
两种主要实现路径
根据来源资料,构建多模态LLMs主要有两种方法:
1. 方法A:统一嵌入解码器架构 (Unified Embedding Decoder Architecture)
这种方法可以描述为“仅解码器”的方法。
- 核心思想:它利用一个单一的解码器模型,类似于未经修改的传统LLM架构(如GPT-2或Llama 3.2)。在这种方法中,图像会被转换成与原始文本标记具有相同嵌入大小的标记。然后,LLM可以将文本和图像输入标记连接起来,并作为一个整体进行处理。
- 工作原理:
- 图像编码器(Image Encoder):类似于文本的标记化和嵌入过程,图像嵌入是通过一个图像编码器模块生成的。通常,这涉及将图像分割成小块(patches),然后由预训练的视觉Transformer (ViT) 进行编码。CLIP或OpenCLIP是常用的预训练视觉Transformer。
- 线性投影模块(Linear Projection Module / Projector):图像编码器之后通常会有一个“线性投影”层。这个层(有时也称为适配器或连接器)的作用是将图像编码器的输出投影到一个与嵌入文本标记维度相匹配的维度。
- 一旦图像块嵌入和文本标记嵌入具有相同的维度,它们就可以简单地拼接起来作为LLM的输入。
- 优点:通常更容易实现,因为它不需要对LLM架构本身进行任何修改。
- 代表模型:
- Fuyu:一个显著的例外,它不依赖额外的预训练图像编码器,而是直接将输入图像块通过一个线性投影层,学习其自身的图像块嵌入,从而大大简化了架构和训练设置。
- Molmo:使用现成的CLIP作为图像编码器,并通过“连接器”(即投影器)来对齐图像特征与语言模型。Molmo简化了训练流程,采用统一方法更新所有参数,包括LLM、连接器和图像编码器。
- NVLM-D:NVIDIA提出的三种方法之一,属于统一嵌入解码器架构。它在OCR相关任务中实现了更高的准确性。
- MM1.5:也专注于统一嵌入Transformer架构。
- Baichuan-Omni:一个70亿参数的多模态LLM,基于统一嵌入解码器架构。它使用SigLIP视觉编码器,并整合了AnyRes模块来处理高分辨率图像。
- Pixtral 12B:Mistral AI 的首个多模态模型,同样采用了统一嵌入解码器架构。有趣的是,它没有使用预训练的图像编码器,而是从零开始训练了一个4亿参数的图像编码器。它也支持可变图像尺寸。
2. 方法B:跨模态注意力架构 (Cross-modality Attention Architecture)
这种方法可以描述为“基于跨注意力”的方法。
- 核心思想:它利用跨注意力机制将图像和文本嵌入直接集成到注意力层中。这与2017年“Attention Is All You Need”论文中原始Transformer架构中使用的机制相关。
- 工作原理:
- 与自注意力(Self-attention)不同,跨注意力(Cross-attention)涉及两种不同的输入源。在多模态LLM的背景下,其中一个输入源(通常提供键K和值V)是图像编码器的输出,而另一个输入源(通常提供查询Q)是来自解码器处理的文本序列。
- 虽然两个输入序列可以有不同数量的元素,但它们的嵌入维度必须匹配。
- 优点:通常被认为计算效率更高,因为它不会通过额外的图像标记使输入上下文过载,而是在跨注意力层中引入它们。此外,如果LLM参数在训练过程中保持冻结,这种方法还可以保持原始LLM的纯文本性能。
- 代表模型:
- Llama 3.2:Meta AI 的多模态模型,采用了跨注意力方法。值得注意的是,Llama 3.2的研究人员采取了更新图像编码器但不更新语言模型参数的方法,旨在保持纯文本能力。他们甚至从头开始预训练了一个ViT图像编码器。
- NVLM-X:NVIDIA提出的三种方法之一,属于跨模态注意力架构。NVLM-X在高分辨率图像方面表现出卓越的计算效率。
- Aria:一个开放的多模态原生专家混合模型,其方法基于跨注意力。
3. 混合方法 (Hybrid Approach)
- 核心思想:NVIDIA的NVLM论文还提出了一种混合方法(NVLM-H),旨在结合两种方法的优势。它以图像缩略图作为输入,然后通过跨注意力传递动态数量的图像块,以捕获更精细的高分辨率细节。
- 代表模型:NVLM-H。
多模态LLM的训练考量
多模态LLM的训练通常涉及两个阶段:预训练和指令微调。与从头开始训练不同,多模态LLM训练通常从预训练的、经过指令微调的纯文本LLM作为基础模型开始,因为这通常表现更好。
在训练过程中,模型中的不同组件(图像编码器、投影器、LLM本身)可以被冻结(frozen)或解冻(unfrozen)。
- 通常,图像编码器(如CLIP)在整个训练过程中保持不变,尽管也有例外。
- 在预训练阶段,LLM部分也通常保持冻结,仅专注于训练投影器(通常是线性层或小型多层感知机)。
- 由于投影器的学习能力有限,LLM通常在多模态指令微调阶段(第二阶段)解冻,以进行更全面的更新。
- 然而,在基于跨注意力的模型中,跨注意力层在整个训练过程中都是解冻的。
- 一些模型(如Llama 3.2)甚至选择更新图像编码器但冻结LLM参数,以保留纯文本能力。
- Baichuan-Omni 则采用三阶段训练:先训练投影器(冻结视觉编码器和LLM),接着解冻并训练视觉编码器(冻结LLM),最后解冻LLM并进行端到端训练。
- Janus 模型也采用了三阶段训练,涉及逐步解冻投影器、LLM和图像编码器。
结论
总而言之,多模态LLMs的实现路径是多样且灵活的。无论是通过统一嵌入解码器架构将不同模态的嵌入拼接输入到单一解码器中,还是通过跨模态注意力机制在注意力层中融合信息,亦或是结合两者的混合方法,都在不断推动多模态AI的发展。这些不同的设计选择和训练策略,使得多模态大模型能够处理日益复杂的现实世界任务,极大地扩展了LLM的应用边界。