ViT证明了Transformer是一种通用架构——不仅适用于文本,也适用于图像。这种统一使得多模态模型的爆发成为可能:如果图像和文本都是由相同架构处理的token序列,那么组合它们就变得自然。ViT是CLIP中的图像编码器、DiT的骨干,也是现代计算机视觉的基础。
处理流程:(1) 将224×224的图像分割为196个16×16像素的块,(2) 将每个块展平为向量并通过线性层投影以创建块嵌入,(3) 添加位置嵌入以便模型知道每个块的位置,(4) 前置一个[CLS] token,其最终表示用于分类,(5) 通过标准Transformer编码器层处理。输出是一系列块表示,可用于分类、检测或作为其他模型的特征。
CNN具有内置的归纳偏置:局部性(相邻像素相关)和平移等变性(无论位置如何都能识别模式)。ViT两者都没有——它将块视为无序集合(位置来自学习的嵌入)并对所有块平等地进行注意力计算。这使得ViT在小数据集上的数据效率低于CNN,但在大数据集上更强大,因为它可以从数据中学习这些偏置,而不是将其硬编码。
ViT催生了一系列视觉Transformer:DeiT(数据高效训练)、Swin Transformer(带移位窗口的层级视觉)、MAE(用于自监督视觉的掩码自编码器)和DINO/DINOv2(自监督视觉表示)。这些模型现在主导了视觉任务:图像分类、目标检测、分割和特征提取。ViT架构也是大多数多模态模型(LLaVA、GPT-4V)中的图像编码器。