Overview of Visual Foundation Models

Author

Updated

Jun, 22, 2026

Category

Introduction

在本文中,我们将回顾总结visual foundation models的发展历程以及最新的进展,这里的visual foundation model指的的是 CLIP (Radford et al., 2021), SigLIP (Zhai et al., 2023) 这类主要作为多模态大模型vision encoder的模型。

Model performance over time (ImageNet)

vision encoder 的演进是怎么样的?

  1. Radford, A., Kim, J. W., Hallacy, C., Ramesh, A., Goh, G., Agarwal, S., Sastry, G., Askell, A., Mishkin, P., Clark, J., Krueger, G., & Sutskever, I. (2021). Learning Transferable Visual Models From Natural Language Supervision. CoRR, abs/2103.00020. https://arxiv.org/abs/2103.00020
  2. Zhai, X., Mustafa, B., Kolesnikov, A., & Beyer, L. (2023). Sigmoid Loss for Language Image Pre-Training. 2023 IEEE/CVF International Conference on Computer Vision (ICCV), 11941–11952. 10.1109/ICCV51070.2023.01100

ViT

Google 在 21 年提出了 ViT (Dosovitskiy et al., 2021), 一个基于 Transformer 的图像识别模型架构,作者通过实验验证了 Transformer 架构在图像识别领域的成功。

Transformer (Vaswani et al., 2017) 架构在 NLP 领域已经成为了事实上的标准。而在 CV 领域,目前还是 CNN 架构占据了主导。

在本文中,作者就探究是否可以应用 Transformer 架构来完成图像识别的任务。

作者发现,当在小规模数据集上进行训练时,Transformer 架构的表现是不如 CNN 架构的,作者认为原因是 Transformer 架构缺乏如 translation equivariance 和 locality 等 inductive biases. 但是当数据集规模上去之后,作者发现这种 inductive bias 可以通过大规模训练抵消掉。 其中,最好的模型在 ImageNet 上达到了 88.55%88.55\% 的准确率。

Architecture

ViT 的架构如下图所示

TODO

为了能够处理图片,对于输入的图片 xRH×W×Cx\in\mathbb{R}^{H\times W\times C}, 其中 (H,W)(H,W) 是图片大小,CC 是 channel 的个数。作者将其展开为一个 2D patch 序列, xpRN×(P2×C)x_p\in\mathbb{R}^{N\times (P^2\times C)}, 其中 (P,P)(P, P) 是 image patch 的大小,N=HW/P2N=HW/P^2 是 image patch 的的个数,也是 Transformer 输入 token 的个数,Transformer 的 hidden size 为 DD, 作者使用了一个 linear layer 来将 image patch 转换为 Transformer 的输入。

与 BERT (Devlin et al., 2019) 一致,作者使用了一个 [class] token 来作为输入 patch 序列的 embedding, 即 z00=xclassz_0^0=x_{class}, 其对应的输出 zL0z_L^0 作为该图片的表示。作者还使用了 1D 的 position encoding. 最终,ViT 表达式如下所示

z0=[xclass;xp1E;xp2E;;xpNE;]+Epos,ER(P2C)×D,EposR(N+1)×Dz=MultiHeadAttention(LayerNorm(z1))+z1,=1,,Lz=MLP(LayerNorm(z))+z,=1,,Ly=LayerNorm(zL0)\begin{aligned} z_0 &= [x_{class};x_p^1\mathbf{E};x_p^2\mathbf{E};\cdots;x_p^N\mathbf{E};]+\mathbf{E}_{pos}, &\mathbf{E}\in\mathbb{R}^{(P^2\cdot C)\times D},\mathbf{E}_{pos}\in\mathbb{R}^{(N+1)\times D}\\ z_{\ell}'&=\mathrm{MultiHeadAttention}(\mathrm{LayerNorm}(z_{\ell-1}))+z_{\ell-1},&\ell=1,\dots,L\\ z_{\ell} &= \mathrm{MLP}(\mathrm{LayerNorm}(z_{\ell}'))+z_{\ell}',&\ell=1,\dots,L\\ y&=\mathrm{LayerNorm}(z_L^0) \end{aligned}

作者分析认为,相比于 CNN 架构,Transformer 架构缺乏 inductive bias, 这是因为每个 patch 对其周围的 2D 临近信息用的非常少,ViT 架构必须从零开始学习这些位置以及空间关系。

作者还介绍了混合架构,即 patch embedding 由一个 linear layer 替换为一个 CNN 架构

在 finetune 时,作者移除了 pre-trained 的 prediction head, 然后加入了一个 D×KD\times K 的 feed forward layer, 其中 KK 是分类的类别数。

Experiments

作者使用的数据集如下所示

Datasetclassesimages
ImageNet1K1.3M
ImageNet-21K21K14M
JFT18K303M

作者在 ImageNet, CIFAR-10/100, Oxford-IIIT Pets, Oxford Flowers-102 这些数据集上进行评测。

模型配置如下表所示

ModelLayersDDDFFND_{FFN}# heads# params
ViT-Base1276830721286M
ViT-Large241024409616307M
ViT-Huge321280512016632M

为了简便,作者在后续实验过程中,对模型名字进行了改写,比如 ViT-L/16 就代表了 ViT-Large model, 其对应的 patch size 为 16.

TODO

  1. Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. https://arxiv.org/abs/1810.04805
  2. Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn, D., Zhai, X., Unterthiner, T., Dehghani, M., Minderer, M., Heigold, G., Gelly, S., Uszkoreit, J., & Houlsby, N. (2021). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. International Conference on Learning Representations. https://openreview.net/forum?id=YicbFdNTTy
  3. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, L., & Polosukhin, I. (2017). Attention Is All You Need. Advances in Neural Information Processing Systems.

CLIP

Method

损失函数

图像到文本损失:

Li2t=11Ni=1Nlogexp(Si,i/τ)j=1Nexp(Si,j/τ)\mathcal{L}_{\mathrm{i2t}} = 1\frac{1}{N}\sum_{i=1}^N\log\frac{\exp(S_{i,i}/\tau)}{\sum_{j=1}^N\exp(S_{i,j}/\tau)}

文本到图像损失:

Lt2i=11Ni=1Nlogexp(Si,j/τ)j=1Nexp(Sj,i/τ)\mathcal{L}_{\mathrm{t2i}} = 1\frac{1}{N}\sum_{i=1}^N\log\frac{\exp(S_{i,j}/\tau)}{\sum_{j=1}^N\exp(S_{j,i}/\tau)}

总损失

LCLIP=12(Li2t+Lt2i)\mathcal{L}_{\mathrm{CLIP}} = \frac{1}{2}(\mathcal{L}_{\mathrm{i2t}} +\mathcal{L}_{\mathrm{t2i}} )

代码

Pseudocode for implementation of CLIP
I_f = image_encoder(I) # [n, d_i]
T_f = text_encoder(T) # [n, d_t]

I_e = l2_normalize(np.dot(I_f, W_i), axis=1) # [n, d_e]
I_f = l2_normalize(np.dot(I_t, W_t), axis=1) # [n, d_e]

logits = np.dot(I_e, T_e.T) * np.exp(t)  # [n, n]

labels = np.arange(n)
loss_i = cross_entropy_loss(logits, labels, axis=0)
logits_t = cross_entropy_loss(logits, labels, axis=1)

loss = (loss_i + loss_t) / 2

details

training batch size: 32768

ViT variant details:

ModelLearning rateEmbedding dimensionInput resolutionVision Transformer layersVision Transformer widthVision Transformer headsText Transformer layersText Transformer widthText Transformer heads
ViT-B/325×1045 \times 10^{-4}5122241276812125128
ViT-B/165×1045 \times 10^{-4}5122241276812125128
ViT-L/144×1044 \times 10^{-4}768224241024161276812
ViT-L/14-336px2×1052 \times 10^{-5}768336241024161276812

Analysis

CLIP 的问题在于需要使用非常大 的 batch size, 比如 32K 才能达到一个比较好的表现,太小的话因为负样本不够难以学习到有用的特征。 但是 batch size NN 太大的话,我们的 logits 矩阵 (N×NN\times N) 占用的显存也非常大,这会影响整体的训练开销。

为了解决这个问题,SigLIP 就提出将这个多分类问题编程一个二分类问题

SigLIP

SigLIP1

Architectures

TODO

SigLIP2

DINO

DINO1

DINO2

DINO3

Recent Progress

SWA

Qwen2.5-VL (Bai et al., 2025) 使用了 sliding window attention (SWA) 来减少 ViT 处理长图片/视频输入时 attention 计算开销。

ViT-5

模型架构:

  1. QK norm, RoPE
  2. pre-norm, RMSNorm
  3. layer-scale residual

模型细节

模型配置

model# layersdim# heads# registers# params
ViT-5-S123846422M
ViT-5-B1276812487M
ViT-5-L241024164304M
ViT-5-XL281152164449M

ViT-22B

https://proceedings.mlr.press/v202/dehghani23a.html

Parallel Layers

ViT-22B 同时处理 MLP 和 attention, 也就是

y=LayerNorm(x)y=x+MLP(y)+Attention(y)\begin{aligned} y' &= \mathrm{LayerNorm}(x)\\ y &= x + \mathrm{MLP}(y') + \mathrm{Attention}(y') \end{aligned}

通过这种方式,我们可以同时处理 MLP\mathrm{MLP}Attention\mathrm{Attention} 的 linear layer. 这样我们可以把不同模块的矩阵乘法进行打包计算,从而提高计算效率。这个方法 [[PaLM]] 页使用了,作者发现,该方法可以在不损失精度的情况下,将计算效率提高 15%15\%.

QK Normalization

作者发现,ViT 训练崩溃的原因主要是 attention logits 会爆炸,这就导致了 attention weights 非常接近 one-shot 向量。为了解决这个问题,作者在计算 query 和 key 内积之前,先对 query 和 key 进行一次 normalization, 具体来将,attention score 的计算方式如下:

softmax[LN(XWQ)LN(XWK)T/d]\mathrm{softmax}\left[\mathrm{LN(XW_Q)}\mathrm{LN(XW_K)}^T/\sqrt{d}\right]

其中, dd 是 ViT 的 hidden size, WQ,WKW_Q, W_K 分别是 query projection layer, key projection layer 的权重矩阵。LN\mathrm{LN} 代表 layer normalization.

作者比较了 Qk Normalization 和没有时的区别,实验结果如下图所示

Omitting Biases

作者还移除了 QKV projection layer 中的 bias, 移除之后,作者发现模型表现没有收到影响,而训练效率提升了 3%3\% 左右。

对于 MLP 的 bias, 作者进行了保留,作者发现尽管表现有稍微提升 (0.4%0.4\%), 但是效率上并没有改变。

ViT-22B 的 patch size 为 14, 输入图片精度为 224, 作者使用了和 ViT 一样的可学习位置编码,使用高精度图片进行 fine-tune 的时候,作者使用了 2D interpolation 来进行插值。

模型的配置如下表

Namehidden sizelayersMLP hidden sizeHeadsParams(M)
ViT-G1664488192161843
ViT-e17925615360163926
ViT-22B614448245764822165

训练时,作者使用了 JFT 数据集,包含了 4B 的图片,作者使用 sigmoid cross-entropy loss 进行训练。

CogViT

GLM-5V-turbo (Team et al., 2026) 提出了 CogViT, 一个基于 ViT (Dosovitskiy et al., 2021) 架构,403M 的 vision encoder. CogViT 在架构上使用了 QK-Norm (Henry et al., 2020) 来提高 attention 计算的稳定性。在训练上,作者将训练分为两个阶段:

  1. 使用基于蒸馏的 masked image modeling 来提高模型的视觉表征能力,这个阶段使用了 SigLIP2 (Tschannen et al., 2025) 和 DINOv3 (Siméoni et al., 2025) 作为教师模型分别提供 sementic feature 和 textual feature. 训练时图片大小为 224×224224\times 224, masking ratio 为 35%35\%. 数据配比为:natural images (80%80\%), instruction following (10%10\%), scientific imagery (10%10\%).
  2. 使用对比学习来对齐视觉特征和文本特征。这个阶段使用了 NaFlex 来处理动态分辨率图片输入 以及使用了 SigLIP (Zhai et al., 2023) 的 Sigmoid loss (batch size) 来进行训练,数据上,作者加入了 8B 的 bilingual 数据来提高模型的多语种能力。

对于优化器,作者使用了 Muon (Jordan et al., 2024) 以及 cosine learning rate schedule.

  1. Bai, S., Chen, K., Liu, X., Wang, J., Ge, W., Song, S., Dang, K., Wang, P., Wang, S., Tang, J., Zhong, H., Zhu, Y., Yang, M., Li, Z., Wan, J., Wang, P., Ding, W., Fu, Z., Xu, Y., … Lin, J. (2025). Qwen2.5-VL Technical Report. https://arxiv.org/abs/2502.13923
  2. Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn, D., Zhai, X., Unterthiner, T., Dehghani, M., Minderer, M., Heigold, G., Gelly, S., Uszkoreit, J., & Houlsby, N. (2021). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. International Conference on Learning Representations. https://openreview.net/forum?id=YicbFdNTTy
  3. Henry, A., Dachapally, P. R., Pawar, S. S., & Chen, Y. (2020). Query-Key Normalization for Transformers. In T. Cohn, Y. He, & Y. Liu (Eds.), Findings of the Association for Computational Linguistics: EMNLP 2020 (pp. 4246–4253). Association for Computational Linguistics. 10.18653/v1/2020.findings-emnlp.379
  4. Jordan, K., Jin, Y., Boza, V., You, J., Cesista, F., Newhouse, L., & Bernstein, J. (2024). Muon: An optimizer for hidden layers in neural networks. https://kellerjordan.github.io/posts/muon/
  5. Siméoni, O., Vo, H. V., Seitzer, M., Baldassarre, F., Oquab, M., Jose, C., Khalidov, V., Szafraniec, M., Yi, S., Ramamonjisoa, M., Massa, F., Haziza, D., Wehrstedt, L., Wang, J., Darcet, T., Moutakanni, T., Sentana, L., Roberts, C., Vedaldi, A., … Bojanowski, P. (2025). DINOv3. https://arxiv.org/abs/2508.10104
  6. Team, V., Hong, W., Gu, X., Pan, Z., Yang, Z., Wang, Y., Wang, Y., Yue, Y., Wang, Y., Wang, Y., Wang, Y., Liu, X., Yu, W., Wang, W., Li, W., Duan, S., Yang, S., Lv, R., Liu, M., … Tang, J. (2026). GLM-5V-Turbo: Toward a Native Foundation Model for Multimodal Agents. https://arxiv.org/abs/2604.26752
  7. Tschannen, M., Gritsenko, A., Wang, X., Naeem, M. F., Alabdulmohsin, I., Parthasarathy, N., Evans, T., Beyer, L., Xia, Y., Mustafa, B., Hénaff, O., Harmsen, J., Steiner, A., & Zhai, X. (2025). SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features. https://arxiv.org/abs/2502.14786
  8. Zhai, X., Mustafa, B., Kolesnikov, A., & Beyer, L. (2023). Sigmoid Loss for Language Image Pre-Training. 2023 IEEE/CVF International Conference on Computer Vision (ICCV), 11941–11952. 10.1109/ICCV51070.2023.01100