Skip to content

多模态模型

多模态模型是生成式 AI 向文本以外模态(图像、视频、音频)扩展的产物(生成式 AI 的整体分类见 生成式 AI 概览)。本页介绍代表性的多模态理解与生成模型,并讨论相关的边界争议。

多模态模型的核心挑战是让机器”看懂”图像、“理解”文字,并把两者对齐。最关键的突破来自 CLIP:

  • CLIP = 双语词典:想象你有一本”图像-文字双语词典”,每个图像和每段文字都能翻译成同一种”通用语言”(向量空间)。训练时,给模型大量”图片+描述”对,让它学会把匹配的图文拉到一起,不匹配的推开。
  • 为什么重要? CLIP 学到的”通用语言”可以接在任何生成模型上——Stable Diffusion 用 CLIP 的文本编码器来理解你的提示词,GPT-4V 用类似的思路来”看图说话”。几乎所有现代图文系统(Stable Diffusion、DALL·E 2、LLaVA、Sora)都直接或间接依赖 CLIP 式的表征对齐。
  • 对比学习 = 谁和谁最配:不需要给图片打标签(太贵了),只需要告诉模型”这张图和这段文字是配对的”——就像考试不考具体知识点,只考”连线题”。这种自监督(self-supervised)范式避免了人工标注的瓶颈,让模型能利用互联网上海量的图文对数据。

为什么”对齐”这件事这么难?

Section titled “为什么”对齐”这件事这么难?”

图像和文本是两种截然不同的数据格式:图像是像素矩阵(空间连续、稠密),文本是离散的 token 序列(一维、稀疏)。直接把它们拼接在一起,模型无法理解二者之间的对应关系。多模态模型的关键在于学习一个共享嵌入空间(shared embedding space)——一个数学上的高维向量空间,其中语义相近的内容(无论来自图像还是文本)在空间中距离也相近。

CLIP 之前的方法(如 ViLBERT、UNITER)使用”区域标注”——先用目标检测器(如 Faster R-CNN)框出图像中的物体区域,再与文本词对齐。这种方法精度高但极慢,且依赖昂贵的区域标注。CLIP 的革命性在于:丢掉检测器,直接用对比学习做全局图文对齐,既简单又可大规模扩展。

CLIP(Contrastive Language–Image Pre-training)的训练极其优雅:同时编码一批图像和文本,让匹配对的向量相似度最高,不匹配对的相似度最低。

架构细节:CLIP 是一个**双编码器(dual encoder)**结构:

  1. 图像编码器:两种选择——ViT(Vision Transformer)或 ResNet(Modified ResNet-50/101)。ViT 将图像切割为固定大小的 patch(通常 16×16 像素),每个 patch 经过线性投影变成一个向量(相当于”图像中的词”),再添加位置嵌入(positional embedding,告诉模型每个 patch 来自图像的哪个位置),然后送入标准 Transformer 编码器处理。最终取 [CLS] token 的输出或所有 patch 的平均池化作为图像的全局表征向量。
  2. 文本编码器:一个标准 Transformer(CLIP 原版用 12 层,宽度 512/768),将文本分词(tokenize)后编码,同样取 [CLS] token 或 <EOS> 位置的输出作为文本表征。
  3. 投影头:两个编码器输出各自经过一个线性投影层,映射到同一维度的共享空间(CLIP 基础版是 512 维,大版 768 维),再做 L2 归一化——这样相似度计算退化为简单的余弦相似度(cosine similarity,即归一化向量的内积,值域 [-1, 1])。

InfoNCE 损失:对比学习的数学核心

Section titled “InfoNCE 损失:对比学习的数学核心”

CLIP 使用的损失函数叫 InfoNCE(Info Noise-Contrastive Estimation),它本质是一个跨模态的对称分类问题:

对于 batch 中的 NN 个图文对,对每个图像 IiI_i,计算它与所有 NN 个文本的相似度,然后用 softmax 归一化后与正确文本做交叉熵(cross-entropy,衡量预测分布与真实分布的差异)。对文本侧也做同样操作,最终损失是两个方向的平均:

L=(Limage→text+Ltext→image)/2L = (L_{\text{image} \to \text{text}} + L_{\text{text} \to \text{image}}) / 2 Limage→text=−1N∑ilog⁡(exp⁡(sim(Ii,Ti)/τ)∑jexp⁡(sim(Ii,Tj)/τ))L_{\text{image} \to \text{text}} = -\frac{1}{N} \sum_i \log \left( \frac{\exp(\text{sim}(I_i, T_i) / \tau)}{\sum_j \exp(\text{sim}(I_i, T_j) / \tau)} \right)

其中 τ\tau(temperature,温度参数) 是一个可学习的标量,控制分布的”锐度”:τ\tau 越小,模型越关注最相似的样本;τ\tau 越大,分布越平缓。CLIP 将 τ\tau 初始化为 0.07 并在训练中自动优化。

直觉理解:可以把 InfoNCE 想象成一个 NN 选 1 的”连线题”——给定一张图,从 NN 段文字中选出正确的配对描述。batch 越大,干扰选项越多,题目越难,模型学到的表征也就越精细。

训练目标是让对角线(匹配的图文对)相似度高,其余位置低:

从 CLIP 到 SigLIP:损失函数的进化

Section titled “从 CLIP 到 SigLIP:损失函数的进化”

2023 年,Google 提出了 SigLIP(Sigmoid Loss for Language Image Pre-training),将 InfoNCE 中的 softmax 替换为独立的 sigmoid 损失。这一改动看似微小,意义却很大:

  • InfoNPE/softmax 需要在整个 batch 上做归一化——这意味着 batch 中每个样本的梯度都耦合在一起,对硬件并行不友好,且必须用超大 batch 才有效。
  • SigLIP 对每个图文对独立判断”是否匹配”——不需要全局归一化,因此小 batch 也能有效训练,更容易扩展到更大规模的数据和模型。SigLIP 现已成为 Gemini、PaliGemma 等模型的标准视觉编码器。

以下用 numpy 演示 CLIP 的核心机制——对比学习如何拉近匹配对、推远不匹配对:

import numpy as np
# 模拟 3 个图像和 3 个文本的编码向量(假设已由编码器输出)
# 每行是一个 4 维向量(实际 CLIP 用 512 或 768 维)
image_features = np.array([
[0.9, 0.1, 0.0, 0.2], # 图像1:一只猫
[0.1, 0.8, 0.3, 0.0], # 图像2:一只狗
[0.0, 0.2, 0.9, 0.1], # 图像3:一辆车
])
text_features = np.array([
[0.85, 0.15, 0.0, 0.1], # 文本1:"a photo of a cat"
[0.2, 0.75, 0.2, 0.05], # 文本2:"a photo of a dog"
[0.0, 0.1, 0.95, 0.0], # 文本3:"a photo of a car"
])
# 归一化(CLIP 使用余弦相似度)
def normalize(x):
return x / np.linalg.norm(x, axis=1, keepdims=True)
img_n = normalize(image_features)
txt_n = normalize(text_features)
# 计算相似度矩阵(余弦相似度 = 归一化后的点积)
sim = img_n @ txt_n.T
print("图文相似度矩阵:")
print(np.round(sim, 2))
# 输出:
# [[0.99 0.32 0.03] ← 图像1(猫) 和 文本1(猫) 相似度最高
# [0.31 0.97 0.37] ← 图像2(狗) 和 文本2(狗) 相似度最高
# [0.06 0.35 0.99]] ← 图像3(车) 和 文本3(车) 相似度最高
# 对角线分数最高 = 图文正确匹配

CLIP 最惊人的能力是零样本分类(zero-shot classification)——无需任何训练数据即可分类新类别。原理很简单:把每个类别名构造成文本提示(如 “a photo of a {category}”),用文本编码器编码,再与图像向量做相似度比较,取相似度最高的类别。

# 零样本分类:给定一张图片,在候选类别中找出最匹配的
categories = ["a photo of a cat", "a photo of a dog", "a photo of a car"]
# 用文本编码器将类别名编码为向量
class_vectors = np.array([
[0.85, 0.15, 0.0, 0.1], # cat
[0.2, 0.75, 0.2, 0.05], # dog
[0.0, 0.1, 0.95, 0.0], # car
])
class_n = normalize(class_vectors)
# 给定一张新图片的向量(例如看起来像猫的图片)
new_image = normalize(np.array([[0.88, 0.12, 0.05, 0.15]]))
# 计算与每个类别的相似度,取最大值
sims = new_image @ class_n.T
best = np.argmax(sims)
print(f"预测类别:{categories[best]}") # → a photo of a cat

这段代码揭示了 CLIP 为什么如此强大:它不预测固定的类别标签,而是理解文本本身的语义,因此可以处理训练时从未见过的新类别——这是传统分类器做不到的。

  • CLIP(Radford et al., OpenAI, ICML 2021):对比学习图文对齐。本质是判别/表征模型,不是生成模型(常被误归入”生成式 AI”),在生成系统中充当条件/排序组件。用 4 亿图文对在 256 个 V100 GPU 上训练 12 天。
  • ALIGN(Google, 2021):与 CLIP 同期,用 18 亿条噪声更大的图文对训练,证明了”数据量 > 数据质量”的扩展规律。
  • SigLIP(Google, 2023):用 sigmoid 损失替代 softmax,小 batch 高效训练,现被广泛用于新一代 VLM 的视觉编码。

阶段二:多模态理解 / 视觉语言模型 VLM(2022—2025)

Section titled “阶段二:多模态理解 / 视觉语言模型 VLM(2022—2025)”

VLM 的核心目标是让模型理解图像内容并用自然语言推理。按架构演进分为三代:

第一代:桥接式(Bridge-based)VLM

代表:LLaVA(Liu et al., 2023)——将 CLIP 视觉编码器与 LLM(最初用 Vicuna/LLaMA)连接,结构极其简洁:

  1. CLIP ViT 编码图像 → 得到视觉 token 序列
  2. 一个投影层(最初是单层线性映射,LLaVA-1.5 改为两层 MLP)将视觉 token 映射到 LLM 的词嵌入空间
  3. 视觉 token 与文本 token 拼接后一起送入 LLM 做自回归生成

训练分两步:(1)特征对齐——用约 595K 条图文对训练投影层,冻结编码器和 LLM;(2)指令微调(instruction tuning)——用 GPT-4 生成的 150K 条多模态指令数据微调整个模型。这种”轻量桥接 + 强大 LLM”的配方催生了大量开源 VLM(Qwen-VL、InternVL、MiniGPT-4 等)。

第二代:交织式(Interleaved)VLM

代表:Flamingo(DeepMind, 2022)和 IDEFICS。支持图文交织输入(如”图1 和图2 哪个更红?”),关键组件是 Perceiver Resampler(将可变数量的图像特征压缩为固定数量的 token)和 交叉注意力(cross-attention)层(插入 LLM 的自注意力层之间,让文本生成时能”查看”图像信息)。

交叉注意力(cross-attention)是 Transformer 中的一种注意力机制——查询(Query)来自一个序列(如文本),而键和值(Key/Value)来自另一个序列(如图像),从而实现跨模态信息融合。

第三代:原生多模态(Native Multimodal)VLM

代表:GPT-4o(OpenAI, 2024-05)、Gemini 1.5/2.0/2.5(Google)、Qwen2-VL/Qwen2.5-VL(Alibaba)、InternVL2/2.5(Shanghai AI Lab)、Pixtral(Mistral)。

原生多模态的核心区别在于从预训练阶段就让模型同时处理文本、图像和音频,而不是后期”拼接”预训练好的单模态模型。所有模态被统一映射为 token 序列,由同一个 Transformer 处理。这种”any-to-any”(任意模态输入、任意模态输出)的设计在 GPT-4o 上达到了里程碑——它能实现低于 300ms 的语音响应延迟,达到人类对话水平。

阶段三:多模态生成(2021—2025)

Section titled “阶段三:多模态生成(2021—2025)”
  • DALL·E 系列:v1(2021)用自回归 + dVAE(discrete VAE,将图像编码为离散 token 再自回归生成);v2(2022)改用扩散 + unCLIP(用 CLIP 的图像嵌入作为扩散模型的条件)。
  • Stable Diffusion(2022-08):开源文生图,用 CLIP 文本编码器做条件,潜空间扩散(见 扩散模型)。
  • Sora(OpenAI,2024-02 公布,2024-12 正式公开发布):文生视频,使用 DiT(Diffusion Transformer)架构——将视频帧切割为 spatiotemporal patch(时空 patch),用 Transformer(而非 U-Net)做扩散去噪。时空 patch 是 ViT patch 的视频版:不仅做空间上的切割,还在时间维度上分组,使模型能联合建模空间结构和时间动态。
  • Veo / Veo 2(Google DeepMind, 2024—2025):Google 的视频生成模型,Veo 2 支持 4K 分辨率输出,在多项评测中与 Sora 竞争。
  • Veo 3(2025):进一步支持同步音频生成——视频画面和配套音效由同一模型一次产出,标志”any-to-any”生成走向实用。
  • 生成 vs 判别:经典区分(Ng & Jordan 2002)——生成模型建模联合分布 P(X,Y) 或 P(X),判别模型建模 P(Y|X)。注意”生成模型”在统计学中原指分类方法(如朴素贝叶斯),与今天”生成式 AI = 生成内容”的用法有历史错位。CLIP 本身是判别/表征模型,但它赋能了大量生成系统。
  • “大”语言模型的”大”无定义:无参数阈值标准;“基础模型(foundation model)“(Stanford 2021 提出)与 LLM 是包含关系——LLM 是语言模态的基础模型。
  • “原生多模态”的定义模糊:GPT-4o 宣称”原生多模态”,但 OpenAI 未公开架构细节。“原生”到底意味着从第一层就混合模态、还是仅仅预训练时混合数据,业界尚无统一定义。
  • Chameleon 与 any-to-any 路线的争议:Meta 的 Chameleon(2024)采用”早期融合”策略——从模型第一层就将不同模态的 token 混合处理,但论文也承认在模态严重不平衡时性能不如”晚期融合”方案。统一架构是否一定优于专用编码器 + 桥接,目前仍是开放问题。

关于 GAN 分界、扩散 vs 流消融等与扩散模型直接相关的争议,见 扩散模型。更多术语辨析见 术语对照表 与 分类争议。

  • CLIP 的用法远不止图像生成:零样本分类(不需要训练就能分类新类别)、图像检索(用文字搜图)、内容审核等。它是最常用的多模态基础模型之一。CLIP 还广泛用于多模态 RAG——用 CLIP 编码文档中的图表和文字,实现图文混合检索。
  • 对比学习的 batch size 要大:CLIP 训练时用了 32768 的超大 batch——batch 越大,负样本(negative sample,即不匹配的图文对)越多,对比信号越强。小 batch 效果会显著下降。这是因为 InfoNCE 的有效性高度依赖”困难负样本”的数量——batch 越大,越可能包含容易混淆的图文对,模型学到更精细的区分。SigLIP 的 sigmoid 损失缓解了这一限制。
  • VLM 的三条路线对比:
    • 桥接式(如 LLaVA):训练成本低、易于复现,适合资源有限的场景。局限是视觉信息经过压缩后可能丢失细节,且图像编码器的分辨率固定(通常 336×336 或 448×448)。
    • 原生多模态(如 GPT-4o、Gemini):效果最好,能处理任意分辨率、任意数量的图像,支持音频等多模态。但训练成本极高——需要从零开始在海量多模态数据上预训练,只有少数大公司能负担。
    • 动态分辨率(如 Qwen2-VL 的 Naive Dynamic Resolution):根据输入图像的实际大小动态调整 patch 数量,避免过度缩放损失信息——这是 2024—2025 年开源 VLM 的重要改进方向。
  • “文生视频”比”文生图”难得多:视频需要保证时间一致性(temporal consistency)——同一物体在不同帧不能变形、闪烁。Sora 用 DiT 架构 + 时空 patch 化处理,但仍面临长视频生成的物理合理性问题(物体穿模、因果逻辑错误等)。2025 年的视频生成模型在短视频(5—10 秒)方面已达到较高质量,但分钟级连贯叙事仍远未成熟。
  • 多模态幻觉(multimodal hallucination):VLM 可能”看到”图中不存在的东西——这比纯文本幻觉更危险,因为用户更倾向于相信”眼见为实”。缓解方法包括减少视觉 token 压缩比、使用对比解码(contrastive decoding)、以及在指令微调数据中增加”否定样本”(教模型说”图中没有…”)。
  • 视觉问答:GPT-4o、Gemini 2.5 能理解用户上传的图片并用文字回答问题——“这道数学题怎么解""这张图表说明了什么”,广泛应用于教育辅导和无障碍辅助。2025 年的模型已能处理高分辨率长图表(如财报截图、学术论文 PDF),支持多图推理(如”图 A 和图 B 有什么区别?”)。
  • 零样本图像分类与检索:CLIP 无需重新训练即可对新类别做分类,Pinterest、电商搜索用它实现”用文字搜图”的跨模态检索功能。SigLIP 的出现进一步降低了部署门槛——更小的 batch、更快的训练、更好的效果。
  • 文生视频:Sora、Runway Gen-3、Veo 2 根据文字描述生成带时间连贯性的视频片段,应用于影视制作和广告创意产出。2025 年起,视频生成工具开始集成到主流创作工作流(如 Adobe Premiere 的 AI 插件),短视频生成质量接近实用水平。
  • 实时多模态对话:GPT-4o 支持语音 + 视觉的实时交互,用户拿着手机摄像头对准物体提问即可获得语音回答,应用于实时辅导和视觉辅助场景。响应延迟低于 300ms,达到了人类对话的自然节奏——这得益于原生多模态架构省去了 ASR → LLM → TTS 三段式管线的累积延迟。
  • 医疗多模态诊断:Google Med-PaLM M 等模型联合分析医学影像和电子病历文本,辅助医生给出综合诊断建议,提升疑难病例的诊断效率。2025 年,3D 医学影像(CT、MRI 体数据)的多模态分析也成为研究热点。
  • 多模态智能体(Multimodal Agent):2025 年的重要趋势——让 VLM 驱动的智能体操作图形界面(GUI Agent),如 Claude 的 Computer Use、GPT-4o 的浏览器操作能力。模型通过”看”屏幕截图来理解界面,再输出鼠标/键盘操作指令,实现自动化网页交互和软件测试。
  • 文档智能(Document AI):原生多模态模型直接处理包含图表、公式、表格的复杂文档(如学术论文、发票、合同),无需 OCR 前处理。Qwen2.5-VL 和 InternVL2.5 在文档理解基准测试上表现接近甚至超越闭源模型。
类库语言说明
open_clipPythonCLIP 的开源复现与预训练权重社区,提供多种图文编码器组合
HuggingFace TransformersPython提供 CLIP/BLIP/LLaVA/Qwen-VL 等多模态模型的统一加载与推理接口
HuggingFace DiffusersPython用于多模态生成(Stable Diffusion/DALL·E 等文生图模型)
LangChainPython支持图文混合检索与多模态 RAG 应用的开发框架
WhisperPythonOpenAI 开源语音识别模型,常用于多模态系统的音频输入端
LLaVAPython开源视觉语言模型,用 CLIP 编码图像 + LLM 理解文本
timmPythonPyTorch Image Models,提供 ViT、ResNet 等 CLIP 兼容的视觉编码器
LMDeploy / vLLMPython高效推理框架,支持 VLM 的多模态输入与服务化部署
术语英文解释
对比学习Contrastive Learning通过拉近正样本对、推远负样本对来学习表示的训练方法
图文对齐Image-Text Alignment将图像和文本映射到同一向量空间,使匹配的图文距离更近
零样本Zero-shot模型无需针对新任务训练即可直接处理,靠预训练知识泛化
视觉语言模型VLM (Vision-Language Model)能同时理解图像和文本并跨模态交互的多模态大模型
CLIPCLIP (Contrastive Language–Image Pre-training)OpenAI 的图文对比学习模型,将图像和文本对齐到统一向量空间
嵌入空间Embedding Space不同模态数据被编码后映射到的统一数值向量空间
多模态Multimodal同时处理多种数据类型(文本、图像、音频、视频)的能力
ViTVision Transformer将图像切割为 patch 后用 Transformer 处理的视觉编码器架构
PatchPatch图像中被切割的小块(如 16×16 像素),是 ViT 的基本输入单元,类比文本中的 token
位置嵌入Positional Embedding添加到每个 patch/token 上的向量,编码其在图像/序列中的位置信息
交叉注意力Cross-Attention注意力机制的一种,Query 和 Key/Value 分别来自不同序列(如文本和图像),实现跨模态信息融合
InfoNCEInfoNCE Loss对比学习中的标准损失函数,通过 softmax 归一化的交叉熵拉远负样本、拉近正样本
温度参数Temperature (τ)InfoNCE 中控制相似度分布锐度的标量;τ 越小模型越”自信”
时空 PatchSpatiotemporal Patch视频生成中的基本单元,同时在空间和时间维度上切割,让模型联合建模画面结构和时间动态
DiTDiffusion Transformer用 Transformer 替代 U-Net 作为扩散模型骨干网络的架构,Sora 的基础
原生多模态Native Multimodal从预训练阶段就将多种模态混合训练的模型范式,区别于后期拼接单模态模型
自回归Autoregressive逐个 token 预测下一个 token 的生成方式,GPT 系列和大多数 LLM/VLM 文本生成都基于此
归一化Normalization (L2)将向量缩放为单位长度(模为 1),使点积等价于余弦相似度,消除向量长度对相似度计算的影响
负样本Negative Sample对比学习中不匹配的样本对,用于提供”推远”信号
指令微调Instruction Tuning用”指令-回答”格式数据微调模型,使其学会遵循人类指令,是 VLM 第二阶段训练的标准方法
  • CLIP:Radford et al. 2021 “Learning Transferable Visual Models From Natural Language Supervision”——用 4 亿图文对训练,开创了对比学习图文对齐的范式。unCLIP 将其用于生成(DALL·E 2)。
  • SigLIP:Zhai et al. 2023 “Sigmoid Loss for Language Image Pre-Training”——用 sigmoid 损失替代 softmax,小 batch 高效训练,成为新一代 VLM 的标准视觉编码器。
  • 多模态理解:GPT-4V(2023-09)开启商业 VLM 时代;LLaVA(Liu et al. NeurIPS 2023)用 CLIP+LLM 开源复现类似能力;Flamingo(Alayrac et al. NeurIPS 2022)引入交织图文输入和交叉注意力。
  • 原生多模态:GPT-4o(2024-05)以低于 300ms 的语音交互树立标杆;Gemini 1.5 Pro(2024-02)支持百万级 token 上下文和多模态输入;Qwen2-VL(2024)以动态分辨率和开源权重成为最强大的开源 VLM 之一;Chameleon(Meta, 2024)探索”早期融合”的 any-to-any 统一架构。
  • 多模态生成:DALL·E 1(2021)用自回归+dVAE;DALL·E 2(2022)改用扩散+unCLIP;Stable Diffusion(2022-08)开源引爆社区;Sora(2024-02 公布,2024-12 公开发布)用 DiT 做文生视频;Veo 2 / Veo 3(Google, 2025)支持 4K 输出和同步音频生成。
  • foundation model 概念:Stanford HAI 2021 提出”Bommasani et al., On the Opportunities and Risks of Foundation Models”,将”在大规模无标注数据上预训练、可适配多种下游任务的模型”统称为基础模型。