HelloAI
L5 第 1 篇 🐣 难度 🕒 13 分钟

多模态总览:AI 如何同时"看、听、读"

GPT-4o 能识别你画的草图、Sora 能生成视频——这些"多模态"AI 是怎么做到的?这一篇打开全景图。

阿莱
2026/7/7

L0/L1/L2/L3/L4 都在讲纯语言 AI。但现实世界不只有文字——还有图、声、视频。

多模态 AI 是让一个模型同时处理多种类型的信息。GPT-4o、Claude 3.5、Gemini、Sora 都是它的代表。

L5 路径就是讲这些。开篇先建立整个多模态地图

“模态” 是什么

模态(Modality) = 信息的一种形式。常见的:

模态数据形态
文本一串字符
图像像素矩阵(H × W × 3)
视频帧序列(T × H × W × 3)
音频波形(时间序列)
3D点云、网格
传感器LiDAR、IMU

多模态 AI = 同时处理多种模态。比如:

  • 图 + 文 → 图像描述、视觉问答
  • 文 → 图 → DALL·E、Midjourney
  • 文 → 视频 → Sora
  • 音 → 文 → Whisper
  • 文 → 音 → TTS(语音合成)
  • 图 + 音 + 文 → AI 视频剪辑

核心思路:所有模态都变成向量

人类思考时不分”我在用语言模块还是视觉模块”——大脑统一处理。 AI 学了这套路:把所有模态都转成同一空间的向量,然后用同样的 Transformer 处理。

文字 "猫"     →  encoder  →  [0.3, 0.8, -0.2, ...]  ← 768 维
图像 🐱      →  encoder  →  [0.31, 0.79, -0.18, ...] ← 768 维 (类似!)
猫叫声 "喵"   →  encoder  →  [0.29, 0.82, -0.21, ...] ← 768 维 (类似!)

这就是”多模态”的精髓:让不同模态的”语义”在同一向量空间对齐。

2021 · CLIP 的开创性

CLIP(Contrastive Language-Image Pre-training,OpenAI 2021)是多模态的奠基性工作。

核心思想

同时训两个 encoder:

  • 图像 encoder(ViT)把图像变成向量
  • 文本 encoder(Transformer)把文本变成向量

训练目标:让”图-文匹配对”的向量靠近,不匹配的远离

训练数据:4 亿张"图 + 描述"对

batch 里有 1000 对:
(图1, "一只橘猫")
(图2, "海滩日落")
(图3, "代码截图")
...

让 (图1 的向量) ↔ ("一只橘猫" 的向量) 余弦相似度 → 1
让 (图1 的向量) ↔ ("海滩日落" 的向量) 余弦相似度 → 0

这是对比学习——让正样本接近、负样本远离。

训完能干啥

CLIP 训完,你能:

1. 零样本图像分类

不需要再训练,直接用任意类别:

labels = ["a cat", "a dog", "a car", "a house"]
text_vecs = [encode_text(l) for l in labels]
image_vec = encode_image(my_image)
# 看图像向量和哪个文本向量最近
similarities = [cosine(image_vec, t) for t in text_vecs]
predicted = labels[argmax(similarities)]

这是 ImageNet 之后图像分类的范式革命——不再需要”为每个类别标几千张图”。

2. 文搜图 / 图搜文

把所有图像存成向量库——用文本查图(或反过来)。Pinterest 风格的搜索都用这个。

3. 作为下游任务的基础

CLIP encoder 输出的向量可以喂给其它模型——比如 Stable Diffusion 用 CLIP 编码 prompt。

CLIP 的影响:今天几乎所有多模态系统都基于 CLIP 或它的变种。

2022 · DALL·E 2 / Stable Diffusion

文生图突破。

Stable Diffusion 的核心组件

文本 prompt

CLIP Text Encoder ──→ 文本向量

随机噪声图  ──→  U-Net (去噪 50 步) ←─ 用文本向量做条件

                  清晰图像

L5-02 我们详讲 diffusion 的数学。直觉:

  • 先把图像加噪到完全随机
  • 训一个”去噪器”——给它一个有噪声的图和文本提示,预测原图
  • 生成时反过来——从随机噪声出发,逐步去噪到清晰图

配套可视化:Diffusion 去噪 —— 看 50 步从噪声到图像的过程。

2023 · GPT-4V 和”原生多模态”LLM

CLIP 是”两个分开的 encoder”——文本和图像在最后才对齐。

GPT-4V、Claude 3、Gemini 走得更远——原生多模态

图像 → ViT → 一串图像 token
文本 → Tokenizer → 一串文本 token

合并到同一个 Transformer

输出文本

整个模型不分”视觉部分”和”语言部分”——它把图像当成一种”特殊的 token 序列”,和文本 token 混在一起处理。

这让模型能做:

  • 看图答问题
  • 看代码截图修 bug
  • 读手写字
  • 理解表格、图表
  • 看视频回答(GPT-4o 实时视觉)

训练数据:图文对

需要海量”图 + 文字描述”对:

  • 网页上的图片 alt 文本
  • 教科书里的图 + 说明
  • 截图 + 注释
  • 漫画 + 对白

数据质量 >>> 数量。GPT-4V 据估算只用了几千万图文对(vs CLIP 的 4 亿),但数据更高质量。

2024-2026 · 视频生成(Sora 类)

把 Diffusion 扩展到时间维度

  • 单帧图:(H, W, 3)
  • 视频:(T, H, W, 3)

Sora 把视频切成”时空 patch”,用 Transformer 处理:

视频 → 切成 4D patches → 序列 token → Transformer → 去噪

这让模型能:

  • 保持时间连贯(一只猫不会突然变成狗)
  • 理解物理(球抛出去会落下,水会流)
  • 响应文本指令(“一只白猫在窗台上看雨”)

当前 SOTA:Sora、Runway Gen-3、Kling、Veo——质量逐月在提升,6 秒内的复杂场景已经很真实。

2025-2026 · 语音多模态

GPT-4o 引入”原生语音”—— 不是”语音转文字 → LLM → 文字转语音”的串联, 而是 语音 token 直接喂给 LLM

音频波形 → 切成音频 token → LLM → 直接输出音频 token → 波形

效果:

  • 延迟 320ms(之前 5 秒)
  • 保留情感(笑声、惊叹)
  • 打断对话自然(像真人通话)

ChatGPT Voice Mode、Claude 4 Voice 都基于这套架构。

多模态的 5 大挑战

1. 数据对齐

要找到大量”同一概念的不同模态表示”——比如同一只猫的图片 + 描述 + 叫声——非常困难。

2. 计算成本

图像每个 patch 是个 token——一张 1024×1024 图 = 4096 个 token。视频几十倍。Transformer 复杂度 O(n²),多模态成本爆炸。

3. 安全性

文本上对齐做得很好,但图像、视频、语音的对齐困难得多——

  • 看 NSFW 图怎么避免?
  • 生成深度伪造(deepfake)的防范?
  • 语音克隆诈骗?

4. 评估

文本 LLM 的评估已经够难。多模态评估更难——

  • 怎么客观判断”AI 看图答得对不对”?
  • 怎么评估”生成视频的质量”?

5. 长尾问题

文本:你能找到几乎任何主题的数据。 视频:长尾场景(特殊角度、罕见物体)数据稀缺。

L5 路径概览

接下来 L5 系列会专题深入:

主题
L5-02Diffusion 模型数学(含可视化伴读)
L5-03ViT 与图像 Transformer
L5-04CLIP 详解(对比学习)
L5-05DALL·E / Stable Diffusion 实战
L5-06文生视频:Sora 路线
L5-07Whisper / 语音转文字
L5-08TTS:从拼接到神经合成
L5-093D 生成
L5-10AI for Science(蛋白质结构、化学)

这些主题之后会陆续补充。

💡 多模态的未来

2026 年的趋势:“模态融合” 正在变成”统一模型”。

不是”图像模型 + 语言模型”组合,而是一个模型能同时处理所有模态

GPT-4o 已经做到”原生多模态”——下一步可能是”原生七模态”(文本、图、视频、音频、3D、传感器、机器人动作)。

未来 5 年的 AI 大概不会再分模态——只有”统一的智能”

下一篇:《Diffusion 数学:从加噪到 SDE》 —— 真正搞懂 Stable Diffusion / Sora 的核心。

📬

读到这里说明你认真在学 🎯

订阅每周精选 —— 下一篇新文章 / 新可视化第一时间送到邮箱。

💬

讨论区

· 用 GitHub 账号登录评论
⚠️ Giscus 评论未配置 —— 在 src/components/Comments.astro 顶部填入 仓库 ID 和分类 ID(见组件注释里的配置步骤)。