2025年8月,Meta出品的DINO系列再出新作!视觉自监督的GPT时刻真的到来了!|DINOv3
一、DINOv3的目标
在经历了DINO和DINOv2的持续演进后,Meta本月推出了新一代视觉自监督模型DINOv3。
DINOv3的诞生,部分灵感来源于大语言模型LLM的成功经验:随着模型规模和训练数据量的指数级增长,模型开始展现出以往小模型难以实现的新兴能力(emergent abilities)。
这不禁让人思考:这种Scaling Law在视觉任务中是否同样适用?
也就是说,当我们不断扩大视觉模型的参数量和训练数据时,它是否也会出现类似语言模型的能力跃迁——生成更丰富、更稳健、更加通用的视觉特征?
DINOv3正是在这种背景下应运而生,它通过大规模训练和精心设计的自监督策略,尝试验证视觉领域的scaling law,同时解决以往扩展SSL模型时常见的不稳定问题。
二、DINOv3的特性
既然想要训练一个大模型,那必然要构建一个参数量较大的模型架构,并且给这个模型喂大量的训练数据,并搭配合适的训练技巧。
2.1 大规模数据集制作
大型基础模型的成功很大程度上依赖于大规模的训练数据,但是,单纯增加数据量并不保证性能提升,还需要保证:
- 数据多样性与平衡:确保不同视觉概念均被覆盖
- 数据有用性:与下游任务相关的图像内容。
DINOv3构建了一个大规模预训练数据集,总数据量约170亿张图片。通过结合聚类和检索两种方法,DINO在泛化能力和下游性能之间取得了平衡,具体实现步骤如下:
1 | 1. 聚类:使用DINOv2将图像压缩成特征向量,执行层级k-means聚类,然后应用平衡抽样算法,生成16.89亿张精选图片(LVD-1689M),覆盖网络上所有视觉概念。 |
2.2 大规模自监督训练
2.2.1 DINOv3继承了DINOv2的特性
DINOv3继承了DINOv2的多裁剪策略(全局CLS token loss和局部patch token loss),以及Sinkhorn-Knopp中心化策略和Koleo正则化。
2.2.2 DINOv3在大规模训练时遇到的问题
不一样的是,DINOv3将参数量由DINOv2的1.1B增加到了7B,并采用了在LLM中被广泛使用的ROPE,同时引入了一个新的loss约束:Gram Anchoring,这是DINO
v3新引入的一个损失函数,专门来解决密集任务能力退化的问题。
过程是这样的,首先为了获得更好的DINOv3训练效果,需要尽可能迭代更多次。然而,在实验中作者发现,在达到一定迭代次数后,模型对于全局表征的能力在变强,但是对于局部的细节感知能力却在急剧退化,从而导致下游的密集预测任务效果不佳,比如语义分割。
为了更好地理解这种性能下降,作者通过可视化块间余弦相似度来分析patch特征的质量。下图展示了主干网络输出的patch特征与参考patch(红色高亮)之间的余弦相似度图。在20万次迭代后,相似度图平滑且局部化良好,表明patch级表征具有一致性。然而,在60万次迭代及以上后,相似度图性能显著下降,与参考patch高度相似但无关的patch数量不断增加。patch级一致性的丧失与密集任务性能的下降相关!
虽然将全局DINO损失与局部iBOT损失相结合已开始解决这个问题,但实验发现这种平衡并不稳定,随着训练的进行,全局表征将占据主导地位。
为了减轻密集任务的下降,作者提出了一个专门设计的新目标函数,用于正则化 patch特征并确保良好的patch级一致性,同时保持较高的全局性能。
接下来具体看一下这个Gram Anchoring。
2.2.3 用于优化patch特征一致性的loss:Gram Anchoring
Gram矩阵是多个patch特征之间的两两点积矩阵,能反映局部特征的相似性结构。
作者从Gram矩阵出发,在特征的相似性结构上对patch一致性进行约束,而非直接约束具体的特征向量。只要保持相似性结构不变(Gram 矩阵匹配),patch局部特征本身可以自由移动,从而不抑制判别能力。
给定一幅图像包含$P$个 patch、特征维度为$d$。
- 学生网络局部特征矩阵(L2归一化):$\mathbf{X}_S \in \mathbb{R}^{P\times d}$
- Gram 老师(早期迭代的教师网络,稠密性质更好)对应特征矩阵:$\mathbf{X}_G \in \mathbb{R}^{P\times d}$
Gram loss如下:
$$\mathcal{L}_{\text{Gram}} = \lVert \mathbf{X}_S \mathbf{X}_S^\top - \mathbf{X}_G \mathbf{X}_G^\top \rVert_F^2$$
由于Gram Anchoring loss约束的是图像整体的结构相似性,因此仅在全局裁剪视图(比如2张global crops)上计算 $\mathcal{L}_{\text{Gram}}$。为了提高效率,作者选择在 1M 次迭代之后才启用该损失,但即使在训练后期加入,它依然能够有效修复退化的局部特征。与此同时,Gram教师模型会每隔10k次迭代更新一次,并与主EMA教师保持对齐,从而进一步提升训练稳定性与性能。
Gram Anchoring loss的代码实现如下:
1 | import torch |
2.2.4 DINOv3的最终训练目标总结
根据Gram loss开始作用的时间,可以将DINOv3的训练过程分为两个阶段:
阶段1主要是常规的自监督对比学习目标,和 DINOv2 类似:
- 全局表征:$\mathcal{L}_{\text{DINO}}$
- 局部一致性:$\mathcal{L}_{\text{iBOT}}$
- Koleo正则化:$\mathcal{L}_{\text{DKoleo}}$
因此基础阶段的 Loss 可以写成:
$$
L_{\text{Base}} = w_D * L_{\text{DINO}} + L_{\text{iBOT}} + w_{DK} * L_{\text{DKoleo}}
$$
在这个阶段,学生模型学习全局和局部特征,但尚未引入Gram Anchoring。
阶段一训练收敛后,阶段二引入Gram Anchoring Loss来修复和增强patch级局部特征:
$$
L_{\text{Ref}} = w_D * L_{\text{DINO}} + L_{\text{iBOT}} + w_{DK} * L_{\text{DKoleo}} + w_{\text{Gram}} * L_{\text{Gram}}
$$
Gram loss只在global crops上计算,并在1M 次迭代后启用,每10k 次迭代更新Gram教师以与EMA教师对齐。
2.2.5 DINOv3的其它trick
上面讲过,在训练自监督视觉模型时,学生网络学习到的局部patch特征容易退化。虽然原本的Gram loss可以约束patch之间的相似性,但如果图像分辨率太低,patch特征本身就粗糙了,效果有限。
因此,作者提出用更高分辨率的图像生成教师特征,再把这种高质量的特征蒸馏给学生。
具体来说,将输入的视图resize到高分辨率,比如256x256 resize到512x
512,然后输入给Gram教师,教师网络预测结果,再将这个结果下采样resize回去,据此计算与学生网络之间的Gram Anchoring Loss。
三、Post-Training
在训练完成后,DINOv3还进行了一系列扩展,包括高分辨率自适应,高效模型蒸馏,并进一步扩展到文本对齐。
3.1 高分辨率自适应
虽然模型主要在较小分辨率(256)下训练以兼顾速度和效果,但实际应用往往需要处理更高分辨率(如512×512及以上)以捕捉更丰富的空间信息。为此,引入了高分辨率适应训练:在训练中采样不同大小的全局裁剪和局部裁剪,额外训练10k次迭代,从而让模型适应多分辨率输入。
此外,该阶段关键在于Gram Anchoring:使用7B教师模型作为Gram教师,通过约束特征的Gram矩阵,使模型在不同空间位置保持一致且稳健的局部特征相关性。这一操作确保在高分辨率输入下,模型不会因局部特征不稳定而性能下降。
实证结果显示,这一针对性的高分辨率步骤显著提升了模型整体质量,使其在ImageNet分类、ObjectNet OOD等任务中均有所改善,尤其在高分辨率输入下,局部特征质量提高明显。同时,经过适应训练的模型能够处理远高于训练最大分辨率(比如768)的图像,实现稳定的高分辨率推理。
3.2 高效模型蒸馏
为了能够真正地将DINOv3应用到各种设备上,需要将能力其蒸馏到小模型中。由于教师模型推理成本高,因此采用了一种并行蒸馏流水线:多个学生同时训练,共享教师模型推理结果。
这种方式的优点是增加学生数量不会显著增加总教师推理成本,可加快整体蒸馏速度。
3.3 文本对齐
传统的CLIP模型只做全局图文对齐,零样本能力强,但对局部、细粒度特征的捕捉能力有限。新方法发现,如果使用预训练的自监督视觉骨干网络(如DINOv3),可以实现更精细的图文对齐,同时节省计算,因为视觉特征已经学好了。
DINOv3通过冻结视觉骨干并训练文本编码器(加两个小Transformer层,让视觉特征有一定调整空间),利用对比学习将图像的全局与局部特征与文本描述对齐,从而在开放词汇、多模态任务中实现高效、精细的图文匹配。
其中的文本编码器从头训练,目标是让图像和对应的文本描述匹配,这一阶段采用了对比学习的技术。
在匹配文本嵌入之前,把视觉骨干DINOv3的patch特征进行均值池化([B,N,D]–>[B,D])和CLS token([B,2,D]–>[B,D])拼接起来,作为视觉特征,从而可以同时对齐全局特征和局部特征,在密集预测任务(如语义分割)上效果更好,无需额外手工调参。
以上就是关于DINOv3的全部介绍。






