符号定义

在论文的 Table1 中有给出三个模型(Base/ Large/ Huge)的参数

Model Patch Size Layers Hidden Size D MLP size Heads Params
ViT-Base 16x16 12 768 3072 12 86M
ViT-Large 16x16 24 1024 4096 16 307M
ViT-Huge 14x14 32 1280 5120 16 632M
  • Layers:指 Transformer Block 的层数。
  • Hidden Size D:指每个 token 的特征维度(embedding dim)。
  • MLP Size:计算为 Hidden Size D × mlp_ratio,默认 mlp_ratio=4,表示 MLP 部分的隐层维度。
  • Heads:多头自注意力中并行头的数量。
  • Params:是模型大致参数量,具体数字可能因实现细节或是否包含额外模块(如在 SAM 中)而不同。

在论文及实际使用中,我们常用ViT-size/patch_size的形式来表示该模型是在“什么规模”及“多大的 patch 尺寸”上预训练出来的。例如ViT-H/14就表示该模型是在 Huge 规模上,用 patch 尺寸为 14 的数据做预训练的。

常见模型

Model Pre-Trained Dataset Finetuned Dataset Patch Size Layers Hidden Size D MLP size Heads Params timm
ViT-B/16-IN1K ImageNet21K ImageNet1K 16×16 12 768 3072 12 ~86M timm.create_model(‘vit_base_patch16_224’, pretrained=True)
ViT-B/16-IN21K ImageNet21K - 16×16 12 768 3072 12 ~86M timm.create_model(‘vit_base_patch16_224_in21k’, pretrained=True)
ViT-L/16-IN1K ImageNet21K ImageNet1K 16×16 24 1024 4096 16 ~304M
ViT-B/16-DINO ImageNet - 16×16 12 768 3072 12 ~86M
ViT-B/16-SAM SA-1B (Segment Anything 1B) - 16×16 12 768 3072 12 ~632M (整套 SAM)
ViT-B/16-MAE ImageNet21K - 16×16 12 768 3072 12 ~86M
ViT-B/16-CLIP OpenAI CLIP(约4亿图文对) - 16×16 12 768 3072 12 ~86M (视觉编码器)
  • IN1K / IN21K 分别指在 ImageNet-1K(约 100 万张图)或 ImageNet-21K(约 1400 万张图、2 万类)上进行预训练。
  • DINO 为自监督蒸馏方法,在 ImageNet-1K 上训练。
  • SAM 则是 Segment Anything 的大规模 10 亿图像数据集(SA-1B)进行预训练,完整的 Segment Anything 模型会比标准 ViT-B/16 参数更多(大约 632M)。
  • MAE(Masked Autoencoder)是图像自监督掩码预训练方法,通常也是在 ImageNet-1K 上进行预训练。
  • CLIP 是 OpenAI 训练的图文对数据(约 4 亿对),其中视觉编码器部分本质上也是一个 ViT-B/16。