多模态:图、音、视频是怎么挤进 token 空间的
AI 系列第 20 篇。这一篇讲怎么让"只懂文字的 LLM"看见、听见、理解世界。
0. 一个根本困境
LLM 工作在 token 空间。每个 token 对应一个向量。Transformer 在这些向量上跑 attention。
但图像怎么变成 token?声音呢?视频呢?
天真的方案:把图像 base64 编码成字符串,让 LLM 读字符串。
不行。base64 字符串太长(一张图几十万字符),且模型完全没法从这种"伪文本"提取视觉信息。
真正的方案是 联合表示:把所有模态都映射到同一个 embedding 空间。这样 attention 才能跨模态工作。
text: "一只猫" → text embedding → [v1, v2, ...]
image: 猫.jpg → image encoder → [u1, u2, ...]
│
目标: v ≈ u
(描述同一件事的文本和图像,向量应该相似)
这一篇我们讲这件事怎么从 2021 走到 2026。
1. 2021 CLIP:让图像和文字"对齐"
2021 年,OpenAI 发了 CLIP(Contrastive Language-Image Pre-training)。这是多模态的奠基性工作。
训练目标:对齐图文对
收集 4 亿(图片, 描述)对,让模型学:
正样本: (猫.jpg, "一只在沙发上的橘猫") → 距离近
负样本: (猫.jpg, "一辆红色跑车") → 距离远
具体训练用 contrastive loss:
对一个 batch 里的 N 个图文对:
有 N 个正样本 (image_i, text_i)
有 N² - N 个负样本 (image_i, text_j) i≠j
loss: 让正样本相似度高,负样本相似度低
训练完,得到两个 encoder:
- Image encoder:图 → 512 维向量
- Text encoder:文 → 512 维向量
这俩向量在同一空间。可以直接比较。
CLIP 的神奇用法
用法 1:零样本图像分类
image = encode_image("猫.jpg")
labels = ["一只猫", "一只狗", "一辆车"]
text_embs = [encode_text(l) for l in labels]
predicted = labels[argmax(cosine_sim(image, text_embs))]
# → "一只猫"
不用训分类器,靠"和文本相似度"就能分类。当时震惊全场。
用法 2:图像检索
query: "一张日落的照片"
→ 找数据库里和这个文本 embedding 最近的图片
Pinterest / Unsplash 的"搜图"基本都是这套。
用法 3:作为下游模型的视觉骨干
CLIP 的 image encoder 可以接到任何下游网络。Stable Diffusion、GPT-4V、LLaVA 全都用 CLIP(或其变种)当视觉前端。
一句你可以拿去吹的话: CLIP 不是"多模态模型",它是让所有后续多模态模型成为可能的基础设施**。**
2. 2022 Flamingo / 2023 GPT-4V:把视觉嫁接到 LLM
CLIP 解决了"图文对齐"。但还差一步——让 LLM 在对话中理解图像。
你: [发一张图] "这张图里有什么?"
LLM: ???
要让 LLM 真的"懂图",得把视觉信号接进 transformer 序列。
Flamingo(2022 DeepMind)
把 CLIP image encoder 接到一个冻结的 LLM:
┌──────────────────────────────────────────────┐
│ prompt: <image1> 一只 <image2> 的 │
│ │
│ [image1] → CLIP encoder → 视觉 token │
│ [image2] → CLIP encoder → 视觉 token │
│ 其他都是文本 token │
│ │
│ → 全部进入 transformer 一起处理 │
└──────────────────────────────────────────────┘
LLM 在原本的文本 token 序列里"插入"视觉 token。这种范式叫 early fusion。
Flamingo 第一次让 LLM 能在对话中混用图文。它启发了所有后续多模态对话模型。
GPT-4V(2023)
OpenAI 在 GPT-4 基础上加入视觉能力。技术细节没公开,但推测是类似 Flamingo 的 early fusion + 视觉 encoder 微调到 LLM 兼容的 embedding 空间。
GPT-4V 能做的事比 Flamingo 强很多:
- 读手写、表格、图表
- 看代码截图找 bug
- 理解 meme、UI 截图
- 看几何题解题
- 从图片推断地理位置(甚至能猜出大致经纬度)
这彻底打开了"看图说话"这个产品形态。
LLaVA / MiniGPT-4 / Qwen-VL(开源跟进)
CLIP + 开源 LLM,几个月就有了一堆开源多模态模型。今天主流的:
- LLaVA-NeXT:开源经典
- Qwen-VL 2.5:阿里,多语言强
- InternVL 3:上海人工智能实验室
- Llama 3.2 11B/90B Vision:Meta 官方
3. 音频:Whisper + 音频 token
Whisper(OpenAI 2022)
只做语音 → 文字的 ASR 模型。68 万小时多语言音频训出来。
audio.wav → Whisper → "今天天气真好"
不属于"多模态 LLM",但是后续多模态系统的标配前端:把音频转文字,再喂给 LLM。
Audio embedding 路线
把音频也变成 token 进 LLM:
audio.wav → audio encoder → audio tokens → 进 transformer
主流方案:
- Whisper encoder:把语音抽成向量
- Wav2vec 2.0 (Meta):自监督音频表示
- AudioLM / VALL-E:把音频离散化成 token
GPT-4o / Gemini:原生音频输入
2024 年 GPT-4o 是第一个原生多模态的大模型——文本、图像、音频在同一个 transformer 里。
GPT-4 (旧):
audio → whisper → text → GPT-4 → text → TTS → audio
延迟: 几秒
GPT-4o (新):
audio → audio tokens → GPT-4o → audio tokens (流式)
延迟: 320ms
优势: 能保留情感、停顿、语调、笑声
这就是"原生多模态"——所有模态共享同一个模型,不通过文字桥接。
4. 视频:把时间维度也塞进去
视频 = 一连串图片 + 音频 + 字幕。挑战是 数据量太大:
30 分钟视频 (1080p, 30fps):
~ 54000 帧
每帧编码 ~ 256 token (CLIP 风格)
总共 ~ 1400 万 token
直接全塞进 context window 显然不行。
主流解法
解法 1:稀疏采样
每秒抽 1 帧(甚至更少)。30 分钟视频变成 1800 帧 ≈ 50 万 token。配合 1M context 可以塞。
解法 2:层次化压缩
每秒先抽 30 帧 → 局部 attention 压成一帧 → 再喂给上层。
解法 3:时空 transformer
直接对 (T, H, W) 三维数据做 attention,而不是把每帧单独处理。
Gemini 1.5:长视频 understanding 的代表
Gemini 1.5 Pro 在论文里展示了"看完一整部 1 小时电影后回答问题"。这是稀疏采样 + ring attention + 高效编码的综合结果。
Sora / Veo / Kling:视频生成
反向问题——让模型生成视频。
prompt: "一只在月球上跳舞的猫,皮克斯风格"
→ 生成 10 秒视频
技术原理是 diffusion in latent space(潜空间扩散):
- 用 encoder 把视频压缩到低维潜空间
- 在潜空间训 diffusion model
- 用 decoder 把生成结果解码回视频
2024 OpenAI 的 Sora、Google 的 Veo、Kuaishou 的 Kling、字节的 Seedance 都是这条路。
下一篇会详细讲世界模型 / 视频生成。
5. 多模态的真实挑战
挑战 1:token 数量不平衡
1 张 1080p 图片: ~ 1000 tokens
10 秒 1080p 视频: ~ 30000 tokens
10 秒音频: ~ 1500 tokens
1 千字文本: ~ 1000 tokens
视频 token 占用是其他模态的几十倍。这是为什么视频理解一直是多模态最难的一环。
挑战 2:跨模态对齐数据稀缺
text-text 数据: 数万亿 token (整个互联网)
text-image 数据: 几十亿对 (CLIP 4 亿,LAION 50 亿)
text-audio 数据: 几亿对 (远少于图像)
text-video 数据: 几千万对 (更少,且质量差)
数据墙首先在视频和音频上撞到。
挑战 3:模态之间的"统治权"
LLM 训练时如果文字数据远多于图像/音频,模型默认会偏向用文字思考。需要专门设计训练课程让各模态平衡。
挑战 4:评估难
"这个回答是否准确?" - 文字回答好评
"这个图像描述是否准确?" - 难
"这个视频生成是否符合 prompt?" - 极难
视频生成 eval 还是开放问题。
6. 原生多模态 vs 拼接式
拼接式 (legacy):
audio → whisper → text → LLM → text → TTS → audio
特点: 模块化、容易实现、但损失信息
原生多模态 (modern):
audio → audio tokens → 大模型 → 多模态 token (text + audio) → 多种输出
特点: 信息保留完整、延迟低、训练复杂
2024-2026 是从拼接式向原生的转折。GPT-4o、Gemini 2、Claude 3.5+ 都在朝原生多模态走。
7. 多模态的几个杀手应用
应用 1:截图问答
"我看不懂这个表格,帮我解释一下。"
[上传截图]
GPT-4V / Claude 3.5 / Qwen-VL 都强。已经成为生产力工具标配。
应用 2:UI 理解 + 自动化
"打开这个 app 帮我订一杯咖啡。"
[截图当前界面]
Anthropic Claude Computer Use(2024.10)就是这套——多模态 + agent。
应用 3:内容生成
"画一张产品 demo 海报"
→ DALL-E / Midjourney / Stable Diffusion 3 / Flux
文字 → 图。文字 → 视频(Sora / Veo / Kling)。
应用 4:语音助手 2.0
GPT-4o Voice Mode:
用户说话 → 实时打断 → 实时回答 → 带情感的语音输出
延迟降到 < 500ms,像和真人对话。
应用 5:视频字幕 / 总结
30 分钟会议录像 → 自动生成字幕 + 章节标题 + 行动项
Loom / Otter.ai / Fathom 都是这类。
8. 给你的小作业
- 解释 CLIP 是怎么训出"图文共享 embedding 空间"的。用 contrastive loss 描述。
- GPT-4o 比 GPT-4 + Whisper + TTS 的拼接版强在哪?至少三点。
- 如果你做一个 AI 漫画创作助手,需要哪些多模态能力?画一个 pipeline。
下一篇钩子:会看图、会听声、还不够。 下一个前沿——让 AI 理解物理世界:物体怎么运动、重力怎么作用、人怎么交互。 Sora 看似在"画视频",背后藏着一个野心:建立 world model(世界模型)。 下一篇我们看 Sora / Genie / V-JEPA 这些"世界模型"项目在赌一件什么大事。