LLM-Based Vision Model

这一阶段的主线是:把视觉信息接入已经很强的语言模型,或者把视觉表示对齐到语言空间。模型通常仍然以语言模型为中心,视觉模块负责提供图像特征,adapter、Q-Former 或 projector 负责把这些特征转换成 LLM 可以使用的表示。

CLIP

我们从 CLIP 开始。CLIP 是一种把视觉和语言连接起来的方法:
论文首先指出,在 NLP 中,模型从大规模零样本数据集中学到的能力,已经超过了从人工标注数据集中能够学到的能力。这里的 zero-shot 更接近 task-agnostic,即训练数据并不针对某个具体下游任务。然而,这一路径在视觉领域并没有同样顺利。
过去几年中,一些工作尝试在 image-to-tag 任务上预训练 AlexNet。也就是说,模型接收一张图像,然后输出表示图像标签的词向量。这些研究发现,这种预训练方式的效果接近在 ImageNet 上预训练。但是它没有成为主流,因为在图像分类等任务上,它很难达到 ImageNet 监督预训练那样的分数。

对比学习目标

CLIP 的关键改进是使用对比学习目标。这个目标最早在深度度量学习中以 multi-class N-pair loss 的形式被提出。过去在图文对数据集上训练时,模型通常直接预测图像标签。这种方式符合直觉,但它的标注成本很高,训练效率也很低。
对比学习目标的思想是学习一个多模态嵌入空间。图像 token 和文本 token 的表示向量会被线性投影到同一个空间中,然后用余弦相似度衡量图像片段和词语是否指向同一个语义对象。基本结构如下:
notion image
在图中, 分别表示第 张图像和第 段文本。因此,当图像和文本的索引相同时,它们是真实配对,我们希望最大化这 个真实图文对的余弦相似度;当索引不同时,它们是负样本对,我们希望最小化这些 个错误配对的相似度。
在 Transformer 中,我们通常在注意力矩阵上使用单向 softmax;而在 CLIP 中,论文使用了一种对称交叉熵损失,可以理解为双向 softmax。首先,把图像嵌入 看作 query,把文本嵌入 看作 key,则有:
这里 是温度系数,。反过来,我们也可以把文本作为 query、图像作为 key,于是有:
最终损失为:
对比学习目标是扩展图文数据规模时非常重要的训练技巧。

零样本迁移

预训练完成后,CLIP 可以零样本迁移到分类任务:
notion image
由于 CLIP 没有 decoder,它不能直接生成答案,而是需要在候选文本中寻找与图像余弦相似度最高的那个。值得注意的是,通过 Prompt Engineering,CLIP 的效果可以进一步提升。
与 ResNet101 相比,CLIP 在多个数据集上取得了更好的结果:
notion image
 

Flamingo

虽然 CLIP 掀起了一波多模态研究,但它的局限也很明显。由于没有 decoder,CLIP 不能生成文本。除此之外,CLIP 实际做的是图像和文本之间的匹配,这在语义上也有些别扭:我们不能期待每一张图都严格对应一段文本,也不能期待每一段文本都严格对应一张图。DeepMind 提出 Flamingo,正是为了处理这类问题:

少样本学习器

我们之前在 GPT-2 中已经介绍过 few-shot。少样本学习的意思是:模型不需要针对具体任务进行微调,我们只需要在上下文中给出少量任务说明和示例,模型就能通过自回归生成学习任务格式和要求。Flamingo 证明了,这种 few-shot 能力同样可以出现在图文模型中。
notion image
也就是说,Flamingo 是一种以视觉信息为条件的自回归文本生成模型。
因此,它的条件概率可以写成:
其中 表示第 个语言 token, 表示图像或视频序列中的第 个视觉 token。

架构

notion image
如上图所示,Flamingo 需要一个视觉编码器和一个语言模型。右侧结构展示了交错输入序列:image → text → image → text → ...。具体结构如下:
notion image
模型使用 cross attention 融合图像和文本信息,再使用 self attention 做更深层的序列处理。
视觉部分有一个很独特的设计:Flamingo 首先用 CLIP 的方式预训练视觉编码器,也就是使用对比学习目标。这个预训练的目的,是让视觉编码器获得较好的表示能力和连续的潜空间。
之后,视觉编码器会被冻结,模型只训练一个 Perceiver Resampler,通常也是一个 Transformer。它的作用是把图像特征转换成固定长度的输出。
语言模型则使用一个预训练好的 Language Model,并且它的参数同样被冻结。

以语言为中心

因此,当 Flamingo 冻结语言模型和视觉编码器时,它实际上说明了:只要有一个桥接层,我们就可以通过 cross attention 让语言信息和视觉信息交互,而不一定要像 CLIP 那样把二者映射到同一个潜空间中。
这也意味着,语言模型在这种结构中更像是“大脑”,而其他模态更像是“传感器”。语言模型通过 cross attention 判断哪些视觉信息重要,并作为推理引擎工作;我们真正需要训练的,是一个把其他模态翻译成语言模型可用信息的转换器。
这就是为什么这类模型可以被称为以语言为中心的模型。它有两个关键限制:
  • 当 LLM 接收其他模态的信息时,这些信息已经被压缩和扭曲,尤其是在 Perceiver Resampler 中。
  • LLM 的词表构成了其他模态表示能力的边界。
这两个问题主要来自 cross attention 的不对称性。它似乎要求我们必须选择一个模态作为 Query,而其他模态只能作为 Key 和 Value。

BLIP-2

BLIP-2 的全称是 Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models。它是 Salesforce 在 2023 年提出的视觉语言模型框架。论文的核心问题是:如果我们已经有很强的视觉编码器和很强的大语言模型,是否还需要从头训练一个巨大的端到端多模态模型?BLIP-2 的回答是:不需要。我们可以冻结两端,只训练一个轻量的桥接模块。
因此 BLIP-2 的基本结构是:
其中, 分别是图像的高、宽和通道数; 是视觉编码器输出的视觉 token 数量,通常对应 patch token 数; 是视觉编码器的隐藏维度; 是 Q-Former 中 learnable query 的数量; 是 Q-Former 的隐藏维度; 是语言模型的词嵌入维度。图像编码器通常是预训练好的 ViT,语言模型可以是 OPT 或 Flan-T5。二者在训练中都被冻结,真正训练的是中间的 Q-Former 以及必要的投影层。

为什么需要 Q-Former

如果直接把视觉编码器输出的所有 patch token 塞给 LLM,会遇到两个问题。第一,视觉 token 数量和分辨率有关,输入长度很大;第二,视觉表示和语言模型的 token embedding 空间并不一致,LLM 不一定能理解这些向量。因此 BLIP-2 引入了 Q-Former,也就是 Querying Transformer。
Q-Former 的输入不是所有视觉 token,而是一组可学习的 query token。设 query 为:
视觉编码器输出为:
在 cross attention 中,query 来自 learnable query,key 和 value 来自视觉 token。若忽略多头拆分,可以写成:
其中:
因此:
注意力矩阵为:
于是 cross attention 输出为:
经过输出投影和若干层 Transformer 后,通常记作:
这样得到的 是固定数量的视觉摘要 token。它不随图像分辨率线性增长,因此可以作为一个信息瓶颈,把图像压缩成 LLM 可以接收的少量视觉前缀。
这和 Flamingo 的 Perceiver Resampler 很相似:二者都用少量 latent/query 从大量视觉 token 中抽取信息。区别在于,BLIP-2 更明确地把这个桥接模块设计成一个两阶段预训练的 Q-Former,并把它作为冻结视觉模型和冻结 LLM 之间的唯一主要可训练模块。

第一阶段:视觉-语言表示学习

第一阶段只连接冻结的图像编码器和 Q-Former,还不接入 LLM。目标是让 Q-Former 学会从图像中抽取与文本最相关的视觉表示。这个阶段包含三个训练目标。
第一个目标是 Image-Text Contrastive Learning,即图文对比学习。它和 CLIP 类似,希望真实图文对在表示空间中更接近,错误图文对更远。不同之处在于,图像侧不是一个单独向量,而是多个 query 输出。因此可以让每个 query 输出都和文本表示计算相似度,再取最相关的那个作为图文相似度。
第二个目标是 Image-Text Matching,即图文匹配。它是一个二分类任务:判断输入图像和文本是否匹配。为了让任务更难,训练中会使用 hard negative mining,也就是选择更容易混淆的负样本。这个目标迫使 query token 不只学习全局相似度,还要学习更细粒度的图文对应关系。
第三个目标是 Image-Grounded Text Generation,即图像条件文本生成。此时文本 token 使用 causal mask,只能看到前面的文本 token 和图像 query。目标是让模型在图像条件下生成文本,从而让 query 输出真正携带可用于语言生成的视觉信息。
因此第一阶段可以理解为:
这一步训练完成后,Q-Former 已经学会从冻结视觉编码器中抽取对语言有用的视觉表示。

第二阶段:视觉到语言的生成学习

第二阶段把 Q-Former 接到冻结的 LLM 上。Q-Former 输出的视觉 token 会通过一个线性投影映射到 LLM 的 embedding 维度,然后作为视觉前缀输入语言模型:
如果文本 prompt 的 token embedding 为:
那么 LLM 实际接收的前缀序列可以写成:
于是生成概率为:
这里 是图像, 是文本 prompt, 是要生成的文本。由于 LLM 冻结,训练的目标不是改变语言模型本身,而是让 Q-Former 输出的视觉前缀能够被 LLM 正确解释。
这个阶段本质上是在训练一个视觉到语言空间的翻译器。视觉编码器负责提供图像表示,LLM 负责语言生成和推理,Q-Former 负责把视觉信息压缩并翻译成 LLM 可用的软提示。

和 Flamingo 的关系

Flamingo 和 BLIP-2 都属于“冻结大模型 + 训练桥接层”的路线。它们都承认一个现实:从头训练端到端多模态大模型成本太高,因此更有效的方法是复用已有的强视觉模型和强语言模型。
但是二者的连接方式不同。Flamingo 在语言模型中插入 cross-attention 层,让语言 token 主动读取视觉信息;BLIP-2 则把视觉信息先压缩成少量 query token,再投影成 LLM 的视觉前缀。也就是说:
BLIP-2 的优势是训练成本更低。论文报告中,BLIP-2 在 zero-shot VQAv2 上超过 Flamingo-80B,同时可训练参数少得多。这说明在强预训练单模态模型已经存在的情况下,桥接模块的设计比端到端堆规模更关键。

局限

BLIP-2 的局限也来自它的优势。因为视觉编码器和 LLM 都被冻结,所以模型能力很大程度上受限于这两个预训练模型本身。Q-Former 只能学习如何提取和翻译视觉信息,但不能从根本上改变视觉编码器的感知能力,也不能改变语言模型的推理边界。
同时,Q-Former 是一个信息瓶颈。它把大量视觉 token 压缩成固定数量的 query token,这提高了效率,但也可能损失细粒度空间信息。因此在 OCR、精确定位、复杂图表理解等任务上,后来的多模态模型往往会引入更高分辨率视觉 token、更强的视觉指令微调,或者让 LLM 更直接地接收视觉 token。
总体来看,BLIP-2 的历史意义在于:它把多模态模型从 Flamingo 式的大规模训练,推进到一种更清晰、更可复用的工程范式:冻结视觉编码器,冻结语言模型,训练一个轻量桥接器完成模态对齐。 后来的 LLaVA、MiniGPT-4、InstructBLIP 和一系列开源 VLM,都可以看作是在这条路线上的不同变体。

LLaVA

LLaVA 的全称是 Large Language and Vision Assistant。它在 2023 年提出,核心目标是把视觉模型接入一个已经具备指令跟随能力的大语言模型,从而得到一个能够看图对话、回答视觉问题、进行多模态推理的通用视觉助手。
和 BLIP-2 相比,LLaVA 的结构更简单。BLIP-2 使用 Q-Former 作为专门的视觉查询模块,而 LLaVA 直接使用一个线性投影层或 MLP,把 CLIP 视觉编码器输出的 patch feature 映射到 LLM 的词嵌入空间。它的重要性在于说明:当视觉编码器和语言模型足够强时,一个很简单的连接器,加上高质量视觉指令数据,就可以得到很强的多模态对话能力。

基本架构

LLaVA 的基本结构是:
其中, 是输入图像, 是 CLIP 视觉编码器输出的视觉 token 序列, 是视觉 token 数量, 是视觉编码器隐藏维度, 是语言模型词嵌入维度。
在最简单的版本中,projector 是一个线性层:
后来的 LLaVA-1.5 通常使用两层 MLP projector,例如:
这里 通常是 GELU。MLP projector 的作用不是做复杂推理,而是把 CLIP 的视觉特征空间对齐到 LLM 的 token embedding 空间。
如果文本 prompt 的嵌入为:
那么 LLM 实际接收的多模态序列可以写成:
也就是说,LLaVA 把图像 patch feature 投影成一串“视觉词向量”,再把这些视觉词向量和文本 token 一起送入语言模型。

和 BLIP-2 的结构差异

BLIP-2 使用 Q-Former 从视觉 token 中抽取固定数量的 query 表示:
其中 通常是固定的 query 数量。这个设计让 BLIP-2 有一个明确的信息瓶颈。
LLaVA 则更直接:
它通常保留视觉编码器输出的 patch token 数量,只做维度投影。这意味着 LLaVA 的连接器更简单,也让 LLM 能接触到更直接的空间视觉 token;代价是输入 token 数更多,并且视觉 token 和语言 token 的深层对齐主要依赖后续指令微调完成。
因此可以把二者理解为:

视觉指令数据

LLaVA 真正关键的贡献不只是架构,而是视觉指令数据的构造。过去很多视觉语言模型训练在 caption、VQA、retrieval 这类固定任务上,模型学到的是特定任务格式,而不是开放式对话能力。
LLaVA 使用 GPT-4 生成多模态 instruction-following 数据。原始图像来自 COCO,每张图像已有 caption 和目标检测框等结构化信息。由于当时 GPT-4 本身并不能直接看图,LLaVA 把图像的 caption、检测框和对象描述转写成文本上下文,再让 GPT-4 生成多轮问答和指令数据。
这些数据主要包括三类:
  • Conversation:围绕图像内容进行自然对话。
  • Detailed Description:要求模型生成更细致的图像描述。
  • Complex Reasoning:要求模型结合图像内容进行推理,而不是只识别物体。
这一步很重要。因为 LLaVA 的目标不是只让模型知道“图里有什么”,而是让模型学会按照人类指令组织视觉信息,并用语言模型的方式回答问题。

第一阶段:特征对齐预训练

第一阶段称为 feature alignment pretraining。这个阶段的目标是先让视觉 projector 学会把 CLIP 特征映射到 LLM 能理解的 embedding 空间。
训练时通常冻结视觉编码器和语言模型,只训练 projector:
输入是一张图像和对应 caption。图像经过 CLIP 得到视觉 token:
然后经过 projector 得到视觉前缀:
语言模型在视觉前缀条件下预测 caption:
损失函数就是标准自回归语言建模损失:
由于 LLM 冻结,这个阶段实际上是在训练一个视觉到语言 embedding 空间的投影器。它让图像特征变成 LLM 可以读取的 soft prompt。

第二阶段:视觉指令微调

第二阶段是 visual instruction tuning。这个阶段使用前面由 GPT-4 生成的视觉指令数据,让模型学习开放式图文对话。
此时输入形式可以写成:
其中 是图像 token 投影后的视觉前缀, 是用户指令, 是助手回答。训练目标仍然是自回归预测回答 token:
在这一阶段,视觉编码器通常仍然冻结,而 projector 和 LLM 会参与微调。这样做的含义是:视觉编码器负责稳定提供视觉表征,LLM 则通过指令数据学会如何使用这些视觉表征完成对话、描述和推理任务。
这和 BLIP-2 有一个重要差异:BLIP-2 更强调通过 Q-Former 把视觉表示接入冻结 LLM;LLaVA 则更强调通过视觉指令微调,让 LLM 本身适应多模态输入。

为什么 LLaVA 有效

LLaVA 的有效性来自三个因素。
第一,CLIP 视觉编码器已经通过大规模图文对比学习获得了很强的开放词表视觉语义。它不只是普通图像分类器,而是已经和语言空间有一定对齐。
第二,Vicuna 这类 LLM 已经具备很强的指令跟随和对话能力。LLaVA 不需要从头学习语言推理,而是把视觉信息接入已有推理引擎。
第三,GPT-4 生成的视觉指令数据改变了训练目标。模型不再只是学习 caption,而是学习“看图后如何按照人类意图回答”。这使得 LLaVA 从传统视觉语言模型转向视觉助手。
因此 LLaVA 可以被概括为:

LLaVA-1.5

LLaVA-1.5 是后续非常重要的改进版本。它的核心发现是:不一定需要复杂结构,只要改好连接器、分辨率和数据配方,简单的 LLaVA 架构就能成为很强的开源多模态基线。
主要改进包括:
  • 使用更高分辨率的 CLIP-ViT-L-336px 视觉编码器。
  • 将原来的线性 projector 改成两层 MLP projector。
  • 加入更多公开 VQA 和学术任务数据。
  • 使用更清晰的 response formatting prompt。
LLaVA-1.5 说明了一个很关键的事实:在 VLM 中,数据配方和指令微调方式往往和架构同样重要。一个简单的 vision encoder + MLP projector + LLM,只要数据组织得好,就可以达到很强的效果。

局限

LLaVA 的局限也很清楚。
首先,CLIP 视觉编码器本身并不是为 OCR、精确定位、细粒度空间关系设计的。它擅长全局语义,但可能丢失文字、小物体和精确坐标信息。因此早期 LLaVA 在复杂文档、图表、数学图像和细粒度视觉定位上能力有限。
其次,LLaVA 把视觉 token 当作前缀输入 LLM,但 LLM 原本是在纯文本上预训练的。视觉 token 虽然被投影到了词嵌入维度,但它们不是真正的离散语言 token。因此模型是否能稳定理解视觉 token,很大程度上依赖指令微调数据的覆盖范围。
第三,LLaVA 的视觉指令数据来自 GPT-4 生成,质量很高,但也可能继承教师模型的偏差。并且早期数据是从 caption 和检测框间接构造出来的,不是真正由教师模型直接看图生成,因此可能缺少某些细节。
总体来看,LLaVA 的历史意义在于:它把多模态模型从“图文预训练模型”推进到了“视觉指令助手”。它证明了一个简单的架构加上高质量指令数据,就能让 LLM 获得可用的视觉对话能力。后来的 MiniGPT-4、InstructBLIP、Qwen-VL、LLaVA-NeXT 等模型,都可以看作是在 LLaVA 所确立的 visual instruction tuning 路线上继续扩展。

InstructBLIP

InstructBLIP 是 Salesforce 在 2023 年提出的视觉语言指令微调模型,全称是 InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning。它可以理解为 BLIP-2 的指令微调版本,但它不只是简单把 BLIP-2 拿来做 instruction tuning,而是提出了一个关键机制:instruction-aware visual feature extraction,即让视觉特征抽取过程本身感知用户指令。
前面的 BLIP-2 中,Q-Former 从图像中抽取固定数量的视觉摘要 token:
这里的 query 是一组 learnable query,本身并不知道用户接下来要问什么。因此无论用户问“图中有几个人”,还是问“左边人的衣服是什么颜色”,Q-Former 抽取视觉特征的方式大体是一样的。
InstructBLIP 的核心改动是:把 instruction 也输入 Q-Former,让 Q-Former 根据问题选择应该从图像中抽取哪些信息。于是结构从:
变成:

基本架构

InstructBLIP 继承 BLIP-2 的三段结构:冻结图像编码器、Q-Former、冻结 LLM。
用户指令记作文本 token 序列:
learnable query 仍然记作:
InstructBLIP 的 Q-Former 同时接收 query 和 instruction。可以把它抽象写成:
然后通过投影层映射到 LLM 的词嵌入维度:
如果 LLM 端的指令文本 embedding 为:
那么 LLM 接收的输入可以写成:
最后自回归生成答案:

Instruction-aware Q-Former

InstructBLIP 的关键不是简单地把 instruction 拼到 LLM 输入中,因为 LLaVA 已经这么做了。它真正重要的点是:instruction 也进入 Q-Former,使视觉抽取阶段变成任务相关的。
在 BLIP-2 中,可以粗略理解为:
也就是一组通用 query 去读图像特征。
在 InstructBLIP 中,则变成:
query token 和 instruction token 会在 Q-Former 内部发生 self-attention 交互,然后 query 再通过 cross-attention 读取图像 token。这样,同一张图像面对不同问题时,Q-Former 可以抽取不同的视觉摘要。
比如同一张图像:
  • 指令是“这张图中有几个人?”时,query 更应该关注人体区域和数量。
  • 指令是“左边人的衣服是什么颜色?”时,query 更应该关注局部位置、人物和颜色。
  • 指令是“这张图可能发生在什么场景?”时,query 更应该关注背景和物体关系。
因此,InstructBLIP 的视觉 token 不是固定图像摘要,而是和任务相关的视觉摘要。这一点比 BLIP-2 更进一步,也比 LLaVA 的简单 projector 更主动。

指令数据构造

InstructBLIP 做了一件很系统的事情:它把大量已有视觉语言数据集统一改写成 instruction tuning 格式。论文收集了 26 个公开数据集,覆盖多种视觉语言任务,并把它们组织成 instruction-response 形式。
这些任务包括图像描述、视觉问答、推理、OCR、知识问答、选择题等。论文进一步把数据划分成 held-in 和 held-out 两组:一部分用于 instruction tuning,另一部分用于 zero-shot 评估。这样可以测试模型是否真的学到了通用视觉语言指令能力,而不是只记住某几个训练任务。
这和 LLaVA 的数据策略不同。LLaVA 更强调用 GPT-4 生成高质量视觉对话数据;InstructBLIP 更强调把已有多任务数据集系统地统一到指令格式中,从而研究视觉语言 instruction tuning 本身。

训练方式

InstructBLIP 初始化自预训练好的 BLIP-2。训练时通常冻结图像编码器和 LLM,只微调 Q-Former:
训练目标仍然是语言模型的自回归损失。给定图像 、指令 和答案 ,模型最大化:
对应损失为:
由于图像编码器和 LLM 冻结,训练压力集中在 Q-Former 上。也就是说,InstructBLIP 不是让 LLM 大幅改变自身,而是让 Q-Former 学会在不同指令下抽取合适的视觉信息,并把它翻译成 LLM 可以使用的前缀表示。

和 BLIP-2、LLaVA 的关系

BLIP-2 的重点是高效连接冻结视觉编码器和冻结 LLM:
LLaVA 的重点是视觉指令微调:
InstructBLIP 则把这两者结合起来:
因此它的定位很清楚:它不是抛弃 BLIP-2,而是在 BLIP-2 的桥接模块中引入 instruction,使桥接层本身具备任务感知能力。
从这个角度看,三者可以按桥接层能力排序:

为什么重要

InstructBLIP 说明,多模态模型的关键不只是“把图像送进 LLM”,还包括“根据当前任务选择图像中哪些信息应该送进 LLM”。这点对视觉任务尤其重要,因为图像中包含的信息远多于文本问题真正需要的信息。
如果桥接层不理解 instruction,它只能提供通用视觉摘要;如果桥接层理解 instruction,它就可以在进入 LLM 之前完成一次任务相关的信息筛选。这等价于把一部分视觉注意力前移到了模态桥接层。
这也解释了为什么 InstructBLIP 在 zero-shot 视觉语言任务上能显著超过 BLIP-2,并且在一些任务上超过更大的 Flamingo。它不是单纯靠更大模型,而是靠更合理的视觉信息抽取方式和更系统的指令微调数据。

局限

InstructBLIP 的局限也很明显。
首先,它仍然依赖冻结的图像编码器和冻结的 LLM。Q-Former 可以选择和压缩视觉信息,但无法从根本上提升视觉编码器对细小文字、复杂图表、精确空间关系的感知能力。
其次,Q-Former 仍然是信息瓶颈。它用固定数量的 query token 表示图像,即使这些 query 是 instruction-aware 的,也可能在高分辨率文档、密集 OCR、多对象定位等任务中丢失细节。
第三,InstructBLIP 的训练目标仍然主要是语言生成损失。模型是否真的进行了可靠视觉推理,还是只学到数据集中的回答模式,需要通过更严格的 held-out 任务和真实交互测试来验证。
总体来看,InstructBLIP 的历史意义在于:它把 BLIP-2 的 Q-Former 从“通用视觉摘要器”推进成“指令感知视觉抽取器”。它补上了 LLaVA 简单 projector 的一个弱点,也说明多模态模型中的桥接层不只是维度投影器,而可以承担任务相关的信息选择。

Qwen-VL

Qwen-VL 是阿里在 2023 年提出的视觉语言模型,全称是 Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond。它的突破点不只是“能看图聊天”,而是把视觉语言模型推进到更实用的视觉能力:OCR、视觉定位、bounding box 输入输出、多图交错对话,以及中文场景下的 grounding。
在 LLaVA 和 InstructBLIP 中,模型主要解决的是图像理解和视觉问答;而 Qwen-VL 更强调视觉 grounding 和 text-reading。也就是说,模型不仅要知道图里有什么,还要知道对象在哪里、图中文字是什么、如何用坐标和语言建立对应关系。

基本架构

Qwen-VL 以 Qwen-7B 作为语言模型主干,以 OpenCLIP 预训练的 ViT-bigG 作为视觉编码器,中间使用一个位置感知的 Vision-Language Adapter 连接视觉特征和语言模型。
整体结构可以写成:
其中, 是输入图像, 是视觉编码器输出的 patch feature, 是视觉 token 数量, 是视觉特征维度。Qwen-VL 的视觉编码器使用 patch size / stride 为 14 的 ViT,因此如果输入分辨率为 ,则视觉 patch 数大约为:
如果直接把 1024 个视觉 token 输入 LLM,会带来很高的计算成本。因此 Qwen-VL 使用一个单层 cross-attention adapter,把视觉 token 压缩成固定长度的视觉序列,通常为 256 个视觉 token:

Position-aware Vision-Language Adapter

Qwen-VL 的 adapter 和 BLIP-2 的 Q-Former 有相似之处:它们都使用一组可学习 query 去读取视觉编码器输出。但 Qwen-VL 的 adapter 更轻量,主要是一个随机初始化的单层 cross-attention 模块。
设 learnable query 为:
视觉编码器输出为:
cross attention 可以写成:
其中:
注意力矩阵为:
这里 是位置相关项,用来保留二维空间位置信息。于是输出为:
再经过投影进入 Qwen-7B 的 embedding 维度:
因此,Qwen-VL 的视觉接入方式可以理解为:用一个位置感知的 cross-attention 压缩器,把高分辨率视觉 token 压缩成固定数量的视觉 token,再送入 LLM。

输入输出接口

Qwen-VL 的另一个关键贡献是输入输出接口设计。它不仅把图像变成视觉 token,还通过特殊 token 把图像、文本、框和引用区域组织到统一的语言序列中。
图像输入通常被包在特殊标记中:
文本和图像 token 会交错输入 Qwen-7B,因此模型可以处理多图交错对话。例如:
对于定位任务,Qwen-VL 使用文本形式表示 bounding box。坐标通常会被归一化到固定范围,例如 ,然后序列化为:
并通过特殊标记表示:
如果需要指代表达中的对象,还可以使用引用标记,例如:
这套接口的意义很大。它让模型不仅能输出自然语言,还能输出结构化坐标;不仅能回答“是什么”,还能回答“在哪里”。这就是 grounding 能力的基础。

Grounding 与 OCR

Qwen-VL 相比 LLaVA / InstructBLIP 的核心突破,是把 grounding 和 text-reading 明确纳入训练目标。
所谓 grounding,就是把语言表达和图像区域对齐。例如:
这要求模型理解语言描述,同时在图像中定位对应区域。
所谓 text-reading,就是读取图像中的文字。早期很多 VLM 依赖 CLIP 视觉编码器,CLIP 更擅长全局语义,不擅长 OCR。Qwen-VL 使用更高图像分辨率和包含文字读取的数据,使模型能够处理文档、路牌、截图、表格等更实用的视觉任务。
因此,Qwen-VL 的任务范围从传统的:
扩展到:

三阶段训练

Qwen-VL 使用三阶段训练流程。
第一阶段是大规模图文预训练。模型使用大量弱标注网页图文对,让视觉模块和语言模型建立基本对齐。这个阶段主要学习:图像内容如何对应文本描述。
第二阶段是多任务预训练。模型引入更高质量的视觉语言数据,包括 caption、VQA、OCR、grounding、region-level 数据等。这个阶段的关键是让模型不只会描述图像,还能读文字、做定位、理解区域和语言表达之间的对应关系。
第三阶段是监督微调,也就是 Qwen-VL-Chat 的对话能力来源。这个阶段使用多轮对话、图文交错、多图输入、定位问答等数据,让模型更像一个可交互的视觉助手。
可以概括为:
这和 LLaVA 的两阶段训练相比更系统。LLaVA 主要强调特征对齐和视觉指令微调;Qwen-VL 则显式加入了 grounding、OCR、多任务和多语言数据。

和 LLaVA / InstructBLIP 的关系

LLaVA 的突破是 visual instruction tuning:
InstructBLIP 的突破是 instruction-aware Q-Former:
Qwen-VL 的突破则是把 VLM 从“看图回答”推进到“视觉 grounding 和文本读取”:
因此,它解决的是另一类更实际的问题。模型不再只是回答“图中有什么”,而是能处理:
  • 图中文字是什么?
  • 某个对象在哪里?
  • 根据语言描述框出对象。
  • 比较多张图。
  • 在中文和英文场景中完成视觉问答和定位。
这使得 Qwen-VL 成为开源 VLM 从聊天 demo 走向实用视觉任务的重要节点。

局限

Qwen-VL 仍然有局限。
首先,它的视觉输入仍然依赖固定分辨率 resizing。虽然 相比许多早期模型的 已经更好,但对于高分辨率文档、复杂表格和细小文字,固定缩放仍然会损失信息。
其次,adapter 把视觉 token 压缩到固定长度 256,这提高了效率,但也可能丢失细粒度空间信息。对于非常密集的 OCR 或复杂定位任务,固定数量视觉 token 仍然是瓶颈。
第三,bounding box 被序列化成文本坐标,这让 LLM 可以统一处理坐标输出,但也带来精度和格式稳定性问题。模型需要同时学会视觉定位和坐标文本生成,训练难度并不低。
总体来看,Qwen-VL 的历史意义在于:它把开源视觉语言模型从“看图聊天”推进到“可定位、可读字、可处理多图和中文场景”的实用阶段。它后续的 Qwen2-VL、Qwen2.5-VL 进一步解决动态分辨率、视频理解和更强视觉 agent 能力,都是沿着 Qwen-VL 打开的方向继续发展。

原生多模态建模

前面介绍的 CLIP、Flamingo、BLIP-2、LLaVA、InstructBLIP 和 Qwen-VL,本质上都可以归入一类范式:把视觉信息接入语言模型。
它们的共同结构大致是:
这个范式非常有效,但它仍然把语言模型作为中心,把视觉当作外部信息源。模型首先需要一个视觉编码器,再通过桥接层把视觉表示翻译成 LLM 可以理解的 soft prompt。
原生多模态建模想解决的是另一个问题:能不能从一开始就把不同模态统一成 token 序列,用同一个 Transformer 同时完成理解和生成?
也就是说,从:
转向:
Chameleon 正是这个方向中非常清晰的代表。

Chameleon

Chameleon 是 Meta FAIR 在 2024 年提出的 mixed-modal early-fusion foundation model。它的核心目标是:用一个统一的 token-based autoregressive Transformer,同时处理文本和图像,并支持任意交错顺序的多模态输入和输出。
和 LLaVA / Qwen-VL 这类模型不同,Chameleon 不使用独立的视觉编码器把图像变成连续视觉特征后再接入 LLM。它先把图像离散化为 image tokens,然后把 image tokens 和 text tokens 放进同一个序列中,用同一个自回归语言模型建模。
因此 Chameleon 的基本范式是:
这意味着图像理解、文本生成、图像生成、图文交错生成都可以被写成同一个 next-token prediction 问题。

从 late fusion 到 early fusion

前面的多模态模型多是 late fusion。比如 LLaVA:
视觉和语言在进入主干模型之前是分开的。视觉编码器有自己的表示空间,LLM 有自己的语言空间,桥接层负责对齐二者。
Chameleon 则是 early fusion。它先把图像也 token 化,然后和文本 token 放在一起:
其中 是文本 token, 是图像 token。整个序列使用同一个 Transformer 做自回归建模:
这样,模型不再需要显式地区分“视觉编码器”和“语言模型”。所有模态都进入同一个 token 空间,同一个 Transformer 负责跨模态建模。

图像离散化

Chameleon 的关键前提是:图像必须被转成离散 token。论文训练了一个新的 image tokenizer,可以把一张 图像编码成 1024 个离散 token,codebook 大小为 8192。
可以写成:
也就是说,每张图像被表示为:
这些 image token 和文本 token 一样,都是离散符号。文本部分则使用 BPE tokenizer。Chameleon 的统一词表大小为 65536,其中包含 8192 个图像 codebook token。
因此整个模型面对的是一个统一 token 序列:
这一步非常关键。它让图像从连续信号变成和语言类似的离散 token 序列,从而可以使用自回归 Transformer 统一建模。

混合模态自回归建模

Chameleon 的训练目标和普通语言模型形式相同:
区别在于, 可以是文本 token,也可以是图像 token。
如果序列是图像问答:
模型学习根据图像 token 和问题 token 生成答案 token。
如果序列是文本生成图像:
模型学习根据文本 prompt 生成图像 token。生成完成后,再用 image de-tokenizer 把 image tokens 解码回像素图像:
如果序列是图文交错文档:
模型也可以自然地继续预测后续文本或图像。
这就是 Chameleon 的根本变化:图像理解和图像生成不再是两个模型、两个目标,而是同一个 mixed-modal token sequence 上的条件生成问题。

为什么是范式突破

Chameleon 的突破不是某个 benchmark 数值,而是建模方式变了。
在 LLaVA / Qwen-VL 中,模型结构是:
视觉模块负责感知,语言模型负责生成。图像生成通常还需要另一个 diffusion model 或 decoder。
而 Chameleon 试图把这些统一成:
因此它更像一个真正的多模态 GPT。文本、图像、代码都只是 token 序列中的不同 token 类型。模型要学习的是不同 token 类型之间的统计关系。
这种方式的优点是统一:
  • 可以处理任意顺序的图文交错输入。
  • 可以输出文本,也可以输出图像。
  • 可以生成长篇混合模态文档。
  • 不需要单独的 image decoder diffusion model 来做图像生成。
但代价也很大:训练稳定性、图像 token 质量、长序列成本都会变得更困难。

训练数据与阶段

Chameleon 从头训练,而不是拿一个纯文本 LLM 后接视觉模块。论文使用了约 10T tokens 级别的混合模态数据,包括 text-only、text-image pair 和 interleaved text-image 数据。
第一阶段使用大规模无监督数据,包括:
  • text-only 数据,用于保持语言能力和代码能力。
  • text-image pairs,用于学习图文对应关系。
  • interleaved text-image 数据,用于学习真正的混合模态文档结构。
第二阶段降低第一阶段数据权重,并加入更高质量的数据和 instruction tuning 数据,使模型获得更好的下游任务能力和对齐能力。
最后还有 supervised fine-tuning / alignment 阶段,数据包括 text、code、visual chat、image generation、interleaved generation 和 safety 等类别。
因此可以概括为:

训练稳定性

Chameleon 的一个重要贡献是说明 early-fusion token-based 多模态模型并不好训。把图像 token 和文本 token 放进同一个 Transformer 后,训练比纯文本 LLM 更容易不稳定。
论文指出,大模型训练到 8B 以上、1T token 以上时,可能出现很晚才爆发的 instability。一个典型信号是输出 norm 缓慢增长,最后导致训练发散。
为了解决这个问题,Chameleon 在 Transformer 架构和优化上做了稳定化修改,包括:
  • 使用 RMSNorm、SwiGLU、RoPE 等 LLaMA 风格组件。
  • 引入 query-key normalization,即 QK-Norm,控制 attention 中 query 和 key 的范数。
  • 调整 LayerNorm 的放置。
  • 使用 dropout 等正则化策略。
其中 QK-Norm 很关键。普通 attention 为:
如果 和 的范数持续增长,attention logits 会变得过大,softmax 变尖,训练容易不稳定。QK-Norm 的思想是对 query 和 key 做归一化,控制 logits 的尺度:
这说明原生多模态 early fusion 不是简单把 token 拼起来就行,还需要专门的稳定化 recipe。

与 Qwen-VL 的区别

Qwen-VL 的结构仍然是:
它擅长 OCR、grounding、box 和中文视觉问答,但它的视觉 token 本质上仍然是连续特征,被送入语言模型作为外部条件。
Chameleon 的结构则是:
它不只是理解图像,而是可以直接生成图像 token。也就是说,Qwen-VL 是更实用的视觉语言助手路线,Chameleon 是更统一的原生多模态建模路线。
可以概括为:

局限

Chameleon 的局限也很明显。
首先,图像 tokenizer 是上限瓶颈。论文也指出,它的 tokenizer 对包含大量文字的图像重建能力较弱,因此 OCR 和密集文本图像任务会受影响。原因是图像被压缩成离散 token 后,细小文字和复杂纹理很容易丢失。
其次,自回归生成图像 token 成本高。一张图像需要 1024 个 image tokens,生成一张图就要连续预测上千步。相比扩散模型并行去噪或 latent diffusion 的成熟 pipeline,自回归图像生成在效率和画质上仍然有压力。
第三,统一建模会带来任务冲突。图像理解需要抽象语义,图像生成需要细粒度像素结构。把二者完全放在同一个 token 空间和同一个 Transformer 中,可能会产生目标冲突。后来的 Janus 就专门指出这一点,并提出理解和生成使用不同视觉编码路径。
总体来看,Chameleon 的历史意义在于:它把多模态模型从“视觉接入语言模型”推进到“图文 token 原生统一建模”。它证明了文本和图像可以在同一个离散 token 空间中,用同一个自回归 Transformer 同时完成理解和生成。这是从 VLM 走向原生多模态模型的重要范式转折。

Janus:解耦视觉编码的统一多模态模型

Janus 是 DeepSeek-AI 在 2024 年提出的 unified multimodal understanding and generation model。它直接回应了 Chameleon 暴露出来的一个关键问题:多模态理解和图像生成虽然都涉及图像,但它们需要的视觉表示并不一样。
Chameleon 的做法是把图像统一离散化成 image tokens,然后用同一个 Transformer 同时做理解和生成。这很统一,但会产生表示冲突:
图像理解需要的是抽象语义表示,比如物体、关系、场景和意图;图像生成需要的是细粒度视觉表示,比如颜色、边缘、纹理和局部结构。把二者强行压进同一个视觉编码空间,会让模型不得不在语义抽象和像素细节之间做折中。
Janus 的核心思想是:视觉编码解耦,主干 Transformer 统一。
也就是说,它不再强迫理解和生成使用同一个视觉 encoder,而是使用两条视觉路径:
但是两条路径最后都进入同一个自回归 Transformer。因此 Janus 仍然是 unified model,只是它承认不同任务需要不同粒度的视觉表示。

为什么需要解耦

考虑图像理解任务,例如 VQA:
模型不需要精确重建每个像素,只需要知道图像中有哪些对象、对象之间有什么关系、问题问的是哪一部分。因此,适合理解的视觉表示应该是高层语义化的:
这里的 可以丢掉很多低层纹理,只保留对语义判断有用的信息。
但图像生成任务不同。生成任务需要输出图像 token:
这要求表示能够承载局部细节和空间结构。适合生成的表示更接近离散图像 tokenizer 的输出:
更规范地写,应当是:
这里 是生成 tokenizer 的 codebook 大小, 是图像离散 token 的数量。
如果用同一个视觉 encoder 同时服务这两种任务,就会出现冲突:理解希望抽象,生成希望细节;理解希望压缩,生成希望保真。
Janus 的判断是:原生多模态模型不一定意味着所有模块都必须共享。更合理的统一方式是:

基本架构

Janus 使用 DeepSeek-LLM 1.3B 作为统一自回归 Transformer 主干,最大序列长度为 4096。视觉部分分成两条路径。
第一条是 multimodal understanding encoder。论文中使用 SigLIP-Large-Patch16-384 作为理解路径的视觉编码器。输入图像会被 resize 到 ,然后得到连续视觉特征:
这些视觉特征再通过 understanding adaptor 映射到 LLM 的 hidden size:
第二条是 visual generation encoder。它使用离散图像 tokenizer,把图像编码成生成用的离散 tokens。论文中的 generation encoder codebook 大小为 16384,并且对图像下采样 16 倍。对于 图像,离散 token 网格大约是:
因此可以写成:
这些生成 token 经过 embedding 后进入同一个 LLM:
所以 Janus 的总体结构可以写成:
两条路径不同,但 Transformer 主干相同。

统一自回归建模

Janus 仍然使用自回归目标。对于任意由文本 token、理解视觉 token、生成图像 token 构成的序列:
训练目标仍然是:
区别在于,不同视觉任务进入序列的方式不同。
对于图像理解任务,输入序列可以理解为:
其中 来自 SigLIP 语义视觉编码器。模型预测的是文本答案。
对于图像生成任务,输入序列可以理解为:
其中 是离散图像 token。模型预测的是图像 token,最后再由 image decoder 还原成像素图像。
所以 Janus 和 Chameleon 一样,仍然把任务统一到 next-token prediction;不同的是,Janus 不强迫理解和生成使用同一种视觉 tokenization。

和 Chameleon 的关系

Chameleon 的结构可以概括为:
它非常统一,但代价是图像 tokenizer 同时承担理解和生成两种职责。
Janus 的结构可以概括为:
它比 Chameleon 少了一点“纯粹统一”,但解决了表示冲突问题。
两者区别可以写成:
这里 是适合理解的连续语义特征, 是适合生成的离散图像 token。
因此,Janus 不是否定 Chameleon 的统一思想,而是修正了它过度统一的部分。统一应该发生在推理主干上,而不一定发生在所有视觉编码器上。

三阶段训练

Janus 使用三阶段训练流程。
第一阶段是 adaptor 和 image head 训练。这个阶段主要让理解 adaptor 和生成相关模块对齐到 LLM hidden space。可以理解为先让不同模态入口能够被 Transformer 接收。
第二阶段是 unified pretraining。模型混合使用多模态理解数据、文本数据和图像生成数据,让统一 Transformer 同时学习文本能力、图像理解能力和图像生成能力。论文中这个阶段训练步数最长。
第三阶段是 supervised fine-tuning。这个阶段进一步对齐下游任务,包括视觉问答、图像生成指令等,使模型更符合实际使用方式。
可以概括为:
这种训练方式也体现了 Janus 的思路:先让不同视觉入口和 LLM 对齐,再用统一自回归目标联合训练。

为什么重要

Janus 的重要性在于,它指出“统一多模态”不应该被误解成“所有模态、所有任务都必须共享同一个编码器”。
真正需要统一的是:
而不是:
图像理解和图像生成所需信息粒度不同,因此视觉编码路径可以解耦;但二者仍然可以在同一个 Transformer 中进行统一序列建模。
这使得 Janus 比 Chameleon 更灵活。例如,将来如果要加入音频、点云、脑电等模态,也不一定要把它们都离散化到同一个 tokenizer 中,而可以使用适合各自模态的 encoder,再接入统一 Transformer。
因此 Janus 的范式可以写成:
这是一种介于 LLaVA 式 adapter 模型和 Chameleon 式完全统一 token 模型之间的折中,但这个折中很有工程价值。

局限

Janus 也有局限。
首先,它不如 Chameleon 那样“端到端纯统一”。由于理解和生成使用不同视觉路径,系统复杂度增加了,模型需要维护不同的视觉入口和不同的数据格式。
其次,图像生成仍然依赖离散图像 tokenizer。离散 tokenizer 的质量仍然限制生成质量,尤其是文字、细节、复杂纹理和高分辨率图像。
第三,虽然 Janus 支持混合模态生成框架,但初始版本并没有充分训练任意图文交错生成。这意味着它的统一能力更多体现在理解和图像生成都接入同一 Transformer,而不是已经完整覆盖所有 mixed-modal document generation 场景。
总体来看,Janus 的历史意义在于:它把 Chameleon 的“一个 token 空间统一一切”推进到更现实的“解耦视觉编码 + 统一 Transformer”。它承认不同视觉任务需要不同粒度的表示,同时保留统一自回归建模的优势。这使它成为原生多模态模型路线中的一个重要修正节点。

Show-o:统一 Transformer 中的自回归与离散扩散

Show-o 是 Show Lab 在 2024 年提出的 unified multimodal understanding and generation model。它和 Chameleon、Janus 讨论的是同一个大问题:能不能用一个模型同时做多模态理解和多模态生成?但 Show-o 的回答很不一样。
Chameleon 的路线是:
也就是说,文本 token 和图像 token 都用 next-token prediction 建模。
Janus 的路线是:
它承认理解和生成需要不同视觉编码路径,但主干仍然是统一自回归建模。
Show-o 的范式变化在于:统一 Transformer 不一定意味着所有模态都必须使用同一种生成目标。 文本适合自回归生成,而图像更适合并行式的去噪或 mask prediction。因此 Show-o 在同一个 Transformer 里同时放入两种建模方式:
所以它的核心可以概括为:

为什么图像不一定适合纯自回归

如果用自回归方式生成图像 token,模型必须一个 token 一个 token 地生成:
这在图像上有两个问题。
第一,图像 token 数量很大。一张图往往有几百到几千个视觉 token,逐 token 采样会很慢。第二,图像不像语言那样天然有严格的一维顺序。文本从左到右生成很自然,但图像的空间结构更像二维场,许多区域可以并行互相约束。因此纯 AR 图像生成会把二维空间问题强行压成一维序列问题。
Show-o 的判断是:文本继续用 AR;图像改用 discrete diffusion / mask prediction。这样既保留 LLM 的语言推理能力,又不强迫图像生成走低效的逐 token 采样路线。

图像 tokenization

Show-o 仍然把图像离散化。论文使用 MAGVIT-v2 风格的 image tokenizer,把 图像编码成 个离散 image tokens,codebook 大小为 8192:
文本 token 来自预训练 LLM 的 tokenizer。Show-o 在文本词表之外新增 8192 个 image token embedding,于是文本 token 和图像 token 都可以进入同一个 Transformer。
这一点和 Chameleon 类似:二者都把图像变成离散 token。区别在于,Chameleon 对图像 token 也做自回归;Show-o 对图像 token 做 mask-token prediction。

Omni-Attention

Show-o 的另一个关键设计是 omni-attention。普通 decoder-only LLM 使用 causal attention:
也就是说,每个 token 只能看见前面的 token。
但 Show-o 希望文本和图像用不同注意力模式。对于文本 token,继续使用 causal attention,维持语言模型的自回归推理方式;对于图像 token,使用 full attention,让图像 token 之间可以双向交互:
在图像问答中,答案文本可以 attend 到前面的图像 token 和问题 token;在文本生成图像中,图像 token 可以 attend 到文本 prompt,并且图像 token 之间可以互相 attend。这使同一个 Transformer 可以根据任务格式切换注意力行为。

两个训练目标:NTP 和 MTP

Show-o 同时使用两个目标。
第一个是 next-token prediction,用于文本建模:
它负责图像理解、VQA、captioning、普通语言生成等任务。
第二个是 mask-token prediction,用于图像生成。训练时随机 mask 一部分 image tokens:
模型根据文本 prompt、未被 mask 的 image tokens 和上下文,预测被 mask 的原始 token:
这个目标可以看作 discrete diffusion 的一种实现。它不是从左到右生成图像,而是多轮预测被 mask 的图像 token,逐步把噪声或 mask 序列还原成完整图像。
总损失可以写成:
其中 控制图像生成目标的权重。

为什么是范式突破

Show-o 的突破不是“又接了一个图像生成器”,而是把两种生成范式放进同一个 Transformer:
过去的统一模型常常有两种极端。
一种是 LLaVA / Qwen-VL 式模型:理解很强,但图像生成要靠外部 diffusion model。另一种是 Chameleon 式模型:结构很统一,但图像也必须用 AR 生成,采样效率和图像质量都有压力。
Show-o 给出的中间路线是:主干统一,但生成机制不必完全统一。可以写成:
这很重要。它说明原生多模态模型的“统一”,可以发生在参数、上下文和注意力层面,而不是强迫所有模态共享同一个概率分解方式。

局限

Show-o 也有明显局限。
首先,它不是纯粹的 next-token 模型,因此在理论简洁性上不如 Chameleon 或 Emu3。模型同时维护 NTP 和 MTP 两套目标,训练和推理逻辑更复杂。
其次,它仍然依赖离散 image tokenizer。图像 tokenizer 的重建质量、codebook 表达能力和空间压缩率都会限制生成质量。
第三,Show-o 的统一更多体现在图像和文本上。虽然论文展示了 mixed-modality generation 的潜力,但距离真正任意模态、任意交错长文档生成,还有明显距离。
总体来看,Show-o 的历史意义在于:它提出了“同一个 Transformer 可以容纳不同生成目标”的思路。它把问题从“所有模态是否都能 next-token prediction”推进到“统一模型是否可以为不同模态选择更合适的生成机制”。

Emu3:把多模态重新推回 Next-Token Prediction

Emu3 是 BAAI 在 2024 年提出的原生多模态模型,标题非常直接:Next-Token Prediction is All You Need。它和 Show-o 几乎形成了相反的回答。
Show-o 认为图像不一定适合纯 AR,所以在统一 Transformer 里混合 NTP 和 discrete diffusion。Emu3 则反过来说:如果 tokenizer 足够好,数据足够大,训练 recipe 足够稳,那么图像、文本、视频都可以统一成离散 token,并且全部用 next-token prediction 建模。
它的核心路线是:
也就是:
其中 可以是文本 token、图像 token,也可以是视频 token。

统一视觉 tokenizer

Emu3 的关键前提是一个强视觉 tokenizer。它使用 VQ 风格的视觉 tokenizer,把图像和视频压缩成离散 token 序列。公开实现中的 vision tokenizer codebook size 为 32768。
对于图像,可以抽象写成:
对于视频,可以写成:
这样,图像和视频不再是连续像素,也不再是外部 vision encoder 输出的连续特征,而是和文本一样的离散 token 序列。
这一步使 Emu3 能够把多模态任务统一成普通语言模型熟悉的问题:预测下一个 token。

单一自回归 Transformer

Emu3 使用 decoder-only Transformer,从头在混合多模态序列上训练。序列可以是纯文本:
也可以是图文理解:
也可以是文本生成图像:
还可以是视频生成:
训练目标始终不变:
这就是 Emu3 的激进之处。它不需要 CLIP + LLM 的组合,不需要额外 diffusion model,也不需要 Show-o 那种为图像设计的 MTP 目标。所有东西都回到一个统一形式:next-token prediction。

和 Chameleon 的关系

Emu3 和 Chameleon 很像,因为二者都主张:
但 Emu3 比 Chameleon 更进一步。
Chameleon 主要讨论文本和图像的 mixed-modal autoregressive modeling。Emu3 明确把视频也纳入同一个 token 体系,并且强调只用 next-token prediction 就能同时做 perception 和 generation。
可以概括为:
所以 Emu3 更像是 Chameleon 路线的强化版:它没有接受 Show-o 对图像生成目标的妥协,而是继续押注 tokenization 和 scaling。

和 Show-o 的分歧

Show-o 和 Emu3 的分歧可以写得很清楚:
Show-o 更工程实用:它承认图像生成和文本生成不同,因此给图像使用更适合的离散扩散式目标。
Emu3 更理论统一:它认为只要离散化做得足够好,图像和视频也可以像语言一样被自回归建模。
这两条路线代表了 2024 年原生多模态模型里的一个核心争论:
Show-o 的答案是 modality-specific objectives;Emu3 的答案是 one objective。

为什么重要

Emu3 的重要性在于,它把多模态模型重新拉回了 GPT 式路线。
过去很多多模态系统是组合式的:视觉理解靠 CLIP 或 ViT,语言推理靠 LLM,图像生成靠 diffusion model,视频生成再靠另一个 video diffusion model。系统很强,但不是一个原生统一模型。
Emu3 试图证明:
可能就是通往通用多模态智能的一条可扩展路线。
这和语言模型的发展经验一致。GPT 的成功不是因为为每个 NLP 任务设计不同目标,而是把大量任务统一成 next-token prediction。Emu3 想把这个经验迁移到图像和视频。

局限

Emu3 的局限也很直接。
首先,所有压力都压在 tokenizer 上。如果视觉 tokenizer 不能保留细粒度文字、几何关系、空间布局和时间一致性,那么后面的 Transformer 再大也只能学习有损 token 上的分布。
其次,自回归生成图像和视频的推理成本仍然很高。视频 token 数量远大于文本 token,长视频生成尤其容易受到上下文长度和采样速度限制。
第三,next-token prediction 是否真的是视觉生成的最优目标还没有定论。扩散模型在图像质量、编辑可控性和高分辨率生成上仍然非常强。Emu3 证明 AR 路线有潜力,但并没有终结 AR 与 diffusion 的竞争。
总体来看,Emu3 的历史意义在于:它把 Chameleon 的原生 token-based 多模态路线扩展到图像、文本和视频,并用更强的视觉 tokenizer 与训练规模重新押注 next-token prediction。它和 Show-o 共同构成了原生多模态模型的两种关键范式:一个是“统一主干 + 多目标”,另一个是“统一 token + 统一目标”。

BLIP3-o:生成语义视觉特征的统一多模态模型

BLIP3-o 是 Salesforce Research 等在 2025 年提出的一组 fully open unified multimodal models。它的目标也是统一图像理解和图像生成,但它选择的切入点和 Chameleon、Show-o、Emu3 都不同。
前面的几条路线主要围绕 image tokens 展开:
而 BLIP3-o 的核心变化是:图像生成模块不直接生成 VAE latent 或离散 image tokens,而是生成 CLIP image features。
也就是说,它把图像生成目标从低层视觉空间移到语义视觉空间:
这点很关键。CLIP feature 本来就是视觉语言模型中常用的语义表示,包含了对象、场景、属性和文本对齐信息。BLIP3-o 认为,如果统一模型既要理解图像又要生成图像,那么生成端也应该尽量靠近理解端使用的语义空间,而不是只在像素或 VAE latent 空间里工作。

基本架构

BLIP3-o 可以理解为在强 VLM 上接入一个图像生成分支。论文中构建了两个版本:一个 8B 模型和一个 fully open 4B 模型。整体思路是使用 Qwen2.5-VL 作为图像理解基础,然后训练 diffusion transformer 来生成视觉特征。
可以抽象写成:
其中:
  • 是输入图像。
  • 是文本生成指令。
  • 是模型生成的 CLIP image features。
  • 是最终还原出来的图像。
和传统 diffusion 模型相比,BLIP3-o 的生成目标不是:
其中 是 VAE latent。
它更接近:
其中 来自多模态语言模型的隐藏状态, 是 diffusion transformer, 表示噪声或中间扩散状态。
这意味着,生成模块学习的是“如何从语言模型的语义状态生成 CLIP 视觉语义特征”,而不是直接学习像素级细节。

为什么生成 CLIP features

BLIP3-o 的关键判断是:统一理解与生成时,最难的不是单纯生成漂亮图像,而是让生成过程和理解模型共享语义。
如果图像生成目标是 VAE latent,模型学到的主要是低层视觉重建空间:
这个空间对图像质量很好,但不一定天然对齐 VLM 的理解空间。
如果图像生成目标是 CLIP feature,则生成目标更接近:
CLIP feature 已经被图文对比学习塑造成语义空间。它更关心图像是否符合文本含义,而不只是局部像素是否真实。因此,生成 CLIP feature 有两个好处。
第一,它能提高文本-图像语义对齐。因为 CLIP feature 本身就是和文本对齐过的视觉表示。
第二,它更容易和已有 VLM 共享能力。VLM 的图像理解模块通常就建立在 CLIP / SigLIP / ViT 特征之上,如果生成端也学习语义视觉特征,那么理解和生成之间的表示差距会更小。
可以概括为:
BLIP3-o 的范式变化就在这里:它不是问“图像 token 应该 AR 还是 diffusion”,而是问“生成目标应该处在什么表示空间里”。

Flow Matching 与 Diffusion Transformer

BLIP3-o 研究了统一多模态生成中的建模目标,并最终采用 CLIP feature + Flow Matching 的路线。
如果把真实 CLIP image feature 记作 ,噪声或初始特征记作 ,Flow Matching 可以理解为学习一条从噪声到目标特征的连续路径:
模型学习预测这条路径上的速度场:
其中 是来自文本 prompt 或 LLM hidden states 的条件信息。
训练目标可以写成:
这样,生成时模型从噪声特征出发,沿着学到的速度场逐步生成目标 CLIP feature,再通过图像 decoder 还原成图像。
这和 Show-o 的 discrete diffusion 不同。Show-o 是在离散 image token 上做 mask prediction;BLIP3-o 是在连续 CLIP feature 空间里做 diffusion / flow matching。
可以对比为:

顺序训练而不是联合训练

BLIP3-o 的另一个重要结论是:统一模型不一定要从一开始就把理解和生成联合训练。论文强调 sequential pretraining 的实际优势:先训练或继承图像理解能力,再训练图像生成能力。
它的训练思路可以概括为:
这样做的原因很现实:图像理解和图像生成会互相干扰。如果联合训练,生成任务可能破坏原本已经很强的 VLM 理解能力;理解任务也可能占用训练容量,使生成模块学得不够充分。
顺序训练的好处是:
  • 先保住已有 VLM 的理解能力。
  • 再把训练容量集中到图像生成模块。
  • 降低多任务联合训练中的梯度冲突。
  • 更容易复用开源强 VLM,如 Qwen2.5-VL。
这和 Janus 的思路有相似之处。Janus 说理解和生成需要不同视觉编码路径;BLIP3-o 进一步说,理解和生成甚至可以在训练阶段上分开处理:

BLIP3o-60k 指令数据

BLIP3-o 还公开了一个重要数据集:BLIP3o-60k。它用于图像生成 instruction tuning,包含约 60k 高质量生成指令。
这一步的意义在于,图像生成不只是 caption-to-image。真实用户 prompt 往往包含风格、对象关系、动作、构图、文字、常识和约束。BLIP3-o 使用 GPT-4o 生成多样化、高质量的图像生成指令,以补足模型在复杂人体动作、常见物体、地标、简单文字等方面的短板。
因此 BLIP3-o 不只公开模型结构,还公开:
  • code
  • model weights
  • training scripts
  • pretraining data
  • instruction tuning data
这使它成为 2025 年 unified understanding and generation 方向里非常重要的 open recipe。

和前面模型的关系

可以把 BLIP3-o 放进这条主线中理解:
因此 BLIP3-o 的重点不是追求形式上最纯粹的统一,而是追求一个更实用的问题:如何在不破坏 VLM 理解能力的前提下,加入高质量图像生成能力。
它把范式问题从:
推进到:
也就是说,真正关键的不只是生成算法,还包括生成空间。如果目标空间选得更语义化,统一理解和生成会更自然。

局限

BLIP3-o 的局限也很清楚。
首先,它不是最“原生”的统一模型。它复用 Qwen2.5-VL 作为理解基础,再接 diffusion transformer 做生成,因此系统结构比 Emu3 这种 one loss / one Transformer 路线更复杂。
其次,生成 CLIP feature 虽然增强语义对齐,但最终图像质量仍然依赖后续 decoder 或还原模块。CLIP feature 是语义压缩表示,不保留全部像素细节,因此从 CLIP feature 还原高保真图像仍然有难度。
第三,顺序训练虽然稳定,但也意味着理解和生成之间的深度联合可能不够充分。模型更像是在强 VLM 上嫁接生成能力,而不是从一开始就学习完全统一的多模态世界模型。
总体来看,BLIP3-o 的历史意义在于:它把统一多模态模型的讨论从“统一 token 与统一目标”推进到“统一语义表示空间”。它说明图像生成模块不一定要直接生成像素、VAE latent 或离散 image token,也可以生成更接近 VLM 理解端的 CLIP visual features。这是理解-生成统一路线中非常重要的工程化范式。

MMaDA:把语言模型也推进 Diffusion 范式

MMaDA 是 2025 年提出的 Multimodal Large Diffusion Language Model。它比 BAGEL 更适合作为这里的突破性节点,因为它挑战的是一个更底层的默认假设:语言一定要用 autoregressive next-token prediction 吗?
在前面的模型中,即使图像生成方式发生变化,文本通常仍然默认使用自回归语言模型:
例如:
也就是说,diffusion 通常只被用于视觉生成,语言部分仍然是 LLM 的 next-token prediction。
MMaDA 的范式突破在于:它把文本推理、多模态理解和图像生成都放进 diffusion language model 框架中。也就是说,它不只是“图像用 diffusion”,而是尝试构建:
的统一 diffusion foundation model。

从 Autoregressive LM 到 Diffusion LM

自回归语言模型的生成方式是从左到右逐 token 生成:
这种方式非常适合语言建模,但它也带来一个结构性限制:模型必须按固定顺序生成,后面的 token 不能反过来影响前面的 token。
Diffusion language model 的思路不同。它不是从左到右生成,而是先把完整序列的一部分 token mask 掉,然后训练模型根据上下文恢复这些 token。可以把干净序列记作:
扩散前向过程把其中一部分 token 替换成 ,得到噪声序列:
模型学习反向过程:
训练目标通常只在被 mask 的位置上计算:
其中 是在时间 被 mask 的位置集合。
这样,文本生成就不再必须是严格从左到右,而可以通过多轮去噪逐步补全。MMaDA 把这个思想扩展到多模态序列中。

统一离散扩散架构

MMaDA 使用统一的离散 diffusion 架构,把文本 token 和图像 token 都看作可以被 mask 和恢复的离散符号。
文本使用语言 tokenizer:
图像则先通过视觉 tokenizer 离散化。公开说明中,MMaDA 使用 MAGVIT-v2 风格的图像量化器;对于 图像,下采样 16 倍后得到约 的图像 token 网格:
然后文本和图像可以被拼成统一序列:
在训练中,MMaDA 对这个统一序列加 mask noise,并训练同一个模型恢复被 mask 的 token:
这就是 MMaDA 和 Show-o 的关键区别。Show-o 仍然区分文本 AR 和图像 MTP;MMaDA 更进一步,把文本和图像都放进同一个 mask diffusion 公式里。
可以写成:

为什么这是突破

MMaDA 的突破不在于又多了一个图像生成模型,而在于它把“语言中心”的前提松动了。
过去多模态模型大多默认:
也就是说,即使模型加入视觉、音频或视频,主干仍然是自回归语言模型。
MMaDA 提出的可能性是:
如果文本也能通过 diffusion 方式生成和推理,那么多模态统一就不必围绕 next-token prediction 展开,而可以围绕“噪声到语义结构的恢复”展开。
这带来一个很不同的观点:
而不是:

Mixed Long CoT

MMaDA 还引入了 mixed long chain-of-thought fine-tuning。这里的重点不是简单让模型输出更长推理,而是把文本推理、多模态理解和图像生成都整理成统一的 CoT 格式。
可以抽象写成:
对于文本任务,最终结果是文本答案;对于多模态理解任务,推理过程可能引用图像内容;对于图像生成任务,推理过程可以描述构图、对象、关系和生成约束,最终结果对应图像 token 或图像输出。
这一步的意义是:如果模型的底层生成机制是 diffusion,那么 post-training 也需要重新设计。传统 AR 模型中的 instruction tuning / CoT / RLHF 不能原样搬过来。MMaDA 试图建立一套适合 diffusion foundation model 的推理微调方式。

UniGRPO:Diffusion 模型的统一 RL

MMaDA 的第三个关键点是 UniGRPO。它是面向 diffusion foundation model 的统一 policy-gradient RL 算法,用来同时优化推理任务和生成任务。
传统 GRPO / RLHF 更多面向自回归模型:模型生成一段 token 序列,然后根据答案正确性、偏好分数或 reward model 更新策略。但 diffusion 模型的生成过程不是简单的左到右 rollout,而是多步去噪,因此 RL 需要适配不同的采样和信用分配方式。
MMaDA 的思路是用统一的 policy-gradient 框架处理不同任务的 reward:
其中 reasoning reward 可以来自数学或逻辑正确性,understanding reward 可以来自多模态问答评价,generation reward 可以来自图像质量、文本对齐或偏好模型。
因此,MMaDA 不只是在 pretraining 阶段统一,也试图在 post-training 阶段统一:

和前面模型的关系

把 MMaDA 放进主线,可以得到一个很清楚的结构:
所以 MMaDA 不是简单接在 BLIP3-o 后面的工程扩展,而是把问题推进到更底层:
它的回答是:不一定。统一多模态模型也可以建立在 diffusion language model 上。

MMaDA-Parallel:文本与图像的并行协同去噪

MMaDA-Parallel 是 MMaDA 路线的一个后续延伸。它解决的问题不是“文本能不能 diffusion”,而是进一步追问:如果模型要先思考再生成图像,那么文本推理和图像生成应该是串行的吗?
很多 thinking-aware image generation 的流程可以写成:
也就是说,模型先生成一段文本推理,再把这段推理作为条件去生成图像。这个结构看起来合理,但有一个明显问题:文本推理一旦出错,后面的图像生成就会继承错误;即使文本推理本身看起来合理,它也未必和最终图像保持一致。
这就是串行范式的误差传播问题:
或者更具体地说:
MMaDA-Parallel 的核心变化是:不把 reasoning 和 image generation 做成前后两个阶段,而是让文本 token 和图像 token 在同一个 diffusion trajectory 中并行去噪、持续交互。
可以概括为:
其中 表示第 步的文本/思考状态, 表示第 步的图像状态。二者不是单向条件关系,而是在每一步去噪中互相影响。
这意味着,模型不是先写完“我要生成什么”,再单独画图;而是在生成过程中不断让文本语义和图像内容对齐:
这样做的意义是,图像生成可以反过来约束文本推理,文本推理也可以持续修正图像去噪方向。多模态生成从 pipeline 变成 co-evolution。
如果说 MMaDA 的突破是:
那么 MMaDA-Parallel 的突破就是:
它把统一 diffusion 进一步推进到协同 diffusion。统一不只是共享模型和损失函数,而是不同模态在生成过程中持续双向交互。
这也是为什么它比普通的 image editing 或 image generation extension 更重要。它触碰的是 thinking-aware generation 的结构问题:复杂图像生成不应该只是“语言规划 + 图像执行”,而应该是“语言和图像共同收敛到一致语义”。

局限

MMaDA 的局限也很明显。
首先,diffusion language model 还不是主流语言建模范式。自回归 LLM 在推理、工具调用、长上下文、系统生态和推理加速上已经非常成熟,dLLM 要追赶这些能力并不容易。
其次,diffusion 解码通常需要多轮迭代。虽然它可以并行预测多个 token,但每一步去噪都要调用模型,因此真实推理效率取决于步数、并行度和采样策略。
第三,多模态 diffusion 的训练和 post-training 更复杂。MMaDA 需要 mixed CoT、UniGRPO、不同 reward 的组合,说明这条路线还处在方法探索阶段。
总体来看,MMaDA 的历史意义在于:它把原生多模态统一从“如何把图像接入 LLM”推进到“LLM 的自回归范式本身是否必须”。它代表了一条不同于 Chameleon / Emu3 的路线:不再把 next-token prediction 视为唯一中心,而是尝试用 diffusion language model 统一文本推理、多模态理解和图像生成。
Chapter 8 世界模型Chapter 6 生成模型
Loading...
目录
0%
向思齐
向思齐
JianXian
公告
技术之本质只是缓慢地进入白昼。
这个白昼就是变成了单纯技术的白昼的世界黑夜。
这个白昼是最短的白昼。
目录
0%