# 会看会听、不止会读的模型

关于 multimodal AI 的速成课——能接收图像、音频和视频，而不仅仅是文本的模型。20 个概念——modality、mixed input、vision encoder、OCR、scene understanding、structured output、text-to-image、visual prompt injection、image token cost 等等——每个都配有它的英文名、一幅图示、一个例子和一张卡片。核心要点：你为文本学到的那套工程依然适用，外加新的能力和新的陷阱。结尾附上所有概念的速查表。

- **Author:** Fedor Chishchin
- **Level:** intermediate
- **Reading time:** ~30 分钟阅读
- **Published:** 2026-06-13
- **Source:** https://fedorthinks.com/zh/learn/multimodal-ai-express

---

## 1. 超越文本

第一件要抓住的事，很简单，就是发生了什么变化：模型不再被限制在读和写文字里。一旦模型能接收图像和声音，一整片全新的问题就被打开了。

### 地图：七组里的 20 个概念

> 一张地铁图：先看到整张线网，再一站一站地坐过去。

先是三个**基础**：什么是 modality、mixed input，以及为什么工程方法保持不变。然后是六组，每章一组：模型如何**看**、它**解锁**了什么、把它**用进产品**、**生成**其他 modality、新的**陷阱**，以及**用好它**。

接下来的每个概念都是同一种形状：它的**英文名**（记住它——这就是术语）、一幅生活里的画面、一幅**图示**，以及一张**卡片**，卡片里有 _它是什么_、_思路_、_例子_、_陷阱_ 和 _关联_ 这样的字段。

_Diagram: 上面是基础；下面是第 2 到 7 章所依循的六个组。_

### Modality / Multimodal——一种数据，和一个能处理多种数据的模型

> 一个会读字、同时还能看、能听、能说的人——每一种感官都是接收世界的一个不同通道，而不是一个不同的大脑。

**modality** 是一种数据类型——文本、图像、音频、视频。能处理不止一种的模型就是 **multimodal**：它可以同时接收一张图像*和*文本，或者根据一段描述生成语音。多年来，模型都是纯文本的——读文字，写文字。变化在于，单个模型现在可以跨 modality 去感知，就像人会用上好几种感官，而不是对文本之外的一切又聋又瞎。

_Diagram: 文本、图像、音频、视频——不同的 modality 汇入同一个 multimodal 模型。_

#### Multimodal Model (modality（模态）)

- **它是什么:** 一个能处理多种数据类型的模型：文本、图像、音频、视频。
- **Modality:** 一种数据类型——一个“通道”，就像人的一种感官。
- **例子:** 描述一张照片、读懂一张图表、把一场会议转成文字、回答关于一张截图的问题。
- **关联:** 让 **mixed input** 成为可能；本课其余的一切都从这一项能力延伸出来。

### Mixed Input——一张图和文字放进同一个问题

> 递给别人一张照片，问“这有什么不对？”——他们看一眼，用话回答。一个问题，两种输入，一个回答。

multimodal 的力量不在于用图像*取代*文本，而在于把它们*放在一起*处理。这就是 **mixed input**：给模型看一张截图并就它提问，给它一张图表再加一条文字请求，发一张照片并附上说明。模型会同时对这一切进行推理。正是这种组合，让 multimodal 真正是新东西：输入不再是单一通道，所以你的 prompt 可以像一场真实的对话那样，把文字和图片混在一起。

_Diagram: 一张截图和一个问题一起送进去——模型对两者一并推理，并用文字作答。_

#### Mixed Input (交错输入（interleaved input）)

- **它是什么:** 图像（或音频）和文本出现在同一个请求里。
- **思路:** 模型对输入的每一部分同时进行推理，而不是轮流处理。
- **例子:** 一张报错截图 +“为什么？”；一张图表 +“趋势是什么？”。
- **关联:** 在产品里，这就是一次 **multimodal request**——普通的 context 组装，只是里面多了一张图。

### Same Engineering——文本技能依然适用

> 学会看并不会让你忘记怎么读——新的感官是在你原本能做的事情之上叠加，而不是取而代之。

你为文本学到的一切——**prompting**、**context**、**structured output**、**grounding**、**evals**——依然适用于 multimodal。图像或音频只是你组装进 context 的输入里的又一部分；模型仍然产出一个由你来约束、校验和度量的输出。所以 multimodal 不是一门要从零重学的独立学科；它是同一套工程，只是多了一种输入和输出。把你的文本技能带过来，再在上面加上新 modality 的特有细节。

_Diagram: 文本和图像走过同样的几门功课：prompting、context、schema、grounding、evals。_

#### Same Engineering (技能可以迁移)

- **思路:** 图像只是多了一种输入；所有文本工程方法都适用于它。
- **例子:** 同样的 JSON schema、同样的校验、同样的 evals——只不过现在送进去的是一张照片。
- **陷阱:** 以为“这完全是另一回事”，从而丢掉久经验证的做法。
- **关联:** 在此之上是 **modality edges**：注入、成本、感知局限。

> **定调的问题:** “这个任务里有没有文字之外的东西——一张图像、一张图表、一段音频——是模型可以直接感知的，而不是我先把一切硬塞成文本？”

> modality 是一种数据；multimodal 模型能处理多种——图像和音频，而不只是文本——并且能在一次输入里把它们混在一起。你所有的文本技能依然适用，只是多了一种感官。

## 2. 模型如何看

大致了解模型如何接收一张图像是有帮助的——因为它能揭开 multimodal 能做什么、不能做什么的神秘感，也解释了为什么它有时会读错就摆在眼前的东西。

### Shared Representation——图像变成同一种 token

> 一位译者，把口语和手语都转成同样的书面笔记——不同的输入，被转换成大脑能处理的同一种形式。

在底层，multimodal 模型会把图像转换成它处理文本时所用的同一类内部表示。**vision encoder** 把像素变成一串 **image tokens**，而文本照常被切分成 text tokens。两个序列都落进一个 **shared representation**——这恰恰是模型能就一张图回答文字问题的原因：两种输入在模型内部都被翻译成了同一种共通语言。你不需要知道细节；知道图像和文本变得可以相互比较就够了。

_Diagram: 像素经 vision encoder，文字经 tokenizer——在模型眼里，这一切是同一个序列。_

#### Shared Representation (vision encoder, image tokens)

- **它是什么:** 图像和文本被翻译成同一种内部形式——一个序列。
- **工作方式:** Vision encoder：像素 → image tokens；然后模型把它们和文字放在一起看。
- **为什么重要:** 正是靠它，用文字提出的问题才能和图里的内容连起来。
- **关联:** image tokens 要花钱——见 **image token cost**。

### OCR vs Scene Understanding——读出文字 ≠ 理解场景

> 你可以读出罐子上的标签，也可以另外去理解这个罐子是干什么用的——这是两个不同的动作，尽管两者都要看同一个物体。

有两种不同的能力常被混为一谈。读出**图像中的文字**——一块招牌、一份文档、一张截图——大致就是过去需要一个单独的 **OCR（光学字符识别）**工具来做的事；multimodal 模型可以直接做到。**scene understanding**——正在发生什么、有哪些物体、一张图表意味着什么——则是另一回事。好的 multimodal 模型两者都能做，但值得把“把这张图里的字提取出来”和“解读这张图展示了什么”区分开，因为它们是不同的要求，可靠程度也不同。

_Diagram: 一张图，两种要求：OCR 提取确切的文字，scene understanding 提取含义。_

#### OCR vs Scene Understanding (读文字 vs 解读画面)

- **OCR:** 提取图像里写着的文字和数字。
- **场景:** 解读它：画面里有什么、发生了什么、图表是什么意思。
- **例子:** “标签上写了什么？”——OCR。“这是什么东西，有什么用？”——场景。
- **陷阱:** 不同的要求，不同的可靠程度——要清楚你提的是哪一种。
- **关联:** 两者都会碰上 **perception limits**。

### Perception Limits——看也有局限

> 即使目光锐利，也会漏掉小号字，误判一张模糊的照片，或读错一张杂乱的图表——看很强大，但并非万无一失。

模型的视觉令人印象深刻，但并不完美——这就是它的 **perception limits**。它可能读错细小或低质量的文字，漏掉繁杂图像里的细节，数错物体个数，或者对某个细微之处自信地描述错。这种感知确实有用，但它不是精密仪器——把模型“看到”的东西当作一种有力的解读，而不是有保证的读数。人很容易这样假设：模型*能*看，就等于看得对；和它的文字回答一样，它的视觉回答也可能自信地出错。

_Diagram: 小字、模糊、杂乱、物体很多——有时还会有一个自信的错误。_

#### Perception Limits (模型视觉的局限)

- **它是什么:** 模型的视觉是一种有力的解读，而不是有保证的读数。
- **哪里会出错:** 细小或质量差的文字、杂乱的图像、数物体、细微的细节。
- **陷阱:** “能看”不等于“看得对”。
- **关联:** **confident misreading** 的根源；用 **validation & grounding** 来应对。

> **关于感知的问题:** “我是在要求模型读出图像里的文字，还是解读一个场景——而这个任务要安全，感知需要有多可靠？”

> 模型把图像转换成与文本相同的内部形式，所以它能对两者一并推理。读出图里的文字不同于理解场景——而这种感知虽然强大，也可能自信地出错。

## 3. 它解锁了什么

multimodal 之所以重要，是因为它让一大批真实问题变得可以解决。看看具体的用途，就明白它为什么不只是个新鲜玩意儿。

### Document Understanding——文档、表单、截图

> 一位助手，瞥一眼纸质表格或屏幕，就把你需要的东西准确地拿出来，而不用你自己一个字一个字地敲进去。

一个极其实用的用途是 **document understanding**：读文档、表单和截图——从发票里提取数据、理解一份 PDF 的版面、回答关于屏幕上内容的问题。在 multimodal 出现之前，这需要脆弱、专门化的工具；现在模型可以直接看着文档并处理它，连结构一起。凡是信息存在于视觉格式而不是干净文本里的地方，multimodal 都能把“得有人读一遍再重新打出来”变成模型能处理的事。

_Diagram: 发票、表单、截图——模型把它们连同版面一起读懂，再交回数据。_

#### Document Understanding (读文档)

- **问题:** 信息被锁在发票、表单和截图里——要有人读一遍再重新打出来。
- **思路:** 模型看着文档，把需要的内容拿出来，连版面一起。
- **例子:** 从一张 PDF 发票里取出总额、日期和供应商。
- **以前:** 每种格式都要一个脆弱、专门化的工具。
- **关联:** 让结果以 **structured output** 的形式给出，并用 **validation** 来检查。

### Visual Analysis——图像和图表

> 给专家看一张图，问它是什么意思——他们读懂这幅视觉内容，讲出趋势，用不着电子表格。

multimodal 模型可以做 **visual analysis**：描述一张照片，读懂并解读一张图表或示意图，指出图像里有什么，比较两张图片。你可以把一张销售图表交给模型，问它趋势；给一张产品照片，问哪里不对；给一张示意图，让它解释。这就把原本只有人才能解读的图像，变成了你的软件可以推理的输入——为任何有意义的信息是视觉的工作流打开了大门。

_Diagram: 图表 → 趋势，产品照片 → 缺陷，示意图 → 通俗的解释。_

#### Visual Analysis (分析图像和图表)

- **它是什么:** 描述、解释并比较所展示的内容。
- **例子:** 销售图表 →“趋势是什么？”；产品照片 →“哪里不对？”；示意图 →“解释一下。”
- **陷阱:** 解读属于 **scene understanding**——不如 OCR 精确。
- **关联:** 为意义藏在图片里的工作流打开了可能。

### Accessibility & Reach——你能服务谁、服务什么

> 一位向看不见的人大声描述眼前景象的向导——把一个视觉的世界变成任何人都能用的文字。

multimodal 还扩大了你的产品能服务的人群和内容——**accessibility**（无障碍）和 **reach**（触达）：为盲人和低视力用户描述图像，让人们用摄像头对准而不是打字，处理那些从来不是文本形式的内容。能读懂图表的同一项能力，也能为一张照片配上旁白，或为一段视频配上字幕。除了任何单个功能，multimodal 还扩大了 AI 产品能接收的输入的*范围*——从“输入你的问题”，到“给我看、讲给我听，或放给我听你的意思”。

_Diagram: 除了“打字”，还有“展示”“讲述”和“播放”——以及为看不见的人描述的图像。_

#### Accessibility & Reach (更宽的输入面)

- **它是什么:** 更宽的输入面：展示、讲述、播放——而不只是打字。
- **例子:** 为低视力用户描述照片；用摄像头对准而不是打字；视频字幕。
- **为什么重要:** 产品能服务以前够不着的人和内容。
- **关联:** 与 **visual analysis** 是同一项能力，只是对准了人。

> **关于解锁的问题:** “我的问题里有没有信息被困在视觉或音频形式里——一份文档、一张图表、一张照片——而 multimodal 能让模型直接使用？”

> multimodal 解锁了读文档和截图、分析图像和图表，以及通过无障碍来扩大触达——把视觉和音频信息变成软件能推理的东西。

## 4. 把 multimodal 用进产品

用 multimodal 来构建，大体上就是你已经懂的那套工程，只是输入里多了图像或音频。那些熟悉的做法原样适用。

### Multimodal Request——把图像和文本一起发过去

> 在同一条消息里，把一张照片和你写的问题一起发出去——收件人两样都看到，一次把整件事答完。

在实践中，你构建一次 **multimodal request** 的方式和文本请求很像：你组装 context，只不过现在里面可以在文本指令之外再带上一张图像（或音频）。“这是一张截图，我想知道关于它的这件事”会作为一个合并的输入送给模型。这不过是输入更丰富的 **context engineering**——图像是你有意放进窗口的又一样东西，和文字并排。你已有的组装思维可以直接套用。

_Diagram: 指令、一张图像和一个问题放在 context window 里——模型把它们当作一个输入收到。_

#### Multimodal Request (带图像的 context engineering)

- **思路:** 照常组装 context，只是在里面放进一张图像或音频。
- **例子:** 指令 + 截图 +“这里哪里不对？”——放在同一个请求里。
- **陷阱:** “以防万一”塞进一张图像，既是 context 里的噪声，也是多花的成本。
- **关联:** **mixed input** 的实现；按 **image token cost** 计费。

### Structured Output——乱进，干净的数据出

> 一个填表的人，看着一张杂乱的收据，把总额、日期和供应商写进整齐有标签的格子里——乱进，干净的数据出。

当你用 multimodal 来提取信息——从文档里取字段、给图像分类、读一张图表——你仍然想要 **structured output**：让模型返回干净的、符合 schema 形状的数据供你的代码使用，而不是散文。一个读收据的 multimodal 模型应该交给你 `{total, date, vendor}`，而不是一段话。把文本模型变成可靠组件的那套 structured-output 做法，同样能让视觉模型变得可靠。modality 是新的；通往你代码的那座桥不是。

_Diagram: 收据照片 → 你的代码能接收的、符合 schema 的数据。而不是你的代码用不了的一段散文。_

#### Structured Output (符合 schema 的数据)

- **问题:** 模型用散文描述图片——你的代码拿它什么也做不了。
- **思路:** 要求按 schema 给数据：字段、类型、形状。
- **例子:** 收据 → `{total, date, vendor}`，而不是一段话。
- **何时使用:** 任何时候你从图像里提取数据。
- **关联:** 下一步：对这些字段做 **validation & grounding**。

### Validation & Grounding——照例要检查

> 别人匆匆一瞥之后向你汇报，你会再核对一遍，尤其是重要的细节——对要紧的地方多看一眼。

因为模型的感知可能出错，你要运用同样的可靠性做法：**校验**提取出的数据，让回答**扎根（ground）**于真正可验证的东西，并在高风险的读取上保留一个人。模型从发票上读错一个数字，就是 **hallucination** 的视觉版本，所以你要把它的视觉输出当作“检查之前不可信”，就像对待它的文本一样。其他每门课的教训在这里依然成立：模型是一个会犯错的组件，新的 modality 并不会改变这一点。

_Diagram: 模型的读取 → schema 与规则检查 → 对照原始来源 → 要紧处交给人 → 使用。_

#### Validation & Grounding (先验证再信任)

- **问题:** 模型可能读错一个数字——还说得很笃定。
- **思路:** 输出在检查之前不可信：schema、规则、来源、人。
- **例子:** 发票总额与各行之和对不上 → 重试，或转给人处理。
- **关联:** 对 **perception limits** 和 **confident misreading** 的回应。

> **关于产品的问题:** “我是不是把图像当作又一种需要工程化处理的输入——装配进 context、以 structured output 返回、经过校验——就像对待文本那样？”

> 用 multimodal 来构建，就是输入更丰富的 context engineering：把图像和文本一起发出去，仍然要求 structured output，并校验、ground 结果——撇开 modality 不谈，模型是一个会犯错的组件。

## 5. 跨 modality 的生成

到目前为止，我们谈的是模型接收图像和音频。另一个方向——模型产出它们——本身就是一个庞大的领域，值得点出来，好让你知道它在哪里。

### Generation——text-to-image、text-to-speech 等

> 一位按你的描述作画的画家，或一位念你的稿子的配音演员——生成是感知的镜像。

正如模型能接收图像和声音，另一些模型会**生成**它们：**text-to-image** 模型根据描述画出一幅图，**text-to-speech (TTS)** 把文字变成说出来的声音，还有用于音乐、视频等的模型。生成是理解的另一面——把另一种 modality 当作输出而不是输入。它本身就是一个庞大的领域，但关键是：“multimodal”涵盖两个方向——模型可以感知其他 modality，模型也可以产出它们。

_Diagram: 上：感知，一张图像或一段声音进来。下：生成，一张图像、语音、音乐或视频出去。_

#### Generation (text-to-image, text-to-speech (TTS))

- **它是什么:** 模型产出另一种 modality：图像、语音、音乐、视频。
- **例子:** 根据描述生成一幅插画；为语音产品生成语音。
- **思路:** 感知的镜像：modality 是输出，而不是输入。
- **关联:** 运行在 **brief → draft → review** 循环上；要**有意地**去用它。

### Brief → Draft → Review——同样的工程姿态

> 你用一份清晰的 brief 指导一位画家，然后在使用之前审阅成果——无论他们产出的是什么，都是同一个循环。

用生成式 modality 来构建，遵循和其他一切相同的姿态，即 **brief → draft → review** 循环：一条清晰的指令（prompt）、一个被你当作草稿来审阅的输出，以及由人来掌控是否使用它。生成的图像或声音是模型自信的尝试，要经过检查和编辑，而不是不加审视就发布——无论输出是文本还是图片，产品设计的做法都适用。所以你不需要一整套全新的手册；同样的“会犯错的组件，由你掌控”的姿态可以直接沿用。

_Diagram: Brief → 生成 → 草稿 → 人工审阅 → 使用。还不对？改 brief，再来一遍。_

#### Brief → Draft → Review (生成循环)

- **思路:** 生成出来的是草稿；使用之前由人审阅。
- **例子:** 生成一幅插画，看一看，改进 prompt，再生成一次。
- **陷阱:** 把图像或声音“原样”发布，不加检查。
- **关联:** 与文本里的 **same engineering** 是同一种姿态。

### Deliberate Generation——知道它的存在，有意识地去用它

> 一件只需一句话的事，你不会去订做一幅画——你会用任务真正需要的那种媒介。

生成式 modality 对合适的工作很强大——插画、为语音产品合成的语音、视频——但它们是一种**有意的选择**，而不是到处撒的默认项。只有当输出确实需要是那种 modality 时，才去用图像或音频生成；文本能搞定的就用文本。知道这整套能力存在、知道它适合放在哪里，眼下就够了——重点在于，multimodal 是一条双向街，跨越各种感官去感知，也去产出。

_Diagram: 输出真的需要是图像或声音吗？是——就生成。否——就留在文本里。_

#### Deliberate Generation (需要时才生成)

- **问题:** 输出真的需要另一种 modality 吗？
- **是:** 插画、为语音产品生成语音、视频。
- **否:** 文本更干净、更便宜、更快——就用文本。
- **关联:** **channel fit** 的一个特例——针对输出而不是输入。

> **关于生成的问题:** “这个任务真的需要另一种 modality 的输出——一张图像、一个声音——还是文本就能搞定，而我却在伸手去用生成？”

> multimodal 是双向的：模型也会生成图像、语音等等。同样的工程姿态适用——一份清晰的 brief、一份被审阅的草稿、由人掌控——而且只有当输出确实需要那种 modality 时才去用它。

## 6. 新的陷阱

multimodal 在熟悉的失败模式之上，又添了新的失败模式。有几个具体的陷阱，会坑到那些把图像当成和文本一样安全、一样便宜的团队。

### Visual Prompt Injection——藏在图片里的攻击

> 一张照片里写着指令，眼睛几乎注意不到，机器却读得清清楚楚——一条当着你的面、不动声色就被夹带过去的消息。

multimodal 模型会读出图像里的*一切*，包括人可能会漏掉的文字。这就让图像成了 **prompt injection** 的一条通道：攻击者可以把指令藏在一张图片里——很淡的文字，嵌在像素里——模型会老老实实地照做。这就是 **visual prompt injection**，是安全课里那个注入问题的视觉版本，而且更恶劣，因为你不容易看出这场攻击。要把模型接收的任何图像都当作可能携带指令的不可信输入，而不只是无辜的像素。

_Diagram: 照片里很淡的文字躲过了人，但模型会读到并照做。防御：把图像当作不可信的。_

#### Visual Prompt Injection (通过图像的注入)

- **它是什么:** 藏在图像里、模型会照做的指令。
- **例子:** 一张产品照片上很淡的“忽略之前的指令”文字。
- **为什么更恶劣:** 攻击很难看见——人根本注意不到。
- **防御:** 每张图像都是不可信的输入，而不是“只是像素”。
- **关联:** 安全课里 **prompt injection** 的视觉形式。

### Image Token Cost——一图胜过千言，也贵过千言

> 寄出一张照片而不是一句话——要传输、处理的多得多，账单也会反映出来。

在计费表看来，一张图像远不止一千个字——这就是 **image token cost**。处理一张图像消耗的 token 远多于一条简短的文本 prompt，所以 multimodal 调用可能贵得多。一个在每次请求里都发高分辨率图像的功能，可能会攒出一张让人吃惊的账单。模型经济学的那套做法在这里格外适用——对图像的大小和发送的频率要有意识地控制，因为“把图放进去就行了”的成本，比放进一行文字要高得多。

_Diagram: 一条简短的 prompt、一张图像、一张高分辨率图像、每次调用都带同一张图像——账单在增长。_

#### Image Token Cost (图像是昂贵的输入)

- **它是什么:** 一张图像消耗的 token 远多于一条简短的文本 prompt。
- **例子:** 每次请求都带一张高分辨率截图——一张让人吃惊的账单。
- **如何降低:** 降低分辨率；只在需要时才发图像。
- **关联:** 源自 **shared representation**：一张图像 = 很多 token。

### Confident Misreading——悄无声息的失败

> 某人瞥了一眼模糊的路牌，自信地告诉你一个错误的数字——又快、又笃定、又是错的。

大家熟悉的 hallucination 问题有了一种视觉形式——**confident misreading**：模型可能自信地读错一个数字，数错物品个数，或者描述图像里根本没有的东西——而且听起来和说对的时候一样笃定。因为输入是视觉的，这类错误可能比文字上的失误更难发现。所以，凡是读错会造成要紧后果的地方——文档上的一个数字、一张医学影像、一次安全检查——你都要核实、保留一个人在回路里，并且永远不要以为“它能看到”就意味着“它读对了”。模型对图像的自信，并不比它对文本的自信更可靠。

_Diagram: 路牌上写着“8”，模型自信地说“3”。防御：核实、人在回路里、不做想当然的假设。_

#### Confident Misreading (visual hallucination（视觉幻觉）)

- **它是什么:** 模型读错或描述错一张图像——而且听起来很笃定。
- **例子:** 发票上读错的数字、数错的个数、一个并不存在的细节。
- **为什么悄无声息:** 视觉上的错误比文字上的失误更难发现。
- **防御:** 核实，高风险的读取交给人，不要说“可它能看到啊”。
- **关联:** **perception limits** 的后果；用 **validation & grounding** 来应对。

> **关于陷阱的问题:** “这张图像会不会夹带隐藏的注入，我有没有把它更高的成本算进去，我是不是想当然地认为模型读对了，而它其实可能是自信地错了？”

> multimodal 的新陷阱：图像可以夹带 prompt injection，它们消耗的 token 远多于文本，而且模型读错它们时，会像在文本里 hallucinate 一样笃定。要把图像当作不可信的、昂贵的、读起来会出错的。

## 7. 用好它

用好 multimodal，大体上就是把你已经知道的一切用到更丰富的输入上，同时尊重新 modality 特有的成本和风险。

### Channel Fit——让通道匹配任务

> 问题是要“看”的东西时你拿出相机，是要“说”的东西时你就打字——让通道匹配任务。

决策很简单——**channel fit**：当有意义的信息确实存在于图像或音频里——要读的文档、要解读的场景、要听懂的语音——就用 multimodal，而不是先把它硬塞成文本，或者在它有帮助时却避而不用。但在文本更干净、更快、更便宜的地方，不要条件反射般地去用它。关键技能是认出一个问题什么时候真的是视觉或听觉的，并让模型直接去感知它，而不是要么无视这项能力，要么滥用它。

_Diagram: 含义存在于哪里？在图像或音频里——multimodal。在文字里——文本。_

#### Channel Fit (任务对应的正确通道)

- **问题:** 含义存在于哪里——图像里、声音里，还是文字里？
- **例子:** 一张扫描的发票——multimodal。用户本来就是打字提的问题——文本。
- **陷阱:** 两种错误：无视这项能力，和滥用它。
- **关联:** 针对输出的同一个思想是 **deliberate generation**。

### Modality Edges——每一项旧功课，加上这种 modality 自己的

> 一位考取新机型资质的飞行员，带着他原有的所有技能，再加上这架新飞机的特有之处——不是从头开始，而是扩展。

multimodal 不是让你忘掉所学的理由。有意地把图像装配进 context，要求 structured output，校验并 ground 结果，留意成本，并把图像当作不可信的。然后再加上 **modality edges**——这种 modality 特有的东西：视觉注入、更高的 token 成本、感知局限。文本课里的一切依然管用；multimodal 只是用一种新的输入和它自己的那几个陷阱来扩展它。在你已知的基础上构建，只学新的边缘。

_Diagram: 地基是文本的各项功课。在其上有三条新的边缘：注入、成本、感知局限。_

#### Modality Edges (旧功课上的新边缘)

- **思路:** 旧的功课 + 这种 modality 的特有之处，而不是一切从零开始。
- **旧的:** context、structured output、校验、grounding、成本。
- **新的:** 视觉注入、image token cost、感知局限。
- **关联:** 把 **same engineering** 和第 6 章的每一个**陷阱**串在一起。

### 这些概念如何连在一起

> 一位经验丰富的工程师多了一种新感官：他原本能做的一切都保留，而在此之上，又来了新的能力——和新的出错方式。

一个 **multimodal model** 能**感知**图像和声音（通过 **shared representation**），也能**产出**它们（**generation**）。感知解锁了各种**用途**——文档、图表、无障碍——但有**局限**，也带来**陷阱**：注入、成本、自信的误读。这两者都由同一套**工程**来约束：multimodal request、structured output、validation & grounding。

_Diagram: 模型感知也产出；各种用途都用同一套工程来构建，而局限和陷阱也由它来防范。_

#### 在你上线一个 multimodal 功能之前

- **信息是否确实是视觉或音频**——还是说我在文本更干净的地方用了 multimodal？
- **我是不是有意地把图像装配进 context**，像对待任何别的输入那样？
- **当从图像里抽取数据时，我是不是在要求 structured output**？
- **这张图像会不会夹带一次隐蔽的注入**——我有没有把它当作不可信的？
- **我有没有把图像高出许多的 token 成本算进去**？
- **我是不是在校验那份感知**，并在高风险的读取上保留一个人？

#### 你用好 multimodal 的迹象

- 你在信息确实是**视觉或音频**时才去用它，而不是出于条件反射。
- 你**把图像装配进 context**，并在抽取数据时要求 **structured output**。
- 你把图像当作**不可信的**，对 **visual injection** 保持警觉。
- 你把**更高的成本**和**感知的局限**算进去。
- 你在读错就会要紧的读取上**校验并保留一个人**。

## 速查表：本课的每个概念

### 基础

- **Modality / Multimodal Model** (一种数据，处理多种数据的模型): modality 是一种数据类型；multimodal 模型能处理多种。
- **Mixed Input** (交错输入): 图像和文本放在一个请求里——模型对两者一并推理。
- **Same Engineering** (技能可以迁移): 所有文本工程方法依然适用于图像。

### 模型如何看

- **Shared Representation** (vision encoder, image tokens): 像素变成 token，与文字处在同一个空间里。
- **OCR vs Scene Understanding** (文字 vs 场景): 读出图里的字，不等于理解这张图。
- **Perception Limits** (模型视觉的局限): 视觉是一种有力的解读，而不是保证。

### 它解锁了什么

- **Document Understanding** (读文档): 发票、表单、截图——不用重新打字。
- **Visual Analysis** (图像和图表): 从图表里读出趋势，从照片里发现缺陷，把示意图讲明白。
- **Accessibility & Reach** (更宽的输入面): 展示、讲述、播放——而不只是打字。

### 在你的产品里

- **Multimodal Request** (带图像的 context engineering): 图像是组装好的 context 里的又一部分。
- **Structured Output** (符合 schema 的数据): 按 schema 给数据，而不是散文。
- **Validation & Grounding** (先验证再信任): 视觉输出在检查之前不可信。

### 生成

- **Generation** (text-to-image, TTS): 模型产出图像、语音、音乐、视频。
- **Brief → Draft → Review** (生成循环): 生成出来的是草稿；由人来决定。
- **Deliberate Generation** (需要时才生成): 只有当输出确实需要那种 modality 时才生成。

### 陷阱

- **Visual Prompt Injection** (通过图像的注入): 藏在图片里的指令。
- **Image Token Cost** (图像很昂贵): 一张图像消耗的 token 远多于文本。
- **Confident Misreading** (visual hallucination): 一次读错，却说得很笃定。

### 用好它

- **Channel Fit** (正确的通道): 含义存在于图像或声音里时，就用 multimodal。
- **Modality Edges** (新的边缘): 旧的功课，加上注入、成本和感知局限。

> multimodal 把你的文本工程扩展到图像和音频：信息是视觉的时候就用它，带上每一项功课——context、structured output、校验、成本——并尊重注入、成本和自信误读这几个新陷阱。

速成课结束 · 7 章 · 20 个概念

接下来是练习：找一个信息卡在视觉形式里的任务——一张截图、一张收据、一张图表——把图像交给一个 multimodal 模型，要求一份你能用上的 structured output。然后测试它的极限：把图像弄模糊、加上小字，看它在哪里读错。最后，把一张图像当作有敌意的，看看隐藏的文字能不能左右它。当模型读懂一份你本来得重新打字的文档时，这种能力就豁然开朗了。但把一个念头举在所有念头之上：multimodal 让一个模型能感知文字之外的东西，但它底下还是那个会犯错的组件——把你知道的一切带过来，并尊重“看”和“读”一样，都可能是自信地错。
