CS336 · 第 17 课

多模态模型:从视觉理解走向 Omni Model

从纯文本语言模型走向原生多模态:如何把图像等非文本信号转化为 Transformer 能处理的 token,并在统一架构中同时实现理解与生成。

授课:Percy Liang 日期:2026-05-27 难度:中等 → 较高

Spring 2026 官方来源:Lecture 17 trace · 课程日程

本页是中文学习导读;讲次主线以 Stanford Lecture 17 trace 为准。页面中逐篇论文的架构细节属于 CourseStack 扩展,并在延伸阅读中分别链接原始论文。

本讲问题:文本模型怎样接收图像和视频,又怎样在统一 token 空间中兼顾理解与生成?关键不只是增加 encoder,而是对齐表示、分辨率、位置和训练目标。

30 秒知识地图

视觉编码器 → 图文对比对齐 → projector 接入 LLM → 动态分辨率与位置编码 → 多图 / 视频 → 离散视觉 token 支持理解与生成。

本课问题与 prerequisite refresher

LLM 接收的是 \(d_{model}\) 维 token embeddings,图片却是 \(H×W×C\) pixels。视觉模型首先把 image patches 变成一串 vectors;projector 再把视觉维度映射到 LLM embedding space。维度对齐只是接口合法,不等于语义已经对齐。

两条多模态路线

understanding:
image → patches → vision encoder → visual features → projector → LLM tokens → text

unified generation:
image → discrete visual tokenizer ↔ visual token IDs
text  → text tokenizer          ↔ text token IDs
                  ↓ joint sequence model

pixel ≠ patch ≠ visual embedding ≠ discrete visual token

分辨率为什么变成 token budget

一张 \(224×224\) 图用 \(16×16\) patches 得 \(14×14=196\) visual tokens;长宽各翻倍到 \(448\),token 数变 \(28×28=784\),是 4×。若做 full attention,相关 score 规模随总 sequence length 平方增长。动态分辨率保留细节,却不是免费“看得更清楚”。

为什么不是把图片直接塞进 tokenizer

文本 BPE 的 merge table定义 UTF-8 bytes 的切分,不能给连续 pixels 自动赋语义。CLIP 相似度高也只表示 learned embedding 上接近,不保证 OCR、计数或空间定位正确;projector 参数很少也不表示视觉信息没有瓶颈。


学习目标


从文本模型到 omni model

到目前为止,课程里处理的都是语言模型:输入一段文本,输出另一段文本。但现实世界是多模态的,图像、视频、音频、代码、动作并存。一个真正通用的模型应当能接受任意模态组合作为输入(理解),也能产生任意模态组合作为输出(生成)。

当前最强大的系统几乎都基于 Transformer,而 Transformer 只说 token 的语言,每个 token 代表某个语义信息单元。因此,多模态建模的核心问题变成:如何把所有非文本数据都转换成 token。


CLIP:用对比学习对齐图像与文本

CLIP(Contrastive Language-Image Pretraining)的核心思路是:互联网上存在海量的(图像,字幕)配对数据,远多于人工标注的分类数据。能不能用这些弱监督数据来学习视觉表征?

具体做法是:在一个大 batch(例如 32768)里,对每张图像和每段文本分别编码,然后让配对的(图像,文本)在 embedding 空间中靠近,让不配对的远离。这是一种 softmax 形式的对比学习。


SigLIP:用 sigmoid 损失解耦 batch size

SigLIP(Sigmoid Loss for Language Image Pre-Training)把 CLIP 的多分类对比目标替换为逐对的二分类目标:给定(文本,图像),判断它们是否对齐。这个改动使得 batch size 与损失函数解耦,带来显著的效率提升。


LLaVA:把视觉编码器接入语言模型

LLaVA(Large Language and Vision Assistant)展示了一个简洁的视觉语言模型(VLM)配方:用一个预训练的 CLIP 编码器提取图像特征,再用一个线性投影把它们映射到语言模型的 embedding 空间,最后由语言模型生成回答。

数据构造上,LLaVA 利用 MS COCO 图像的 caption 和 bounding box,让 GPT-4 生成对应的问答对和对话,再与原始图像配对,得到 158K 个训练样本。


LLaVA OneVision:高分辨率、多图与视频

LLaVA OneVision 是 LLaVA 系列的后续版本,支持多图输入和视频。它的关键洞察是:CLIP 把图像缩放到 336x336 会丢失大量信息(例如 OCR 需要高分辨率),因此引入 AnyRes 策略。

AnyRes 把图像切成 a x b 块,每块用 vision encoder 的基准分辨率处理,再拼接特征,如果 token 过多则用 bilinear 插值压缩。为了让单图、多图和视频产生相近长度的 token 序列,单图用高分辨率、多图用基准分辨率、视频每帧用低分辨率。


Qwen-VL:带位置感知的视觉语言模型

Qwen-VL 在 vision encoder 和语言模型之间加入了一个 adaptor:单层 cross-attention,融入 2D 位置编码,把视觉特征映射为固定长度 256 的序列。模型还引入了特殊 token 如 img、box、ref。


Qwen2-VL:动态分辨率与 MRoPE

Qwen2-VL 把视觉编码器扩大到 675M 参数,并引入动态分辨率机制:图像按 224×224 区块送入 ViT/14 编码,再做 2x2 压缩得到 66 个 token。视频按每秒 2 帧采样,最多 16384 token。位置编码方面,Qwen2-VL 提出 Multimodal Rotary Position Embedding(MRoPE)。


Qwen3-VL:交错 MRoPE、DeepStack 与长视频

Qwen3-VL 是 Qwen 系列的旗舰视觉语言模型,支持稠密和 MoE 架构(最大 235B-A22B),以及 256K 长上下文。它在位置编码、视觉编码器和适配器上都有精细改进。


Chameleon:用离散 token 统一理解与生成

前面所有的 VLM 都走同一条路:用 CLIP 或 SigLIP 这样的连续编码器理解图像,注入 LM,但无法生成图像(需要 diffusion)。Chameleon 换了一个思路:把所有数据和文本与图像都映射为离散 token,用统一的自回归模型建模。为此,Chameleon 用 VQ-VAE 把 512x512 的图像编码为 1024 个离散 token(codebook 大小 8192),并训练了一个新的 BPE tokenizer。


总结:理解与生成的不同需求

前沿模型正在走向原生多模态甚至 omni model。核心工程挑战是如何为非文本模态找到合适的编码方式。一个容易被忽略的洞察是:理解图像和生成图像可能需要不同的表示。理解更关注语义,而生成需要精细的纹理和局部细节。


常见误区


Concept Check · 分辨率与 token 数

16×16 patch 下,224×224 图有多少 patches?长宽都翻倍后多少?

答案:\(14×14=196\);翻倍后 \(28×28=784\),是 4×。

若答 2×,你只追踪了一条空间轴,漏掉 image token grid 有高和宽两维。

你现在应该能够解释

通往第 18 课

多模态输出更开放,也更难只靠 reference answer 检验;下一课转向 formal specification 与 verifier,理解“可检查”如何改变生成与搜索。

如果只能记住 5 件事

  1. 多模态模型首先要把视觉表示映射到语言模型可消费的 token 或 embedding 空间。
  2. CLIP / SigLIP 学习图文对齐;LLaVA 类模型再用 projector 和 instruction tuning 把视觉信号接入生成模型。
  3. 动态分辨率与位置编码决定模型怎样保留局部细节、长图和视频中的空间时间关系。
  4. 视觉理解与视觉生成需要的表示不同:连续 encoder feature 便于理解,离散 token 便于统一生成但会引入量化损失。
  5. 架构名称不是性能保证;数据、分辨率处理、训练目标和评估任务共同决定结果。

知识检查

问题 1:CLIP 训练时,vision encoder 和 text encoder 的目标是什么?

问题 2:SigLIP 相比 CLIP 的核心改进是什么?

问题 3:Chameleon 把图像映射为离散 token 的主要代价是什么?

问题 4:LLaVA 两阶段训练中,Stage 1(alignment)训练哪些参数?


官方材料与论文

Reference · 官方材料与论文