搭建人工智能多模态大语言模型的通用方法
搭建人工智能多模态大语言模型的通用方法
本文详细介绍了构建多模态大语言模型的两种主流方案:统一嵌入-解码器架构和跨模态注意力架构,并说明了图像编码与投影在文本-图像融合中的关键作用。通过对基础概念、典型实现方式及现有研究进行分析,读者可初步了解多模态LLM的设计思路和技术路径。
构建多模态 LLM 的常见方法
构建多模态 LLM(大型语言模型)主要有两种方法:
- 方法 A:统一嵌入-解码器架构 (Unified Embedding Decoder Architecture)
- 方法 B:跨模态注意力架构 (Cross-modality Attention Architecture)
(顺便说一下,目前这些技术还没有官方的标准术语。简短一点的描述可能就是“纯解码器结构(decoder-only)”和“基于交叉注意力(cross-attention-based)”的两种方法。)
图示:统一嵌入-解码器架构,也就是一个未修改过的解码器风格 LLM(比如 GPT-2、Phi-3、Gemma 或者 Llama 3.2),它接收的输入是包括了图像 token 和文本 token 的嵌入。
在统一嵌入-解码器架构中,一张图像会被转成一串嵌入向量,就像在标准的文本 LLM 里文本被转成嵌入向量那样。
理解图像编码器 (Image encoders)
图像的嵌入是通过图像编码器模块(而不是分词器)来搞定的,如下图所示。
图示:把图像编码成图像 patch 的嵌入的过程。
经典的 Vision Transformer (ViT) 架构,类似 2020 年那篇 “An Image is Worth 16x16 Words” 里的模型。
图示:经典的 Vision Transformer (ViT) 架构,类似 2020 年那篇 “An Image is Worth 16x16 Words” 里的模型。
线性投影模块 (linear projection) 的作用
线性投影层把展平的图像 patch 从 256 维投影到 768 维嵌入空间。
图示:线性投影层把展平的图像 patch 从 256 维投影到 768 维嵌入空间。
图像和文本的分词对比 (Image vs text tokenization)
图像和文本的分词与嵌入过程的对比。
图示:左边是图像的分块和嵌入,右边是文本的分词和嵌入,对比放一起。
在把图像 patch token 投影到和文本 token 嵌入相同的维度后,我们就能轻松地把它们拼接在一起,送进标准的 LLM。
图示:在把图像 patch token 投影到和文本 token 嵌入相同的维度后,我们就能轻松地把它们拼接在一起,送进标准的 LLM。
方法 B:跨模态注意力架构 (Cross-Modality Attention Architecture)
在跨模态注意力架构中,我们依然使用之前讨论过的图像编码器设置。但与把图像的patch嵌入作为LLM输入不同,这里是在多头注意力层中通过跨注意力机制把图像信息接入进来。
图示:跨模态注意力架构方法的示意图。
最初的 Transformer 架构里使用的跨注意力机制。
图示:最初的 Transformer 架构里使用的跨注意力机制。(图片来自“Attention Is All You Need”论文:https://arxiv.org/abs/1706.03762,有标注)
常规自注意力机制的流程。
图示:常规自注意力机制的流程。(这里展示的是多头注意力中的一个注意力头的处理流程)
跨注意力(cross-attention)的示意图,有两个不同的输入 x1 和 x2。
图示:跨注意力(cross-attention)的示意图,有两个不同的输入 x1 和 x2
总结:本文详细介绍了构建多模态大语言模型的两种主流方案:统一嵌入-解码器架构和跨模态注意力架构,并说明了图像编码与投影在文本-图像融合中的关键作用。通过对基础概念、典型实现方式及现有研究进行分析,读者可初步了解多模态LLM的设计思路和技术路径。下一篇将重点探讨如何为这两类架构的方法实际训练多模态大语言模型,以期在实践中取得更高效、更稳定的性能表现。