多模态AI如何理解世界?一文读懂单序列与双序列模型

多模态人工智能的浪潮正在席卷而来,从能够理解图片和文字的 LLaVA,到能生成视频的 Sora,AI 正在以前所未有的方式将不同类型的信息联系起来。

那么,这些多模态模型究竟是如何将图像、文本等不同模态的信息融合在一起的呢?

目前,主流的架构可以归纳为两大阵营:**单序列(Single String)**和双序列(Two String)。理解这两种范式,就能抓住多模态模型的核心。


1. 单序列(Single String)方法:一次看懂,全局理解

核心思想:将所有模态的数据都转化为同一种“语言”(Token),然后将它们像串珠子一样拼接成一个长长的序列,交给一个统一的 Transformer 模型进行处理。

这就像是“一图胜千言”。模型将图像视为一长串“视觉词汇”,将它们与文本中的普通词汇放在一起,在同一个注意力空间中进行交互和理解。

  • 工作流程
    1. 图像编码:将一张图片分割成许多小块(Patches)。
    2. 特征投影:使用一个视觉编码器将这些 Patches 转化为一系列图像 Token,并投影到与文本 Token 相同的嵌入空间。
    3. 序列拼接:将图像 Token 序列与文本 Token 序列拼接起来,通常还会用特殊分隔符(如 [IMG_START])进行标记。
    4. 统一处理:将拼接后的长序列一次性输入给一个统一的 Transformer 模型。
  • 优点
    • 架构简单:只需一个 Transformer 模型,无需额外的复杂融合层。
    • 隐式对齐:模型通过全局自注意力机制,自然地学习图像和文本之间的对齐关系。
  • 缺点
    • 计算成本高:自注意力机制的计算复杂度与序列长度的平方成正比。图像 Token 数量多,拼接后序列变得很长,导致计算量巨大。
  • 代表模型:LLaVA, Flamingo, IDEFICS。

2. 双序列(Two String)方法:分而治之,最后融合

核心思想:对不同模态的数据使用独立的、专门的编码器进行处理。在处理的后期,再通过一个专门的“融合”模块将不同模态的特征结合起来。

这就像是“分开阅读,再独立思考”。模型先独立地“看”图片,再独立地“读”文本,最后再“思考”如何将两者联系起来。

  • 工作流程
    1. 文本编码:使用一个文本编码器(如 BERT)将文本序列编码为文本特征。
    2. 图像编码:使用一个图像编码器(如 ViT)将图像编码为图像特征。
    3. 专门融合:将两个编码器输出的特征向量(或序列)送入一个融合层,通过**交叉注意力(Cross-Attention)**或简单的拼接,来学习和融合跨模态的信息。
  • 优点
    • 计算高效:每个编码器处理较短的序列,计算成本更低。
    • 模态特化:可以为每个模态使用最适合的预训练模型和架构,灵活性高。
  • 缺点
    • 架构复杂:需要设计和训练一个有效的融合机制,这比单流模型更具挑战性。
    • 对齐显式化:模型必须显式地学习如何对齐两个独立的特征,如果融合层设计不当,会限制性能。
  • 代表模型:CLIP (经典的双编码器模型), VisualBERT。

3. 对比总结:如何选择?

特性 单序列(Single String) 双序列(Two String)
核心思想 统一所有模态为一长串 Token 分别编码,后期专门融合
架构 单个统一的 Transformer 模型 独立编码器 + 融合模块
计算成本 较高(与总序列长度的平方成正比) 较低(编码器内部并行,融合层成本可控)
主要优势 架构简单,对齐自然 灵活性高,计算更高效
典型模型 LLaVA, Flamingo, IDEFICS CLIP, VisualBERT

如何选择?

  • 如果你追求极致的性能,并且希望模型在多模态数据之间建立最细致的、隐式的联系,单序列模型可能是更好的选择。
  • 如果你更看重计算效率、灵活性,希望在已有预训练模型上快速构建,或者需要将模型部署到资源受限的设备上,双序列模型可能更具优势。

这两种范式都在不断演进,为我们打开了通往真正多模态AI世界的大门。