模型层 开放阅读

ViT

Vision Transformer

概念 ID
vision-transformer
更新时间
2026-05-29
来源数量
待补

ViT

3 秒看懂

一句话: ViT 把一张图片切成固定大小的小块(patch),每个小块当作一个”token”,直接喂给标准 Transformer 编码器做视觉理解——不靠卷积,纯靠注意力。

类比: 就像把一本书的每一页撕成等大格子,每个格子是一个词,然后用 NLP 那套方法去”读图”。

3 分钟产业解释

为什么 ViT 重要?

在 ViT(2020)之前,计算机视觉的”主干”几乎被 CNN(卷积神经网络)垄断了十年:AlexNet → VGG → ResNet → EfficientNet。ViT 证明了一件事情——抛弃归纳偏置(inductive bias),纯靠海量数据 + 自注意力机制,Transformer 同样能在视觉任务上做到 SOTA,甚至更优

这对产业意味着三件事:

  1. 架构统一化: NLP 和 CV 可以共享同一套 Transformer backbone,降低工程复杂度,为多模态大模型(GPT-4V、Gemini 等)铺路。
  2. 规模化定律(Scaling Law): ViT 的性能与模型规模、数据规模、计算量之间呈现可预测的幂律关系(类比 LLM 的 Chinchilla 定律),这使得算力投资可量化。
  3. 生态迁移: 预训练-微调范式从 NLP 迁移到 CV,视觉基础模型(Foundation Model for Vision)赛道由此打开,催生了 DINO、MAE、SAM 等一系列里程碑工作。

关键数字(速览)

维度数据
提出时间2020 年(Dosovitskiy et al.,ICLR 2021 正式发表)
提出机构Google Brain(核心作者 Dosovitskiy、Beyer、Kolesnikov 等)
基本思想图像 patch → 线性嵌入 → 位置编码 → 标准 Transformer Encoder
典型 patch size16×16 或 14×14 像素
参数量(ViT-B/16)~86M [原始论文]
参数量(ViT-L/16)~307M [原始论文]
参数量(ViT-H/14)~632M [原始论文]
原始预训练数据JFT-300M(~3 亿张图片)[Google 内部数据集]

15 分钟专家深入

核心创新:Patch Embedding + 纯 Transformer Encoder

CNN 通过卷积核的局部感受野逐层扩大来获取全局信息,这个过程天然带有平移等变性局部性两种归纳偏置。ViT 的核心论点是:当数据量足够大时,这些归纳偏置反而是限制——模型自己从数据中学到的模式比人类预设的更优。

前向传播全链路

输入图像 (H × W × C)
    │
    ▼
Patch 分割 → (N 个 patch, 每个 P × P × C)
    │  N = (H/P) × (W/P)
    │  例如 224×224 图像、P=16 → N = 196 个 patch
    ▼
线性投影嵌入 → (N × D)  [D = 隐藏维度]
    │
    ▼
拼接 [CLS] token → ((N+1) × D)
    │  [CLS] 是可学习的向量,用于全局表征
    ▼
加上位置编码 → ((N+1) × D)  [可学习的 1D 位置嵌入]
    │
    ▼
L 层 Transformer Encoder Block
    │  每层包含:
    │  ┌─ LayerNorm → Multi-Head Self-Attention → 残差连接
    │  └─ LayerNorm → MLP (2 层 FFN, GELU 激活) → 残差连接
    │
    ▼
取 [CLS] token 的输出 → 线性分类头 → 预测

关键技术细节

1) Patch Embedding 的本质

将一个 P×P×C 的 patch 展平为长度为 P²C 的向量,再乘以一个可训练的投影矩阵 E ∈ ℝ^{(P²C)×D}。这等价于一个 kernel size = P、stride = P、无重叠的卷积——这是 ViT 中唯一”卷积”的地方(实现层面)。

2) 位置编码

原始 ViT 使用 可学习的 1D 位置嵌入(而非 2D 结构化位置编码)。实验表明,模型自己学到了隐式的 2D 空间结构——注意力图可视化中可以看到行/列方向的注意力模式 [原始论文 Figure 7]。

3) [CLS] Token vs Global Average Pooling

原始 ViT 用 [CLS] token 做分类。后续工作(如MAE)发现用 全局平均池化(GAP) 替代 [CLS] token 效果相当甚至更优。

4) 注意力复杂度

Self-attention 的计算和内存复杂度为 O(N²D),其中 N = patch 数量。对于 224×224 / P=16,N=196,复杂度可控。但当分辨率提升到 1024×1024 且 P=16 时,N=4096,计算量急剧膨胀——这是后续 Swin Transformer 等工作的改进动因。

5) 训练稳定性

原始 ViT 训练需要非常精细的学习率策略(linear warmup + cosine decay)和较大的 batch size(4096),否则容易发散。这是因为 Transformer 缺少 CNN 的 BatchNorm 归一化惯性和局部性约束。


技术原理

架构全景(ASCII)

┌─────────────────────────────────────────────────────┐
│                   Vision Transformer                  │
│                                                       │
│  Image (224×224×3)                                    │
│       │                                               │
│       ▼                                               │
│  ┌──────────────┐                                     │
│  │ Patch Embed   │  Conv2d(3, D, kernel=P, stride=P)  │
│  └──────┬───────┘  → (N=196, D=768) for ViT-B/16    │
│         │                                             │
│         ▼                                             │
│  ┌──────────────┐                                     │
│  │ Prepend [CLS] │  → (197, D=768)                    │
│  │ + Pos Embed   │  可学习参数 ∈ ℝ^{197×768}          │
│  └──────┬───────┘                                     │
│         │                                             │
│  ┌──────▼────────────────────────────────────────┐    │
│  │          Transformer Encoder × L              │    │
│  │                                                │    │
│  │  ┌──────────────────────────────────────────┐  │    │
│  │  │  LN → Multi-Head Self-Attention → + res  │  │    │
│  │  │  LN → MLP(GELU) → + res                 │  │    │
│  │  └──────────────────────────────────────────┘  │    │
│  │  × L 层 (B=12, L=24, H=32)                    │    │
│  └──────┬─────────────────────────────────────────┘    │
│         │                                             │
│         ▼                                             │
│  ┌──────────────┐                                     │
│  │ [CLS] 输出    │                                     │
│  │ → Linear Head │ → 类别 logits                      │
│  └──────────────┘                                     │
└─────────────────────────────────────────────────────┘

规格表:原始 ViT 变体

变体层数 L隐藏维度 D注意力头数MLP 隐层参数量Patch
ViT-B/1612768123072~86M16×16
ViT-L/16241024164096~307M16×16
ViT-H/14321280165120~632M14×14
ViT-L/16 @384241024164096~307M16×16

[来源:Dosovitskiy et al., “An Image is Worth 16x16 Words”, ICLR 2021]

Self-Attention 核心公式

Attention(Q, K, V) = softmax(QK^T / √d_k) · V

其中:
  Q = XW_Q, K = XW_K, V = XW_V
  W_Q, W_K, W_V ∈ ℝ^{D × d_k}
  d_k = D / h  (h = 注意力头数)

Multi-Head Self-Attention (MHSA):

MultiHead(X) = Concat(head_1, ..., head_h) · W_O

其中 head_i = Attention(XW_Qi, XW_Ki, XW_Vi)
W_O ∈ ℝ^{D × D}

MLP Block:

MLP(x) = Linear(GELU(Linear(x)))
  第一层: D → 4D (ViT 中 MLP 隐层 = 4D)
  第二层: 4D → D

计算量估算

以 ViT-B/16 处理单张 224×224 图像为例 [估算]:

组件FLOPs 近似
Patch Embedding~0.14G
单层 MHSA~0.52G(N=197, D=768)
单层 MLP~0.93G(D→3072→D)
12 层合计~17.6G
分类头可忽略

对比:ResNet-50 约 4G FLOPs;ViT-B/16 的单次推理计算量约为 ResNet-50 的 ~4.4 倍 [粗略估算]。


技术演进史

时间线
═══════════════════════════════════════════════════════════

2012  AlexNet        ← CNN 称霸视觉
  │
2015  ResNet         ← 残差连接,深度 CNN 标杆
  │
2017  Transformer    ← Vaswani et al., NLP 革命
  │                    "Attention Is All You Need"
  │
2019  ┌─ iGPT (Chen et al.)  ← 最早将 GPT 引入图像(自回归)
  │   └─ Set Transformer      ← 集合上的注意力
  │
2020  ★ ViT ★        ← Dosovitskiy et al. (Google Brain)
  │                    首次证明:纯 Transformer + 足够数据
  │                    → 在 ImageNet 上超越 CNN SOTA
  │
2021 ─┬─ DeiT (Touvron et al.)  ← 仅用 ImageNet-1K 训练 ViT
  │   │                           引入知识蒸馏 token
  │   ├─ Swin Transformer (Liu et al.) ← 窗口注意力,层级结构
  │   ├─ BEiT (Bao et al.)  ← 视觉 BERT,掩码图像建模预训练
  │   ├─ MLP-Mixer (Tolstikhin et al.) ← 用 MLP 替代注意力
  │   └─ PVT (Wang et al.)  ← 金字塔 ViT
  │
2022 ─┬─ MAE (He et al.)  ← 掩码自编码器,75% 掩码率
  │   │                     ImageNet-1K 上达到 87.8% top-1
  │   ├─ EVA / EVA-02  ← 规模化视觉预训练
  │   └─ SigLIP (Zhai et al.) ← ViT + CLIP 改进
  │
2023 ─┬─ SAM (Kirillov et al.)  ← ViT-H 作为图像编码器
  │   ├─ InternImage           ← 大规模视觉基础模型
  │   └─ ViT-22B (Dehghani et al.) ← Google 最大 ViT
  │
2024 ─┬─ DINOv2 大规模部署
  │   └─ ViT 成为多模态 LLM 的标准视觉编码器
  │       (GPT-4V, LLaVA, InternVL 等)
═══════════════════════════════════════════════════════════

关键转折点

  • DeiT (2021): 证明 ViT 不一定需要 JFT-300M 那样的海量数据。通过数据增强(RandAugment、Mixup、CutMix)+ 知识蒸馏 + 更强的正则化(Stochastic Depth),在 ImageNet-1K(~1.28M 张图)上也能训练出有竞争力的 ViT。
  • Swin Transformer (2021): 引入层级结构和移位窗口注意力,将复杂度从 O(N²) 降到 O(N),在密集预测(检测、分割)任务上全面超越原始 ViT。
  • MAE (2022): 随机掩码 75% 的 patch,用 ViT 编码器-解码器重建像素,实现了高效的自监督预训练。

技术路线对比

ViT vs CNN vs 混合方案

维度原始 ViTCNN (ResNet)Swin TransformerMAE (ViT)
归纳偏置几乎无(仅 patch 划分含局部性)平移等变性 + 局部性窗口局部性 + 层级结构同 ViT
注意力范围全局(每层每个 token 看所有 token)局部(卷积核大小)窗口内全局 + 跨窗口(移位)全局
序列长度N = (H/P)×(W/P),固定随层逐级缩小分阶段缩小(类似 CNN)同 ViT
复杂度O(N²D)O(K²·C²·H·W)O(N·w²·D),w = 窗口大小O(N²D),但仅处理未掩码 token
小数据表现弱(需大数据或强正则)较强中等(预训练后微调强)
密集预测适配需额外设计(如 ViTDet)天然金字塔天然金字塔需额外设计
预训练效率非常高(75% 掩码)
典型 ImageNet top-1~77-79%(B/16, IN-1K 直接训练)~76-80%(R50-R152)~83-86%(Swin-B/L)~83-87%(MAE ViT-L/H)

注:具体准确率依赖训练配置(数据增强、分辨率、epoch 数等),此处为 [原始论文报告值 / 社区复现近似值],仅供参考量级。

自注意力 vs 卷积的核心区别

卷积(局部、固定权重):
  ┌───┐
  │ K │  ← 固定大小核(如 3×3),权重不随输入变化
  └───┘  → 复杂度 O(K²·C·H·W),K 远小于 H,W

自注意力(全局、动态权重):
  每个 token 与所有 token 计算相似度
  → 权重由输入内容动态决定
  → 复杂度 O(N²·D),N = token 数

上下游

上游(ViT 依赖什么)

环节具体内容
算力硬件GPU/TPU 训练集群;ViT-B 通常用 8-64 块 V100/A100 训练数天 [估算]
训练数据ImageNet-1K(~1.28M)、ImageNet-21K(~14M)、JFT-300M(~300M)等
框架PyTorch(主流)、JAX/Flax(Google 原始实现)、HuggingFace Transformers
正则化技术Stochastic Depth、Label Smoothing、Mixup、CutMix、RandAugment

下游(ViT 用在哪)

方向代表工作说明
图像分类ViT、DeiT、DINO直接替代 ResNet 做 backbone
目标检测ViTDet、DINO-DETRViT 作为检测器 backbone
语义分割SegFormer、SegmenterViT backbone + 解码头
自监督学习MAE、DINO、DINOv2预训练范式,下游微调
多模态CLIP、SigLIP、LLaVA、GPT-4VViT 作为视觉编码器,与文本对齐
视频理解ViViT、TimeSformer将 ViT 扩展到时空维度
图像生成DiT (Scalable Diffusion Transformer)ViT 作为扩散模型 backbone
3D 视觉Point Transformer点云上的 Transformer

关键指标

指标含义典型值/范围
ImageNet top-1 准确率在 ImageNet 验证集上的分类准确率ViT-B: 77-84%;ViT-L: 80-87%(取决于预训练数据和策略)
Params模型参数量B=86M, L=307M, H=632M
FLOPs单次前向推理浮点运算次数B/16: ~17-80G(取决于分辨率)
Throughput每秒处理图片数(images/sec)取决于硬件和分辨率;B/16 @224: 数百张/秒/A100 [估算]
Attention 层数 × 头数注意力头的总数B: 12层×12头=144; L: 24层×16头=384
Patch 数 N序列长度224/16→196; 384/16→576; 518/14→1369
Pre-training 数据量预训练图片数IN-1K: 1.28M; IN-21K: 14M; JFT-300M: 300M
Transfer 性能迁移到下游任务的准确率在 VTAB-19 等 benchmark 上评估

供需与市场数据

需求侧

ViT 及其变体已从学术研究走向工业标配

  • 多模态大模型: GPT-4V、Gemini、Claude 3.5 等多模态 LLM 的视觉编码器,主流采用 ViT 架构(或 ViT 变体如 SigLIP ViT、InternViT)。每个多模态 API 调用背后都是 ViT 的推理。
  • 自动驾驶: BEV(鸟瞰图)感知管线中,ViT backbone 逐渐替代 CNN。
  • 医疗影像: ViT 在病理切片、CT/MRI 分析中表现优异。
  • 工业质检: 基于预训练 ViT 的少样本/零样本检测。

供给侧

维度现状
推理芯片NVIDIA GPU(A100/H100)、Google TPU、高通/联发科端侧 NPU
模型规模从 ViT-Ti(~5M)到 ViT-22B(220亿参数)[Dehghani et al., 2023]
部署云端推理(主力)、边缘推理(ViT-Ti/S 量化后可上手机端)
开源生态HuggingFace timm 库提供 1000+ ViT 预训练权重;MAE/DINOv2 权重广泛使用

市场规模(估算)

严格来说,“ViT”不是一个独立市场品类,而是嵌入在 AI 芯片 + 视觉 AI 软件 + 多模态应用中的核心技术组件。根据 [第三方行业报告估算],计算机视觉 AI 市场 2024 年规模约 $20-30B,其中 Transformer-based 视觉模型渗透率快速提升但仍与 CNN 共存。


代表公司与资本映射

公司/机构角色关键产品/工作
Google / DeepMind原始发明者ViT、MAE (Kaiming He 在 FAIR 但与 Google 紧密关联)、ViT-22B、SigLIP
Meta / FAIR重要贡献者DINO、DINOv2、MAE、Segment Anything (SAM)
Microsoft应用落地Florence (ViT-based CLIP 改进)、Swin Transformer (MSRA)
OpenAI多模态应用CLIP (ViT 作为视觉编码器之一)、GPT-4V 的视觉前端
Hugging Face生态基础设施transformers 库、timm 库,ViT 模型分发平台
NVIDIA硬件+框架Triton 推理优化中的 ViT 优化、TensorRT-LLM 对多模态模型支持
中国科技公司追赶与创新阿里 EVA 系列、商汤 InternImage、智谱 CogVLM(ViT 编码器)

资本映射

  • 直接受益: AI 芯片厂商(NVIDIA、AMD、Google TPU 业务)——ViT 的计算密集特性驱动高端 GPU 需求。
  • 间接受益: 多模态 AI 应用公司(OpenAI、Anthropic、字节跳动等)——ViT 是多模态能力的基础设施。
  • 数据标注/数据服务: ViT 预训练依赖大规模标注/未标注数据。

投资逻辑

核心判断

  1. ViT 已成为视觉 AI 的”公地基”。 不是可选项,而是必选项。任何做视觉 AI 的公司都离不开 ViT 或其变体。
  2. 计算需求持续增长。 从 ViT-B(86M)到 ViT-22B,参数量增长 250 倍。多模态大模型中,视觉编码器的推理频次与文本 LLM 挂钩,且每次对话都需处理图像输入。
  3. 端侧部署是增量市场。 ViT-Ti/S + INT8 量化在手机/车载芯片上的部署正在加速,推动端侧 AI 芯片升级。
  4. 多模态大模型 = ViT 的杀手级应用。 GPT-4V、Gemini 等产品的爆发,直接带动 ViT 推理算力需求。

风险

  • 架构替代风险: Mamba(状态空间模型)等新架构可能在长序列场景下挑战 ViT。
  • 同质化竞争: ViT 架构开源且成熟,差异化壁垒在于数据和工程优化,而非架构本身。
  • 推理成本: ViT 在端侧的计算量仍显著高于 MobileNet 等轻量 CNN,可能限制某些场景的渗透。

常见误读纠偏

❌ 误读 1:“ViT 不需要大数据就能训练好”

事实: 原始 ViT 论文明确指出,当仅用 ImageNet-1K(128 万张)训练时,ViT 不如同等规模的 ResNet。ViT 的性能优势是在 JFT-300M(3 亿张)预训练后才体现的 [原始论文 Table 2]。DeiT 后续证明通过极强的数据增强和知识蒸馏可以在 IN-1K 上训练好 ViT,但这恰恰说明 ViT 对数据增强策略高度敏感——缺乏 CNN 的归纳偏置是一把双刃剑。

❌ 误读 2:“ViT 的自注意力是全局的,所以一定比 CNN 好”

事实: 全局注意力 ≠ 一定更优。在数据量有限的情况下,CNN 的局部性先验反而是优势。此外,全局注意力的 O(N²) 复杂度在高分辨率场景下是严重的效率瓶颈。Swin Transformer 之所以在检测/分割任务上大幅领先原始 ViT,正是因为引入了局部窗口注意力——本质上是把 CNN 的局部性偏置重新引入了 Transformer。

❌ 误读 3:“ViT 就是把 CNN 替换掉”

事实: 更准确的表述是:ViT 证明了注意力机制可以独立完成视觉表征学习,但这不意味着 CNN 已被淘汰。实际上:

  • ConvNeXt(2022)证明将 CNN 现代化后性能与 Swin 相当。
  • 工业部署中,CNN 在效率敏感场景(手机端实时检测等)仍广泛使用。
  • 最新趋势是 CNN + Transformer 混合架构(如 ConvNeXt V2 + MAE)。

❌ 误读 4:“ViT 的 [CLS] token 是必须的”

事实: [CLS] token 来自 BERT 的设计惯性。后续实验表明,使用 全局平均池化(GAP)自适应池化 取代 [CLS] token,分类效果基本持平甚至更优 [Touvron et al., 2021; He et al., 2022 MAE]。在 DINOv2 等先进自监督方法中,[CLS] token 和 patch token 都被利用。


学习路径

入门(2-4 周)

  1. 前置知识: 基础线性代数(矩阵乘法、softmax)、基础深度学习(CNN、反向传播)、PyTorch 基础。
  2. 论文: 读 Dosovitskiy et al. (2020) 原文,重点理解 Section 3(Method)和 Figure 1(架构图)。
  3. 代码实战:timm 库加载预训练 ViT-B/16,在自己的图像分类数据集上微调。
  4. 可视化: 用注意力可视化工具观察 ViT 的注意力图,理解它”看”图的方式。

进阶(1-2 月)

  1. 对比实验: 对比 ViT vs ResNet-50 在小数据集(如 CIFAR-10)和大数据集上的表现差异。
  2. 关键论文:
    • DeiT [Touvron et al., 2021] — 数据高效训练
    • Swin Transformer [Liu et al., 2021] — 层级结构
    • MAE [He et al., 2022] — 自监督预训练
  3. 代码实践: 从零实现一个 ViT-Small,包括 patch embedding、position encoding、MHSA。

专家(3-6 月)

  1. 深度论文:
    • DINO/DINOv2 — 自监督视觉表征
    • Scaling Vision Transformers [Zhai et al., 2022] — ViT 的 scaling law
    • An Image is Worth 16x16 Words: What about 4x4? — Patch size 的影响
  2. 工程实践: 用 TensorRT/ONNX 部署 ViT 到边缘设备;研究 ViT 的 INT8 量化。
  3. 前沿跟踪: 关注多模态 LLM 中 ViT 的角色(SigLIP、InternViT、EVA)。

一句话总结

ViT 证明了”一张图就是一串 token”——抛弃卷积的归纳偏置,用纯自注意力 + 海量数据,让 Transformer 在视觉领域实现了与 NLP 同等的架构统一和规模化扩展,成为多模态 AI 时代不可或缺的视觉基座。


延伸阅读与来源

核心论文

  1. Dosovitskiy, A., et al. (2020). “An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale.” ICLR 2021. [arXiv:2010.11929]
  2. Touvron, H., et al. (2021). *“Training Data-Efficient Image Transformers & Distilla
source: 公开披露与公开资料整理 本页仅用于产业链学习、信息检索和研究辅助;不构成投资建议,不预测涨跌,不提供买卖、仓位或目标价建议。
完整概念页 复盘 13 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型