15 · 多模态 · 8 min

当模型读取图像时

块嵌入、ViT、CLIP。文本Transformer如何通过将图像视为标记网格而变成多模态。

模型并不真正"看见"

当你向 GPT-4o 或 Claude 发送一张照片,它告诉你图片里有什么,这背后并没有一双"眼睛",也没有目标检测器,没有视觉系统。模型不是在"看"图像——它是在读取一串向量

这就是现代多模态的核心把戏:将任意类型的数据(图像、音频、视频)转化为类似文本 Token 的表示。完成这种转换之后,标准的 Transformer 便能接手一切。

关于本章范围的说明。 我们这里讨论的是理解图像的模型(描述图像、回答问题、读图表)。从文本生成图像的模型——Stable Diffusion、DALL-E、Midjourney——架构则完全不同,会在第 21 章里专门讲。

ViT:将图像切成图块

图像处理的参考架构叫做 ViTVision Transformer,视觉变换器),由 Google 于 2020 年提出。

它的思路简单到令人困惑:将图像切成固定大小的小方块(图块,Patches)——默认是 16×16 像素。每个图块被展平成一个向量,再投影到 Transformer 的嵌入空间中。

一张 224×224 像素的图像,被切成 16×16 的图块后,产生 196 个图块——196 个 Token。这些 Token 被送入 Transformer,就像文本 Token 一样。注意力机制处理它们、关联它们、提取相关特征。

每个图块在图像中的位置通过位置编码来表示,与文本 Token 的位置编码机制完全相同。

探索图块化

下面是一张 16×16 的简化图像(ViT-Base 实际工作在 224×224 上)。改变图块大小,观察分辨率和 Token 数量如何变化。

图像被切成方形 patch,每个 patch 通过线性投影变成一个 tokenTransformer 不再分清输入是文本还是图像网格——它以同一种方式处理这个序列。

特殊的 [CLS] Token

在早期的 ViT 中,一个特殊的 [CLS] Token 被添加在序列开头。注意力在所有图块之间传递信息后,[CLS] 向量被用作整张图像的全局表示。

这个向量随后被送入一个分类头,来回答"这是什么?"

在现代多模态模型(GPT-4V、Claude 3、Gemini)中,方式有所不同:图像图块 Token 直接与文本 Token 拼接在同一序列中,交叉注意力负责其余的工作。

CLIP:对齐图像与文本

在将图像和文本混合到同一个 Transformer 之前,图像嵌入和文本嵌入必须存在于同一个向量空间中。

这正是 CLIP(OpenAI,2021)解决的问题。CLIP 并行训练两个编码器——一个处理图像,一个处理文本——目标只有一个:让一张图像与其描述文字的表示尽可能靠近。

在数亿(图像,文本)对上训练之后,CLIP 产生了这样的空间:"一张猫的照片"这段文字与一张真实的猫的照片,会拥有相近的向量。这种特性让大语言模型得以"理解"注入其上下文的图像。

视觉语言模型的架构

当前的多模态大语言模型通常由以下部分组成:

  1. 视觉编码器(通常是预训练的 ViT),将图像转化为图像 Token
  2. 投影层(一个小型 MLP),将图像 Token 映射到大语言模型的嵌入空间。
  3. 大语言模型,接收混合序列(图像 Token + 文本 Token)并生成回复。

这个"投影层"往往是将一个文本大语言模型适配为多模态时唯一需要训练的部分——其余部分保持冻结。

模型实际"看到"的是什么

我们很容易想象模型拥有深刻的"视觉理解"。但实际上,发生的是这些:

每个 16×16 的图块被展平成一个包含 768 个数值的向量(以 ViT-Base 为例)。这个向量是像素的统计平均——一种非常局部的表示。

正是所有这些向量之间的注意力,重建了空间关系、检测了边缘、识别了形状。模型没有"圆形"或"人脸"的内置概念——它从统计规律中发现这些。

这就是为什么视觉大语言模型在一些对人类而言极为简单的任务上表现令人意外(数物体的个数、区分左右),却在高级任务上表现卓越(解读图表、阅读处方)。

那音频呢?

同样的原理——把任意一种模态转换成 Token 序列——也适用于语音。OpenAI 的 Whisper(2022)至今仍是语音转文字的参考模型。它的架构是一个 encoder-decoder Transformer,和翻译模型完全一样。

诀窍在于:把音频信号转换成 Mel 频谱图(Mel spectrogram)——一张二维图像,纵轴是频率,横轴是时间。这张频谱图上的每一个小方块都成为一个输入 Token,就像 ViT 处理图像时的图块一样。然后 Whisper 在输出端产出文本 Token

对于语音生成text-to-speechTTS),原理则反过来:从文本生成音频 Token。ElevenLabs、OpenAI TTS、Suno(用来做音乐)都使用 Transformer,被训练去预测下一个音频 Token。所谓"克隆某个亲人的声音",本质上就是把几分钟的录音词元化,作为条件输入。

最近的飞跃来自原生多模态语音模型:GPT-4o realtime(2024)、Gemini Live(2025)、Claude voice。这些模型不再在内部做"文本 ↔ 音频"的来回转换——它们直接在一个混合了文本 Token 和音频 Token 的空间里推理。这就是为什么延迟可以这么低(约 300 毫秒),韵律也更自然——模型可以一边说话一边"微笑",因为它从未离开过音频域。

和视觉一样,底层架构仍然是一个 Transformer。区别只在于 Token模态不同。

Token:通用货币

多模态的真正启示在于:Token 是一种通用的抽象。

文本 → Token。 图像 → Token(图块)。 音频 → Token(频谱图的切片)。 分子 → Token(原子)。

只要你能将某种模态转化为一串稠密向量,Transformer 就能处理它。这就是为什么那些彻底改变自然语言处理的相同架构,如今正在革新视觉、音频、生物学和物理学。

Transformer 是一台 Token 引擎。研究人员不断发明新的方式,将这个世界词元化。

更新于

多模态:当 LLM 看图像 · Step by Token