多模态融合的三个阶段

多模态大模型的发展经历了三个阶段:模态对齐(CLIP)、模态桥接(LLaVA)、原生多模态(GPT-4o)。每个阶段都代表着对"如何让模型同时理解图像和文本"这一核心问题的不同回答。

第一阶段:CLIP双塔对齐

OpenAI在2021年提出的CLIP开创了对比学习对齐范本。CLIP分别用图像编码器和文本编码器提取特征,通过对比损失拉正样本对、推负样本对:

class CLIP(nn.Module):
    def __init__(self, image_encoder, text_encoder, dim=512):
        self.image_encoder = image_encoder
        self.text_encoder = text_encoder
        self.logit_scale = nn.Parameter(torch.ones([]) * np.log(1/0.07))
    
    def forward(self, images, texts):
        image_features = self.image_encoder(images)
        text_features = self.text_encoder(texts)
        # 归一化
        image_features = F.normalize(image_features, dim=-1)
        text_features = F.normalize(text_features, dim=-1)
        # 对比损失
        logit_scale = self.logit_scale.exp()
        logits = logit_scale * image_features @ text_features.T
        return logits

CLIP的局限在于它是"理解"而非"生成"——可以判断图文匹配度,但不能生成图像描述或根据文本生成图像。但它奠定了后续多模态模型的基础:CLIP的视觉编码器被广泛应用于Stable Diffusion、LLaVA等模型中。

第二阶段:桥接架构(LLaVA)

LLaVA代表了"视觉编码器+LLM"的桥接架构。核心思路是将图像编码为"视觉token"插入LLM的输入序列:

[文本token] + [视觉token1] [视觉token2] ... [视觉tokenN] + [文本token]

关键设计选择:

视觉编码器选择

大多数模型使用CLIP ViT-L/14作为视觉编码器。它经过4亿图文对训练,视觉特征质量高。但也有例外:Qwen-VL使用自研的视觉编码器,支持动态分辨率。

连接器设计

连接器负责将视觉编码器的输出适配到LLM的输入空间:

  • 线性投影(LLaVA-1.5):简单MLP,2层即可
  • Q-Former(BLIP-2):使用可学习的query token提取视觉信息
  • 像素打散(Fuyu):直接将图像patch展平作为token

LLaVA-1.5的线性投影看似简单,但在实践中效果最好——简单即有效。

分辨率处理

标准CLIP使用224x224分辨率,这限制了对细节的识别。解决方案:

  • 动态分辨率(Qwen-VL):根据输入图像大小动态调整patch数量
  • 切片策略(LLaVA-NeXT):将高分辨率图像切成多个子图,分别编码
  • 原生高分辨率(InternVL):使用原生支持高分辨率的ViT

第三阶段:原生多模态架构

GPT-4o代表了原生多模态的新范式:不是将视觉编码器"嫁接"到LLM上,而是从头训练一个统一处理所有模态的模型。

原生多模态的核心特征

  1. 共享表示空间:图像、文本、音频在同一个embedding空间中
  2. 统一Transformer:单一Transformer处理所有模态,无需模态特定的编码器
  3. 端到端训练:从预训练阶段就混合多模态数据

架构设计推测

基于公开信息,原生多模态模型的架构可能如下:

class NativeMultimodalModel(nn.Module):
    def __init__(self, dim=4096, n_layers=32):
        # 统一的token化器
        self.text_tokenizer = TextTokenizer()
        self.image_tokenizer = ImageTokenizer()  # VQ-VAE或类似
        self.audio_tokenizer = AudioTokenizer()
        
        # 统一Transformer
        self.transformer = Transformer(dim, n_layers)
        
        # 统一输出头
        self.text_head = nn.Linear(dim, vocab_size)
        self.image_head = nn.Linear(dim, image_codebook_size)
        self.audio_head = nn.Linear(dim, audio_codebook_size)

关键挑战在于图像和音频的tokenization:如何将连续的高维信号离散化为token序列。VQ-VAE和其变体(VQ-GAN、FSQ)是主流方案。

任意到任意模态转换

原生多模态架构的一个独特能力是"任意到任意"的模态转换:

  • 文本→图像→文本(图像理解)
  • 文本→音频→文本(语音对话)
  • 图像→音频(图像描述语音)
  • 音频→图像(语音生成图像)

这种能力在传统桥接架构中难以实现,因为不同模态之间的信息需要经过文本这一"瓶颈"。

当前技术前沿

长视频理解

视频理解的核心挑战是序列长度。一段1分钟的视频可能有数千帧,直接编码会超出上下文限制。当前方案:

  • 帧采样:均匀采样关键帧,丢失时序信息
  • 3D注意力:在空间和时间维度上做3D注意力,但计算量大
  • 分层编码:先编码每帧的空间特征,再编码帧间时序关系
  • 记忆压缩:将视频编码为压缩的记忆向量

实时多模态交互

GPT-4o的实时语音对话展示了端到端多模态交互的可能。关键技术:

  • 流式处理:不等完整输入就开始生成
  • 低延迟音频编码:音频帧级别(~20ms)的处理
  • 中断处理:用户打断时及时响应

评估基准

多模态模型评估需要覆盖理解、推理和生成三个维度:

基准评估维度说明
MMMU学科推理跨学科图文推理
MMBench综合理解多选+开放问答
MathVista数学推理图表/几何数学
DocVQA文档理解文档图像问答
Video-MME视频理解长视频多模态
GenAI-Bench生成评估图像生成质量

结语

从CLIP到GPT-4o,多模态技术的演进方向是"更统一的架构、更自然的交互、更丰富的模态"。原生多模态架构标志着AGI研究从"语言智能"向"全面感知智能"的跨越。未来,触觉、嗅觉等更多模态的融入将进一步拓展AI的感知边界。