多模态融合的三个阶段
多模态大模型的发展经历了三个阶段:模态对齐(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上,而是从头训练一个统一处理所有模态的模型。
原生多模态的核心特征
- 共享表示空间:图像、文本、音频在同一个embedding空间中
- 统一Transformer:单一Transformer处理所有模态,无需模态特定的编码器
- 端到端训练:从预训练阶段就混合多模态数据
架构设计推测
基于公开信息,原生多模态模型的架构可能如下:
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的感知边界。