🏠 总目录📚 本教程 10 · 多模态:视觉理解 ← →
📑 本页目录(点开跳转)

10 · 多模态:视觉理解(VLM)

⏱ 20 分钟 | ⭐ 图片进模型之后变成什么,以及什么时候不该用 VLM


🎯 一句话

多模态的共同思想只有一句:万物皆 token —— 图像、音频、视频都被切成 token 之后, 就都能交给同一个 Transformer 处理。


🧭 先选你要做哪个模态

⚠️ 这三页互不依赖,直接跳到你要的那一页就行,不必顺着读。

你要做的东西 去哪一页 它讲什么
让模型看懂图片、截图、表格、文档 本页 VLM 三段式架构、图片怎么变 token、三个常见误判
想懂图文为什么能对齐、要自己训 VLM 10d · CLIP 与对比学习 InfoNCE、温度系数、LLaVA 两阶段训练
文生图、图生图、风格控制 10b · 图像生成 扩散模型:从噪声一步步擦出图像
语音识别、语音合成、语音对话 10c · 语音与视频 ASR / TTS / 端到端语音,以及视频的 token 爆炸问题
视频理解或视频生成 10c · 语音与视频 同上

🖼️ 一、视觉理解(VLM)

架构:三段式

图片 视觉编码器 (ViT) ViT:把图切成 16×16 的小块(patch), 每块当一个「词」,过 Transformer 一堆视觉向量 投影层 (Projector) ⭐ 关键:把视觉向量「翻译」成 语言模型能懂的 token 空间 语言模型 LLM 图像 token 图像 token … [用户] 这张图里有什么? ← 图像和文字被拼在一起!
三段式:图像被 ViT 切成 patch 编码 → 投影层把它「翻译」成语言模型能读的 token → 和文字拼进同一个上下文。

💡 核心洞察:图片被翻译成了「视觉单词」,和文字并排放进同一个上下文。 所以做文本应用时的那一整套(上下文管理、提示词、工具,本站《智能体工程教程》讲的就是这些)全部适用。

📌 这张图有名字:这套「ViT → 投影层 → LLM」的结构就是 LLaVA,也是目前开源多模态模型的默认长相。 另一条路线(BLIP-2 的 Q-Former)改的只有中间那一层——两者的差别在 10d · CLIP 与对比学习 那一页。

⚠️ 实用推论:一张高分辨率图可能消耗 1000+ token。多图对话烧 token 极快——上下文预算意识(智能体第 4 章)在这里更重要。

💰 图片的 token 账(做视觉应用前先算这笔)

算一算

图片 token 数 ≈ (宽/patch) × (高/patch),patch 通常 14~16 像素

512×512 → 约 1,000 token

1024×1024 → 约 4,000 token ⭐ 翻倍分辨率 = 4 倍 token

一段 10 张图的对话 → 轻松几万 token

💡 所以主流做法是【先缩放到模型的最优分辨率】再传

盲目传原图 = 白烧几倍的钱

⚠️ VLM 的三个常见误判(知道了能省很多调试时间)

场景 表现 原因
密集小字 / 表格 读错数字、串行 分辨率被压缩后细节丢失 → 切图分块传 ⭐
需要精确空间关系 "左边第三个"经常说错 ViT 的 patch 化削弱了精确位置感
需要计数 超过 5~6 个就不准 和文本模型数字母是同类问题——给工具,别让它数

🔑 一条通用建议:VLM 擅长"理解这张图在说什么",不擅长"精确读出图里的每个数"。 需要精确的场景(发票、表格、图纸),用 OCR + VLM 组合,别只靠 VLM。

🔗 和站内其他章的关系

左列有的来自日常用 LLM 的经验,有的在站内别的板块讲过——碰上过哪几条就从哪几条接进来,一条没碰过也不影响读这一章。

你可能已经知道的 这一章的对应
上下文预算(智能体第 4 章) 图像吃 token 极凶,预算意识更重要
向量检索 ANN(推荐第 10 章) CLIP 让图文进同一空间,同一套检索设施
LoRA(第 5 章) 图像生成里的风格 LoRA,同源技术
多模态 Embedding 做冷启动(推荐第 13 章) 就是用 CLIP/ViT 提取的特征
计算机使用(智能体第 9 章) 那是 VLM 的一个具体应用
双塔 + in-batch 负采样 + 温度系数(推荐第 8 章) ⭐ CLIP 的训练方式和它是同一个东西,连坑都一样
temperature 怎么改变分布(第 6 章) CLIP 的 τ 是同一个式子,只是用在 loss 上

想接着深挖,去这几处:

去哪 为什么
ML基础 12 视觉编码器的前身:卷积在看什么、为什么后来被 ViT 取代
ML基础 14 ⭐ ViT 的关键一步:把图切成 patch 当 token —— 三段式架构的中间那段
推荐算法 08 ⭐ 想动手复现 CLIP 的对比学习,就去那一节抄代码——它有一段可跑的「双塔 + In-batch 负采样」,把"用户"换成"图片"、"物品"换成"文字"就是 CLIP 的训练循环;温度系数怎么调、LogQ 校正怎么修热门样本,也都在那里
推荐算法 10 CLIP 对齐出来的图文向量,最终要落进向量库才有用
06c · 解码参数怎么调 τ 和你调 API 的 temperature 是同一个东西;那一页讲它落在采样上是什么样、以及为什么它和 top_p 不是两个独立开关
扩散模型(整套 11 页) ⭐ 图像生成那一支的深挖:从加噪去噪一路到 ControlNet 和 FID 的坑。本页的 10b 是索引,那一套是它点名要外找的正文

✅ 检查点

  1. VLM 的三段式架构是什么?投影层的作用?
  2. 图片在语言模型看来是什么?分辨率翻倍,token 变几倍?
  3. VLM 的三个常见误判是什么?需要精确读取时该怎么做?
👀 答案
  1. 视觉编码器(ViT,把图切 patch 当词)→ 投影层 → 语言模型。投影层把视觉向量翻译成 LLM 能理解的 token 空间。
  2. 就是一串“视觉单词”,和文字并排放在同一个上下文里。分辨率翻倍 → token 变 4 倍(512×512 约 1000,1024×1024 约 4000)。所以要先缩放到模型最优分辨率再传,盲目传原图是白烧钱。
  3. ①密集小字/表格读错(分辨率压缩后细节丢失 → 切图分块传)②精确空间关系说不准(patch 化削弱位置感)③计数超过 5~6 个就不准。需要精确时用 OCR + VLM 组合——VLM 擅长“理解图在说什么”,不擅长“精确读出每个数”。

🛑 可以停在这里

到这里你已经能设计一个视觉应用了:知道图片进去变成什么、要花多少 token、以及什么时候不该用 VLM(精确读数交给 OCR)。

⚠️ 什么时候看下一页:你想知道「图片和文字为什么能进同一个向量空间」,或者要自己训 / 微调一个 VLM。那是原理层,做应用不必先看。

⚡ 走神救援

先记住这几件事

下一节 👉 10d-CLIP与对比学习.md

打卡记录保存在你的浏览器里,首页能看到总进度