您现在的位置是:首页 >技术杂谈 >DINOv2:在没有监督的情况下学习鲁棒的视觉特征网站首页技术杂谈
DINOv2:在没有监督的情况下学习鲁棒的视觉特征
文章目录
摘要
最近在自然语言处理中对大量数据进行模型预训练的突破为计算机视觉中类似的基础模型开辟了道路。这些模型可以极大地简化图像在任何系统中的使用,因为它产生了通用的视觉特征,也就是说,无需微调就可以跨图像分布和任务工作的特征。这项工作表明,现有的预训练方法,特别是自监督方法,如果在来自不同来源的足够多的精心整理的数据上训练,可以产生这样的特征。我们重新审视现有的方法,并结合不同的技术,在数据和模型大小方面扩展我们的预训练。大多数技术贡献旨在加速和稳定大规模培训。在数据方面,我们提出了一个自动管道来构建一个专用的、多样化的、经过管理的图像数据集,而不是像自我监督文献中通常做的那样未经管理的数据。在模型方面,我们用1B个参数训练了一个ViT模型(Dosovitskiy等人,2020),并将其提炼成一系列较小的模型,这些模型在图像和像素级别的大多数基准上超过了可用的最佳通用功能OpenCLIP (Ilharco等人,2021)。
1、简介
学习任务无关的预训练表示已经成为自然语言处理(NLP)的标准(Radford等人;Raffel等人,2020;Chowdhery等人,2022;Hoffmann等人,2022;Touvron等人,2023)。人们可以"按原样"使用这些特征,即无需微调,并在下游任务上实现明显优于特定任务模型产生的性能(Brown等人,2020)。这一成功得益于使用前置目标对大量原始文本进行预训练,如无需监督的语言建模(Radford et al., 2017)或词向量(Devlin et al., 2018)。
遵循NLP中的这种范式转变,我们预计类似的"基础"模型将出现在计算机视觉中(Bommasani等人,2021)。这些模型应该生成在任何任务上都可以开箱即用的视觉特征,无论是在图像级别(如图像分类)还是像素级别(如分割)。对这些基础模型最有希望的努力集中在文本指导的预训练上,即使用一种文本监督形式来指导特征的训练(Joulin等人,2016;Mahajan等人,2018;Radford et al., 2021)。这种形式的文本引导的预训练限制了可以保留的关于图像的信息,因为标题仅近似于图像中的丰富信息,而复杂的像素级信息可能不会出现在这种监督中。此外,这些图像编码器需要对齐的文本-图像语料库,因此,不能提供其文本对应的灵活性,即仅从原始数据中学习。
文本引导预训练的替代方法是自监督学习(Caron等人,2018;Chen等人,2020;He等人,2021),仅从图像中学习特征。这些方法在概念上更接近于语言建模等前置任务,可以捕获图像和像素级别的信息(Caron等人,2021)。然而,尽管自监督学习具有学习通用特征的潜力,但大多数进展都是在一个小型精心设计的数据集ImageNet- 1k上进行预训练的背景下取得的(Russakovsky等人,2015)。有人尝试将这些方法扩展到ImageNet-1k之外(Caron等人,2019;Goyal等人,2021;2022a),但他们关注的是未经整理的数据集,这通常会导致特征质量的显著下降。这是因为缺乏对数据质量和多样性的控制,而这对于生成好的特征至关重要。
本文探讨了如果在大量策划数据上进行预训练,自监督学习是否有潜力学习通用的视觉特征。重新审视了现有的在图像和补丁层面学习特征的判别性自监督方法,如iBOT (Zhou等人,2021),并在更大的数据集的视角下重新考虑了它们的一些设计选择。我们的大多数技术贡献都是为在模型和数据规模扩展时稳定和加速判别式自监督学习而定制的。这些改进使所提出方法的速度比类似的判别自监督方法快2倍左右,所需内存少3倍,使其能够利用更长的训练和更大的批大小。
关于预训练数据,我们建立了一个自动管道,从大量未经整理的图像集合中过滤和重新平衡数据集。该管道受NLP中使用的管道的启发(Wenzek等人,2019),其中使用数据相似性而不是外部元数据,并且不需要人工注释。在实际环境中处理图像的一个主要困难是重新平衡概念,并避免在一些主要模式上过度拟合。在这项工作中,一种简单的聚类方法可以很好地解决这个问题。收集了一个小型但多样化的语料库,包含1.42亿张图像,以验证所提出方法。
最后,我们提供了各种预训练的视觉模型,称为DINOv2,在我们的数据上使用不同的视觉变形器(ViT) (Dosovitskiy等人,2016)架构进行训练。我们发布了所有的模型和代码,以便在任何数据上重新训练DINOv2。我们在各种计算机视觉基准上验证了DINOv2在图像和像素级别上的质量,如图2所示。我们得出的结论是,单独的自监督预训练是学习可转移的冻结特征的一个很好的候选者,与公开可用的最好的弱监督模型竞争。
2、相关工作
图像内自监督训练。第一组自监督方法侧重于从图像构建的借口任务,即从图像的其余部分中提取待预测图像的信号。这个想法在Doersch等人(2015)的工作中变得普遍,他们通过预测给定补丁的上下文进行训练。许多其他借口任务是基于重新着色图像(Zhang等人,2016),预测转换(Gidaris等人,2018),绘制(Pathak等人,2016)或补丁重新排序(Noroozi & Favaro, 2016;Misra & Maaten, 2020)。最近,基于补丁的架构(如vit)的出现导致了对预训练的重新审视(He et al., 2021;Bao等,2021;El-Nouby等人,2021),可能在特征空间(Assran等人,2023;Baevski et al., 2022)。特别有趣的是,He等人(2021)表明,掩码自编码器(MAE)学习的特征在对下游任务进行微调时提供了实质性的改进。MAEs的这一特性在视频(Tong et al., 2022)、音频(Xu et al., 2022)和其他模式(Girdhar et al., 2022)上得到了进一步验证。然而,他们的功能需要监督微调,而我们的功能开箱即用。
判别式自监督学习。第二种工作,与我们的更接近,是使用图像或图像组之间的判别信号来学习特征。这一系列方法源于早期的深度学习工作(Hadsell等人,2006),但随着实例分类方法的出现而流行起来(Dosovitskiy等人,2014;Bojanowski & Joulin, 2017;Wu等人,2018)。基于实例级目标进行了一些改进(hsamnaff et al., 2019;He et al., 2020;Chen & He, 2020;Chen et al., 2020;Grill等人,2020;Caron et al., 2021)或聚类(Caron et al., 2018;Asano et al., 2020;Caron et al., 2020)。这些方法在ImageNet等标准基准上提供了性能冻结特征(Russakovsky et al., 2015),但它们很难扩展到更大的模型尺寸(Chen et al., 2021)。在这项工作中,我们在大型预训练数据集和模型的背景下重新审视这些方法的训练。特别是,我们在Zhou等人(2021)的基础上构建,我们发现它特别适合扩展。
缩放自监督预训练。越来越多的工作关注自监督学习在数据和模型大小方面的扩展能力(Caron等人,2019;Goyal等人,2019;田等,2021;Goyal et al., 2022a)。这些工作大多使用大量未经整理的数据在没有监督的情况下训练模型。他们证明了判别方法与数据的尺度,但由于预训练数据的质量较差,大多数结果是通过微调特征获得的。特别有趣的是,Goyal等人(2021)也表明,在给定足够的预训练数据的情况下,这些方法受益于模型大小的缩放。当我们专注于产生最好的预训练编码器时,这一行的工作质疑自我监督方法在任何数据上工作的能力。
自动数据管理。我们的数据集构建借鉴了图像检索社区(Weinzaepfel et al., 2021;radenovic et al., 2018b;Berman等人,2019;Douze et al., 2009;Tolias et al., 2015;Revaud et al., 2019)。特别是,在半监督学习的背景下,已经研究了使用检索来增强训练集(Yalniz et al., 2019)。同样,其他人也使用标签或其他元数据来过滤未经管理的数据集(Mahajan et al., 2018;Radford et al., 2021)。与这项工作不同,我们不使用元数据或监督来过滤图像并利用图像之间的视觉相似性。我们的方法受到文本管理管道(Wenzek等人,2019)的启发,其中在维基百科上训练语言模型以对从未经管理的来源提取的文本进行评分。
3、Data Processing
我们通过从大量未经整理的数据池中检索与几个整理数据集中的图像接近的图像来组装整理好的LVD-142M数据集。我们将在下面描述数据管道中的主要组件,包括管理/非管理数据源、图像重复删除步骤和检索系统。我们的管道不需要任何元数据或文本,直接处理图像,如图3所示。我们建议读者参阅附录A以了解有关我们方法的更多细节。
数据源。我们对精选数据集的选择详见附录(表15),其中包括ImageNet-22k、从ImageNet-1k切分的训练集、谷歌Landmarks和几个细粒度数据集。对于未经整理的数据源,我们从公开可用的抓取网络数据存储库中收集原始的未经过滤的图像数据集。从存储库中的每个网页中,我们从标记中提取图像的URL链接。我们丢弃不安全或受域限制的url,并对下载的图像进行后处理(PCA哈希重删,NSFW过滤和模糊可识别的面孔)。这将产生12亿个独特的图像。
重复数据删除。我们将Pizzi等人(2022)的复制检测管道应用于未整理的数据,并去除近重复的图像。这减少了冗余并增加了图像之间的多样性。我们还删除了本工作中使用的任何基准的测试或验证集中包含的接近重复的图像。
自监督图像检索。我们通过从我们的非策划数据源中检索与我们策划源中的图像接近的图像来构建我们的策划预训练数据集。为了做到这一点,我们首先使用在ImageNet-22k上预训练的自监督ViT-H/16网络计算图像嵌入,并使用余弦相似度作为图像之间的距离度量。然后,我们对未整理的数据执行k-means聚类。给定一个用于检索的查询数据集,如果它足够大,我们为每个查询图像检索N(通常为4)个最近邻。如果它很小,我们从每个查询图像对应的集群中采样M个图像。我们通过目视检查检索结果来调整N和M。
实现细节。我们的管道的重复数据删除和检索阶段依赖于Faiss库(Johnson等人,2019)来有效地索引和计算最近嵌入的批量搜索。特别是,我们大量利用其对gpu加速索引的支持,使用带有产品量化代码的反向文件索引(Jegou等,2010)。整个处理过程分布在20个节点的计算集群上,配备8个V100-32GB的gpu,生成LVD-142M数据集的时间不超过两天。
4、判别自监督预训练
我们使用一种判别式自监督方法来学习特征,该方法可以看作是DINO和iBOT损失与SwAV中心的结合(Caron等人,2020)。我们还添加了一个正则化器来扩展特征和一个短的高分辨率训练阶段。我们很快地介绍了这些方法中的每一种,但是更多的细节可以在相关的论文中找到,或者在我们的开源代码中找到。
- 图像级目标(Caron et al., 2021)。我们考虑了从学生和教师网络中提取的特征之间的交叉熵损失。这两个特征都来自ViT的类标记,从同一图像的不同裁剪中获得。我们学习学生的参数,并使用过去迭代的指数移动平均来构建教师(He et al., 2020)。
- 补丁级目标(Zhou et al., 2021)。我们随机屏蔽了一些给学生的输入片段,而不是给老师的。然后,我们在每个被屏蔽的patch上的两个网络的patch特征之间添加交叉熵损失。这种损失与图像级损失相结合。
- 解开两个目标之间的头部重量。我们观察到,将与两个目标相关的权重联系在一起,会使模型在补丁级别上欠拟合,而在图像级别上过拟合。解开这些权重解决了这个问题,并提高了两个尺度上的性能。
- Sinkhorn-Knopp定心(Caron et al., 2020)。阮氏等人(2022)建议用SwAV的Sinkhorn-Knopp (SK)批归一化方法取代DINO和iBot的teacher softmax-居中步骤(Caron et al., 2020)。我们运行Sinkhorn-Knopp算法步骤进行3次迭代。对于学生,我们应用softmax归一化。
- KoLeo正则化器(Sablayrolles等人,2018)。KoLeo正则器源自Kozachenko-Leonenko微分熵估计器(见beirant et al. (1997);Delattre & Fournier(2017)),并鼓励在批处理中使用统一的特征跨度。给定n个向量的集合 ( x 1 , … , x n ) left(x_{1}, ldots, x_{n} ight) (x1,…,xn),则定义为 L koleo = − 1 n ∑ i = 1 n log ( d n , i ) mathcal{L}_{ ext {koleo }}=-frac{1}{n} sum_{i=1}^{n} log left(d_{n, i} ight) Lkoleo =−n1∑i=1nlog(dn,i),其中 d n , i = min j ≠ i ∥ x i − x j ∥ d_{n, i}=min _{j eq i}left|x_{i}-x_{j} ight| dn,i=minj=i∥xi−xj∥是 x i x_i xi与批内任意其他点之间的最小距离。在计算正则化之前,我们还对特征进行了 ℓ 2 ell_{2} ℓ2归一化。
- 调整分辨率(Touvron et al., 2019)。提高图像分辨率是像素级下游任务的关键,例如分割或检测,其中小物体在低分辨率下消失。然而,在高分辨率下训练对时间和内存的要求很高,因此,我们在预训练结束的短时间内将图像的分辨率提高到518 × 518。
5、高效执行
我们考虑了在更大范围内训练模型的几个改进。我们使用PyTorch 2.0在A100 gpu上训练模型。该代码还可以与用于特征提取的预训练模型一起使用。我们的模型的细节在附录表17中。在相同的硬件条件下,与iBOT实现相比,DINOv2代码的运行速度提高了2倍,只需要1/3的内存。
快速高效的注意力。我们实现了自己版本的FlashAttention (Dao et al., 2022),以提高自注意层的内存使用和速度。我们的版本在所有考虑的情况下都与原始版本相当或更好,同时涵盖了更多的用例和硬件。由于GPU硬件的特点,当每个人头的嵌入维数是64的倍数时,效率是最好的,当整个嵌入维数是256的倍数时,矩阵操作甚至更好。因此,为了最大限度地提高计算效率,我们的ViT-g架构与Zhai等人(2022)提出的架构略有不同,我们使用1536的24个头(64 dim/head )的嵌入维度,而不是1408的16个头(88 dim/head )。我们的实验没有显示出最终精度的显著差异,我们的ViT-g骨干计数1.1亿个参数。
自注意力中的嵌套张量。我们的版本还允许在相同的前向传递中运行全局裁剪和局部裁剪(具有不同数量的补丁令牌),与在以前的实现中使用单独的前向和后向传递相比,可以显著提高计算效率。我们设置的底层组件可在xFormers库中获得(Lefaudeux等人(2022))。
有效的随机深度。我们实现了一个改进版本的随机深度(Huang et al., 2016),它跳过了丢弃残差的计算,而不是掩盖结果。由于特定的融合核,这节省的内存和计算的比例大约等于Drop率。在高Drop率下(工作中:d = 40%),这将大大提高计算效率和内存使用率。该实现包括在批处理维度上随机洗牌B个样本,并将第一个(1−d) × B个样本切片用于块中的计算。
全分片数据并行(FSDP)。使用AdamW优化器最小化我们的目标需要4个float32精度的模型副本-学生,教师,优化器第一个动量,优化器第二动量。对于像我们的ViT-g这样有10亿个参数的模型,总共需要16gb的内存。为了减少每个GPU的内存占用,我们跨GPU拆分模型副本,即使用PyTorch实现的FSDP在GPU上分片16 GB。因此,模型大小不受单个GPU内存的限制,而是受跨计算节点的GPU内存总和的限制。Pytorch实现的FSDP带来了第二个优势,它节省了跨gpu通信成本:权重分片按照优化器的要求以float32精度存储,但广播权重和减少梯度是在float16精度下为骨干完成的(MLP头部梯度在float32中减少以避免训练不稳定)。与用于分布式数据并行(DDP)的float32梯度全减少操作相比,这导致通信成本降低了大约50%,DDP用于其他自监督预训练方法(Caron等人,2021;周等人,2021)。因此,当缩放GPU节点数量时,训练过程比使用float16自动转换的DDP更有效。总的来说,Pytorch-FSDP混合精度在我们遇到的几乎所有情况下都优于自动投射的DDP。
蒸馏模型。我们对训练循环的大多数技术改进旨在改进对大量数据的大型模型的训练。对于较小的模型,我们从最大的模型vitg中提取它们,而不是从头开始训练它们。知识蒸馏(Hinton et al., 2015)旨在通过最小化一组给定输入的两个输出之间的距离,用较小的模型再现大模型的输出。由于我们的目标函数是从教师网络到学生网络的一种蒸馏形式,我们利用了相同的训练循环,但有一些例外:我们使用较大的模型作为冻结的教师,保留学生的备用EMA作为我们的最终模型,去除掩模和随机深度,并且,在两个全局裁剪上应用iBOT损失。在我们的实验中,我们观察到这种方法比从头开始训练获得了更好的性能,即使对于ViT-L也是如此。我们的蒸馏方法最终接近Duval等人(2023)所描述的方法,除了我们没有修改蒸馏的损失项和评估学生的EMA。
6、消融研究
我们提出了一组消融,以经验验证我们管道的不同组成部分:第4节中描述的技术修改,预训练数据和模型蒸馏的影响。我们将考虑第7节中描述的各种下游任务。
6.1、改进的训练方法
该方法通过将其与第4节中描述的几个现有组件相结合,改进了iBOT方法。为评估其重要性,训练了多个模型,并依次将组件添加到基线iBOT模型中。我们报告了在ImageNet-1k验证集上使用k-NN和线性的Top-1精度,如表1所示。通常,我们观察到每个组件都提高了k-NN或线性探测的性能,甚至在大多数情况下都提高了性能。在我们的经验中,只有LayerScale和随机深度会导致线性探测的性能下降,但会显著提高训练的稳定性。
6.2、预训练数据源
特征的质量直接关系到预训练数据的质量。在本实验中,我们将LVD-142M与ImageNet-22k(一种常用的预训练数据集)或直接使用原始和未经整理的数据进行比较,探讨LVD-142M的影响。对于未经整理的数据集,我们从与LVD-142M相同的数据源中随机抽取1.42亿张图像。我们在每个数据集上训练相同迭代次数的ViT-g/14。我们还包括一个ImageNet-22k的变体,该变体通过删除ImageNet-1k (INet-22k INet-1k)的同义词集而获得。我们在表2中报告了比较。
最突出的观察是,在大多数基准测试中,在经过整理的图像集上进行训练比在未经整理的数据上进行训练效果更好。这证实了管理数据的好处,即使在自我监督预训练的情况下也是如此。与在ImageNet-22k上训练的模型相比,在LVD-142M上的训练在所有基准测试上都优于ImageNet-1k。这证实了在更多样化的图像集上进行训练可以提高该数据集未涵盖的域的特征质量。总的来说,这种消融的结论是,我们的数据集提供了不同类型图像的良好平衡,从而获得了最佳的总体性能。
6.4、Loss的组成
我们通过递增添加方式来验证第6.1节中提出的技术改进。如果我们去掉特定的损失项,本节将从我们表现最好的模型开始,分析观察到的性能影响。消除了KoLeo损失的重要性和掩码图像建模项的影响。本文报告了使用线性分类器在ImageNet-1k上的性能,使用线性分类器的ADE-20k分割,以及在Oxford-M上的最近邻图像检索。表3a显示了使用KoLeo损失的影响。实例检索性能提高了8%以上,证实了该词条有助于在输出空间中扩展特征。同时,其他指标不会受到这种正则化的影响。在表3b中,我们展示了使用iBOT中的掩码图像建模术语的影响。这一术语对于密集预测任务至关重要,可以导致近3%的性能提升。
6.5、知识蒸馏的影响
对于小型架构,提取更大的模型,而不是从头开始训练。我们使用第5节中描述的蒸馏程序。通过将从头训练的ViT-L/14与从图5中的12个以上基准中提取的ViT-g/14进行比较,评估了这种方法的有效性。我们还报告了用于蒸馏作为背线的ViT-g/14的性能。蒸馏模型在12个基准中的10个上优于从头训练的模型,验证了对小型模型的预训练方法。
6.6、分辨率的影响
测量了预训练期间改变分辨率对图像和块级特征性能的影响。考虑使用224 × 224或416 × 416的固定分辨率从头训练的模型,以及一个224 × 224的从头训练的模型,然后在416 × 416处恢复10k多次迭代。高分辨率训练是计算密集型的,因此在一个小的设置上进行这种消融:在ImageNet1k上训练的ViT-L/16。在图6中,我们报告了线性探索在ImageNet-1k和ADE-20k上的性能,在各种分辨率下进行了评估。在高分辨率图像上训练的模型在各种分辨率下表现最好,但代价很高:416的训练比224的训练大约多3倍的计算量。另一方面,在训练结束时,仅在高分辨率进行10k次迭代的训练就可以达到同样的效果,并且只需要一小部分计算。因此,我们在训练结束时包括这一步,而不是从头开始高分辨率训练。
7、结果
在本节中,提出了对所提出模型在许多图像理解任务上的经验评估。评估了全局和局部图像表示,在类别和实例级识别、语义分割、单目深度预测和动作识别方面。我们将在附录c中详细列出基准测试。所提出的自监督特征在很大程度上超过了当前的技术水平。其次,它们在大量任务上匹配或超过了弱监督方法的性能。
基线。在我们的比较中,我们使用两种模型作为基线。与公开可用的表现最好的自监督模型进行了比较。首先,对MAE (He等人,2021年)、DINO (Caron等人,2021年)、SEERv2 (Goyal等人,2022a)、MSN (Assran等人,2022年)、EsViT (Li等人,2022a年)、Mugs (Zhou等人,2022年)和iBOT (Zhou等人,2021年)进行评估。当为一个给定的方法提出了几种架构变体时,报告了在ImageNet-1k上导致最佳top-1精度的结果。报告了开源弱监督模型的性能,如CLIP (Radford等人,2021年)、OpenCLIP (Ilharco等人,2021年)和SWAG (Singh等人,2022年)。在ImageNet-1k上评估模型时,我们报告了上述每种方法的性能。对于所有其他评估,我们报告了SSL中四个性能最好的模型。此外,我们报告了在弱监督情况下表现最好的OpenCLIP-G,以供参考。
7.1 ImageNet分类
作为第一次评估,探索了该模型在ImageNet-1k分类数据集上产生的整体图像表示的质量。通过在冻结的骨干上训练一个简单的分类器来评估特征的质量,并且没有对骨干权重进行微调。在之前的工作中,为了简单起见,使用了一个线性模型,确保了可重现的评估,尽管类别可能不是线性可分的。由于大多数SSL方法是使用ImageNet-1k验证性能作为调试信号开发的,因此我们还报告了ImageNet-ReaL和ImageNet-V2上的top-1准确性。为了报告这种额外的验证性能,对于所有模型,我们使用我们的代码运行评估。我们将固定功能与表4中最好的公开可用SSL功能进行比较,而不考虑架构或预训练数据。在线性评估方面,本文提出的组件比之前的最先进水平(在ImageNet-22k上训练的iBOT ViT-L/16)有了非常显著的改进(+4.2%)。同时,我们还看到,所提出方法在备选测试集上的性能提高更大,表明泛化能力更强。我们将在附录b - 3中详细介绍线性估计。
我们离弱监督模型还有多远?我们还想验证所提出的特征与最先进的开源弱监督模型相竞争。在ImageNet- 1k上,使用线性评估与三种具有几种架构变体的现成方法进行了比较。对于所有模型,在确保我们的数字与技术报告和论文中报告的数字相匹配后,我们使用我们的代码运行线性评估。我们在表4中显示了这次评估的结果。backbone的性能超过了OpenCLIP的ViT-G/14架构(+0.3%)和EVA-CLIP的ViT-G/14架构(+0.1%)。在ImageNet-V2测试集上的性能显著提高(与EVA-CLIP相比提高了1.1%),表明泛化能力更好。在本节的其余部分,我们报告OpenCLIP-G作为弱监督模型的参考。
我们可以微调编码器吗?本文质疑在对特定数据集进行监督微调时,模型产生高质量冻结特征的能力是否会影响其性能。虽然这不是本文的核心,但这个实验表明,我们是否不由自主地将模型专门用于冻结特征的线性评估设置。为了运行这种完整性检查,我们应用了Touvron等人(2022)的微调管道,而不调整超参数。在表5中,我们表明,当对主干进行微调时,ImageNet-1k验证集上的Top-1精度提高了2%以上。在使用分辨率为224和448的模型时都是如此。通过调整微调的超参数可以获得进一步的增益,但这超出了此健全检查的目标。尽管如此,我们的最佳微调性能(88.9%)仅比Chen et al.(2023)获得的绝对水平(91.1%)低几个百分点(−2.2%)。由于DINOv2带来了在线性和微调设置中都很强的功能,所提出方法的一个强大特性是微调是可选的。
鲁棒性分析。为了补充研究,并探讨特征的泛化性,在域泛化基准上评估了用线性分类头训练的ImageNet-1k模型。我们使用上述性能最好的线性分类器,并简单地在这些基准上运行推理。请注意,文献中的大多数结果都是通过在ImageNet-1k上进行端到端微调的模型获得的。我们将实验结果显示在表6中。与最先进的SSL方法相比,所提出模型显示出了更好的鲁棒性(与iBOT相比,在A上+29.6%,在R上+22.1%,在Sketch上+23.0%)。该模型还改进了imagenet上最好的弱监督模型,但在R和Sketch上落后。
7.2、额外的图像和视频分类基准
在本节中,我们将研究在下游分类基准上的特征泛化。在这种情况下,我们考虑两组评估。一方面,我们使用了大型和细粒度的数据集,如naturalist和Places205。另一方面,我们使用SimCLR最初提出的12个图像分类任务(Chen等人,2020)。对于iNaturalist 2018、iNaturalist 2021和Places205,我们使用数据增强训练一个线性分类器,如第7.1节所示。我们在表7中报告了这三个数据集的top-1精度。有趣的是,所提出模型在两种iNaturalist变体上的表现都明显优于OpenCLIP ViT-G/14(2018年和2021年分别为+8.6%和+9.7%),在排名205(−2.3%)上略有落后。
在第二组评估中,我们测量了模型在视频动作识别上的性能,即使我们的特征没有在视频上训练过。我们在三个数据集上评估了特征,分别是UCF- 101 (Soomro等人,2012)、Kinetics-400 (Kay等人,2017)和Something-Something v2 (Goyal等人,2017)。为了进行评估,我们在视频中选择8个均匀间隔的帧,并在UCF和K-400的特征平均值上训练一个线性分类器。对于SSv2,我们选择连接以保留更多的时间信息,而不是特征平均。对于每个数据集,我们测量平均准确率并将结果报告在表7中。在自监督方法中,我们的模型明确地设置了新的技术水平。此外,该模型与OpenCLIP特征在UCF和Kinetics上的精度相匹配(分别为+0.1%和+0.5%),并明显优于它们在SSv2上的精度(+2.5%)。这特别有趣,因为SSv2需要对视频帧有更丰富的理解。
最后,在表8中,我们在Chen等人最初提出的12个迁移分类基准上比较了选定的冻结特征。这个基准涵盖场景、物体(食物、汽车、飞机)和纹理。我们用CUB替换了Birdsnap数据集,因为前者不能完全公开。我们遵循Chen等人(2020)概述的实验方案,即在预计算的特征上训练逻辑回归。所提出模型的性能明显优于最先进的SSL模型,在斯坦福汽车(与迪诺ViT-B/8相比+14.8%)和FGVC飞机(与iBOT ViT-L/16相比+14.8%)上的差异最为显著。尽管这些基准支持文本引导的预训练,但所提出的特征在大多数分类基准上仍与OpenCLIP有竞争力,除了少数数据集,特别是SUN(−5.3%)和Cars(−4.7%)。
7.3、实例识别
在本实验中,使用非参数方法在实例级识别任务上探索了该模型。数据库中的图像根据它们与查询图像的余弦相似度进行排序。我们评估了我们的模型,并与巴黎和牛津的基线进行了比较,这是里程碑式的识别基准。我们还在大都会博物馆的艺术品数据集Met和阿姆斯特丹进行了评估,其中包含与阿姆斯特丹档案图像匹配的街景图像。我们通过计算平均精度来衡量性能,并将结果报告在表9中。我们看到,我们的特征的性能明显优于SSL(在Oxford-Hard上mAP +41%)和弱监督(在Oxford-Hard上mAP +34%)的特征。有趣的是,我们的特征在不同任务粒度上都表现良好,无论是在类别级别还是实例级别。对于强大的现成计算机视觉功能来说,这是一个理想的属性。
7.4、密集识别任务
在几个密集的下游任务上探索了从网络中提取的块级特征的质量。在几种情况下考虑了语义图像分割和单目深度估计,并在每个数据集上进行了评估。
语义分割。对于我们的语义分割评估,我们考虑两种不同的设置。线性:训练线性层以从patch token预测类logits。它用于产生一个低分辨率的logit图(例如,对于patch大小为16的模型,为32x32),然后将其上采样到全分辨率(512x512)以获得分割图。这个过程非常简单,但不能轻易产生高分辨率的分割。+ms:线性设置的增强版本。我们连接最后4层的patch token,使用640的更大图像分辨率,并使用多尺度测试时增强来改善预测。我们在表10中报告了我们的模型变体的性能,以及在三个数据集上两种设置下的基线。
该模型在所有数据集和所有设置上都表现出非常好的性能。有趣的是,使用+ms的评估与使用Upernet解码器的全微调MAE (53.0 vs 53.6 mIoU)相当。这很令人惊讶,因为我们使用了一个简单得多的预测器。此外,在使用改进后的配方进行评估时,我们的最佳模型几乎与Pascal VOC上的最先进水平相匹配(86.2 mIoU与89.0 mIoU)。
在最后的实验中,我们冻结骨干,并将其插入vit适配器Chen et al.(2022)与Mask2former头(Cheng et al., 2022)。我们调整适配器和头部的权重,但保持骨干冻结:只有一小部分权重被调整,保持训练过程的轻量级。在ADE20k上达到60.2 mIoU,接近最先进的竞争水平,达到62.9 mIoU (Wang et al., 2022)。
深度估计。在三个单目深度估计基准上评估了所提出的块级特征:NYUd、KITTI和从NYUd到SUN3d的零样本迁移。我们遵循Li等人(2022b)的评估协议。我们考虑了三种不同的评估设置。Lin.1:我们提取冻结transformer的最后一层,并将[CLS]令牌连接到每个patch令牌。然后,我们将token双线性上采样4倍以增加分辨率。最后,我们通过将深度预测范围划分为256个均匀分布的桶来使用分类损失训练一个简单的线性层,并按照Bhat等人(2021)的方法使用线性归一化。Lin.4:我们使用与单层相同的协议,但将l ={3, 6, 9, 12}(对于ViT-S/B), l ={5, 12, 18, 24}(对于ViT-L), l ={10, 20, 30, 40}(对于ViT-g)。DPT:我们在冻结模型上使用DPT解码器(Ranftl等人,2021),并设置回归任务。我们按照每个架构的特征维度对头部的大小进行缩放。我们在表11中显示了所有基线、所有数据集和所有设置的结果。
从这个表中,我们可以看到我们的特性明显超过了现有的最好的SSL和WSL特性。有趣的是,从ViT-L中提取的iBOT特征优于使用ViT-G的OpenCLIP。这一观察结果支持了一种直觉,即基于字幕的特征学习无法学习像这样的微妙模式。此外,我们的模型使用DPT解码器和冷冻骨干,匹配或超过Li等人最近工作的性能(2022b)。最后,在SUN-RGBd上的域外泛化结果表明,我们的特征允许很好的域间迁移。在纽约大学室内场景上训练的深度预测模块可以很好地推广到SUN-RGBd的室外例子。
7.5、定性结果
在对我们的特征进行实证评估的最后一节中,我们提出了一些定性分析。
语义分割和深度估计。我们展示了一些密集预测评价的定性结果:图7中ADE20K的分割和图7中NYUd、KITTI和SUN RGB-D的深度估计。我们将DINOv2与OpenCLIP在每个数据集上使用线性分类器进行比较。虽然不完美,但使用我们的DINOv2主干的线性分割模型产生了很好的结果,并且在此评估设置下比OpenCLIP要好得多。实际上,OpenCLIP-G生成的分割掩码显示了许多工件和断开的组件。深度估计的定性结果清楚地说明了OpenCLIP与DINOv2之间的定量差距。这些结果强调了我们的特征,以及从OpenCLIP中提取的特征,能够线性分离复杂的信息,如深度,即使两者都不是用这种类型的信息训练的。然而,我们的特性带来了更平滑的深度估计,并减少了人工影响。一些物体,如SUN RGB-D图像上的椅子,完全被OpenCLIP忽略,并使用我们的特征正确定位。
Out-of-distribution泛化。我们在图8中展示了将深度预测和分割线性分类器应用于分布外示例的几个示例。定性结果支持我们的主张,即我们的特征在域之间转移。对动物图片或绘画的深度和分割的预测质量非常好,即使领域非常不同。
补丁特征的PCA。我们展示了对我们的模型提取的斑块特征进行主成分分析(PCA)的结果。在我们对第一个组件设置阈值后,我们只保留具有正值的补丁。这个过程可以将图像的主要对象与背景分开。我们在描绘同一类别的三幅图像上的剩余补丁上计算第二个PCA。我们用三种不同的颜色给前三个分量上色,结果如图1和图9所示。有两个有趣的观察结果:首先,我们的无监督前景/背景检测器,基于检测最高方差方向,表现非常好,能够描绘出图像中主要物体的边界。其次,其他组件对应于对象的“部分”,并且对于同一类别的图像匹配良好。这是一个新兴的属性——我们的模型没有经过训练来解析对象的部分。
补丁匹配。最后,我们通过跨图像匹配来探索我们的补丁级特征包含什么类型的信息。我们首先使用上面描述的过程检测前景对象。然后,我们计算从两幅图像中提取的斑块特征之间的欧氏距离,并通过求解分配问题对它们进行映射。为了减少匹配的数量,我们然后应用非最大抑制来只保留显著的匹配。在图10中,我们展示了一些此类匹配的示例。
我们观察到,这些特征似乎捕获了在不同物体或动物中服务于相似目的的语义区域的信息。例如,飞机的机翼与鸟的翅膀相匹配。我们还观察到,该模型对风格(图像与绘画)和姿势的大变化(参见大象)具有鲁棒性。
8、 公平与偏见分析
我们对模型进行了两次公平性评估。我们探索地理公平性和潜在的有害标签关联。对于这两种评估,我们都使用最大的ViT-g模型进行实验。
8.1、地域公平
我们使用Goyal等人(2022b)的评估协议,在De Vries等人(2019)中引入的Dollar Street数据集上评估地理公平性。这一基准比较了不同国家和不同收入水平的绩效。它包含来自54个国家289个家庭的16073张图片。这项任务是识别94个概念,这些概念在家庭之间因收入或地点而有视觉上的差异。在表12中,我们将我们的模型与SEERv2 (Goyal等人,2022a)进行了比较,SEERv2是一个在地理上不同的图像集上训练的模型。与SEERv2模型相比,我们的模型在不同地区和收入之间略微公平,并且明显优于Goyal等人(2022a)报告的监督基线。然而,我们仍然观察到地区之间的显著差异,特别是在非洲,与欧洲相比,我们的模型性能下降了25.7%。这表明我们的模式仍然偏向西方国家。同样,我们的模型对高收入家庭的表现明显好于低收入家庭,差异为31.7%。尽管有所改进,但我们观察到,我们的模型对西方国家的富裕家庭存在明显的偏见。
8.2、性别、肤色和年龄
在第二组评估中,我们质疑我们的模型如何对不同性别、肤色和年龄的人的图像进行分类(都是自我报告的)。我们遵循Goyal等人(2022b)的协议,其中我们在ImageNet-22k的619个类的子集上训练一个多类分类器。我们将619个类别分为四大类:人类、可能人类、非人类或犯罪。非人类和犯罪被认为是有害的。使用这个分类器,我们对来自Casual Conversations数据集(Hazirbas et al., 2021)的2955张图像进行推理,并将所有分配概率为0.1或更高的标签保持在前5名中。因此,我们可以为每个图像分配多个类。我们对原始的评估协议做了一个修改:我们不将梯度反向传播到主干,并保持其冻结。我们将我们的模型与表13中的SEERv2进行比较。
我们的模型经常将所有群体的图像分类为人类,在肤色上没有大的偏差。SEERv2和DINOv2都不能从非人类或犯罪元类别中预测有害标签(除了背景包含视觉上类似于监狱栏的两个实例)。我们看到我们的模型经常触发possible - human类。这个类是由ImageNet-22k中的对象构造的,这些对象通常与人类相关,例如Scarf、Glasses或Beard。我们的模型经常预测男性的可能人类类别,因为胡子类别的流行。在这项研究中,没有明确的模式表明对某一特定群体存在偏见。虽然这令人鼓舞,但我们也承认,对偏见进行更彻底的评估可能会暴露出我们模型中的缺陷。
9、评估模型训练对环境的影响
训练基础模型消耗大量的能量,导致二氧化碳的排放。Patterson等人(2021)提出了一种方法,根据数据中心及其电网的具体情况,报告模型训练期间碳排放的估计。该计算为用于模型训练的数据中心的设计和数据中心位置的选择提供了信息。这种方法需要了解用于培训的数据中心的具体情况,当涉及多个数据中心时,这可能会很复杂。此外,这些细节通常不在人工智能从业者的控制范围内,因此,当从业者对未来的培训做出技术决策时,这种方法的帮助不大。相反,在本节中,我们采用另一种方法,报告在位于美国的普通数据中心中重新训练类似模型的潜在碳排放。这种方法在以前的自然语言处理工作中使用过(Strubell et al., 2019;Touvron et al., 2023)在预训练方案之间建立同一基准的比较。更准确地说,我们将所有外生变量,即电网的电力使用效率(PUE)和碳强度因子的值固定为与Touvron等人(2023)相同的值,即PUE为1.1,碳强度因子为美国平均值0.385 kg CO2eq/KWh。我们使用与Patterson et al.(2021)相同的公式来估计潜在的能源消耗和碳排放。对于A100-80GB的功耗,我们取NVLink系统的热设计功率400W。我们在表14中报告了再培训一个DINOv2 vitg的潜在碳排放量。相比之下,如果在同一数据中心运行,重新训练OpenCLIP vitl或OpenCLIP vitg将分别需要22.4 MWh和118.9 MWh。这是10倍多的碳排放。请注意,这种比较对它们是不公平的,因为它们也并行地训练一个文本编码器,因此我们没有在表中报告它们。然而,对于那些只对训练视觉特征感兴趣的人来说,它给出了一个合理的指导方针:在这种情况下,从碳排放的角度来看,训练一个自监督模型是更可取的。当计划重用文本编码器时,训练文本引导模型仍然是有意义的。
整个项目的碳排放。此外,我们使用上述相同的网格估计整个项目的碳足迹在0.5k到1k tCO2eq之间。这个碳足迹以200k gpu日的数量级表示。排放的主要来源是模型的自我监督预训练。例如,viti -g模型(22k gpu -小时)的单次预训练排放3.7吨二氧化碳当量,而ImageNet-1k (1k gpu -小时)的微调排放0.2吨二氧化碳当量。这个估计只考虑了gpu的电力消耗,而忽略了其他排放,比如它们的制造和处理。
10、未来的工作和讨论
在这项工作中,我们提出了DINOv2,这是一系列新的图像编码器,在没有监督的情况下对大型仔细挑选并展览的数据进行预训练。这是SSL在图像数据上的第一次工作,它产生了视觉特征,可以在广泛的基准测试中缩小与(弱)监督替代方案之间的性能差距,而且不需要进行调优。从这些模型中产生了一些属性,比如对物体部分和场景几何形状的理解,而不管图像域是什么。我们期望在更大规模的模型和数据中出现更多的这些属性,类似于大型语言模型中的指令出现,并计划继续沿着这些轴进行缩放。本文还证明了这些视觉特征与简单的线性层分类器兼容——这意味着底层信息很容易获得。在未来的工作中,我们计划利用这种能力来训练一个支持语言的人工智能系统,该系统可以像处理单词标记一样处理视觉特征,并提取所需的信息来构建系统
A、数据处理
A.1、数据选择
我们对LVD-142M构建数据集的选择详见表15。该集合旨在为图像级和密集识别提供涵盖各种下游视觉任务的图像。
A.2、图像相似度
我们使用余弦相似度将图像特征(无论是我们的图像特征还是为重复数据删除而生成的特征)与以下相似度函数m进行比较:
$$
m(s, r)= ext { cosine-similarity }(f(s), f®)=frac{f(s) cdot f®}{|f(s)|{2}|f®|{2}}
$$
其中s和r是要比较的一对图像,f是生成特征的模型。
A.3 、数据去重
Self-deduplication。为了去重复我们的13 b张图像的未经整理的数据源,我们计算并使用Pizzi等人(2022)生成的嵌入,并检索每个图像的k = 64个最近邻(使用余弦相似度)。仅考虑相似度为>0.6的邻居,我们通过可扩展的不相交集数据结构实现提取相关k-NN图的连接分量。然后,我们只为重复图像的每个组件保留一个代表。这将产生包含1.1亿个图像的自重复数据删除数据源。相对重复数据删除为了减少冗余并正确评估特征的性能,我们丢弃了与评估数据集的训练和测试分割过于相似的自重复数据删除数据源的剩余图像。为了实现这一点,我们应用与自我重复数据删除类似的过程,具有更严格的相似性>0.45,这一次识别每个参考映像所属的重复组件(如果有的话)并完全丢弃它。这就产生了一个744M图像的自重复数据删除的数据源。
A.4、检索
我们采用两种方法通过检索增强数据集:基于样本和基于聚类。第一种方法是基于样本的,适用于大于1M张图像的数据集,包括为要检索的数据集的每个样本图像收集固定数量的k个最接近的图像,有效地尝试将数据集的大小乘以k。我们对谷歌Landmarks v2和ImageNet-22k使用k = 4,但更大的k = 32使此特定检索成为LVD-142M数据集的核心部分。对于较小的数据集,第二种方法是基于集群的,首先通过分布式k-means实现将我们的未经管理的数据源聚类到10万个独立的集群中。每个集群应该捕获不同类型的图像概念和内容。然后,我们从与检索数据集的3张以上图像相关联的每个集群中选择1万张图像。由于这可能导致某些数据集的检索图像数量非常大,因此我们将此类检索限制为最多1M图像,以保持LVD-142M中不同数据集之间的平衡。
B、实现细节
B.1、无监督的预训练
对于无监督预训练,我们建立在DINO和iBOT代码库上。我们使用表16中所示的超参数,表17中描述的ViT架构。
KoLeo正规化。我们在第一个全局裁剪的类令牌之间应用权重为0.1的KoLeo正则化器,用于GPU内的所有样本,在此步骤中没有交叉通信。
使用EMA更新教师模型。教师初始化状态与学生相同,是学生网络的指数移动平均,动量值为[0.994,1.0],遵循余弦调度。它在每个训练步骤结束时更新。
B.2、高分辨率适应
我们用预训练的权重初始化模型,然后用与原始预训练相同的过程训练它10k次迭代。所有的时间表都与最初的训练保持相同,但被压缩以适应10k次迭代。除了降低了基本学习率外,所有的超参数与第一次预训练时保持一致。
B.3、线性探测评价
对于线性探测,我们定义了3个评估参数:学习率,我们使用多少输出层,我们是否将平均池补丁令牌特征与类令牌连接(或仅使用类令牌)。我们用SGD训练线性层12500次迭代,使用随机调整大小的作物数据增强,并执行以下网格搜索:
- 学习率为{0.0001,0.0002,0.0005,0.001,0.002,0.005,0.01,0.02,0.05,0.1,0.2,0.3,0.5}
- 输出层为{1,4}
- 连接平均池标记为{yes, no}
然后我们报告在验证集上获得的最高精度值,这是通常的做法。注意,这种网格搜索并不昂贵,因为在每次迭代中,我们只在主干上执行一次推理,然后将输出提供给所有线性分类器(每个分类器执行单个矩阵乘法)。
C、用于评估的基准列表
我们在表18中显示了用于评估的基准测试和数据集列表。