【论文精读】DINOv2

摘要

       学习与特定任务无关的预训练表示已经成为自然语言处理的标准,这些表示不进行微调,即可在下游任务上明显优于特定任务模型的性能。其主要得益于使用无监督语言建模目标对大量原始文本进行预训练。 遵循NLP中的这种范式转变,以探索计算机视觉中类似的基础模型。 这种基础模型应该生成在任何任务上都可以开箱即用的视觉特征,无论是在图像级别如图像分类还是像素级别如分割。

       本文基于以往视觉判别式自监督学习方法(如IBT),提出如下改进:

  • 建立了一个自动pipeline,从大量未经整理的图像集合中利用图像相似性过滤及利用聚类方法平衡数据集模式分布收集了一个小型多样化的语料库,包含1.42亿张没有标签的图像
  • 开源了多种DINOv2预训练ViT,具备比以往自监督ViT更优的性能
  • 证明了在大量数据上进行预训练,自监督学习具有学习通用视觉特征的潜力
    image

       上图每一列都为对DINOv2的输出特征采用PCA后的主成分相互匹配的图像,每张图对应的右侧图为前3个主成分特征可视化的结果。观察到采用无监督训练的DINOv2具备优秀的特征提取能力,验证了上述的改进结论。
image

       上图为DINOv2在8种不同类型的视觉任务的性能,虚线为最好的弱监督方法的性能,淡橙色为自监督方法的性能,深粉色为弱监督方法的性能。观察到DINOv2大幅改善了以往的自监督学习方法,达到了与弱监督相当的性能。

数据处理

       本文提出的LVD-142M数据集由一个巨大的未整理的数据池中检索了几个精选数据集中的图像得到的图像数据集和被用于检索的几个精选数据集组成。详细流程如下图:
image

Data sources

image
       数据源包括作为检索条件的精选数据源和一个未经整理的数据池。其中精选数据源详情如上表,包含ImageNet22k、ImageNet1k的训练集、Google Landmarks和几个细粒度数据集。未整理数据池包含1.2B张图像,其来源于一个利用爬虫爬取的未经过滤的公开可用网络仓库,并取出仓库中的所有网页的标签的图像 URL链接,其中丢弃了不安全或受域名限制的URL,并对下载的图像进行了后处理(PCA哈希去重、NSFW过滤和模糊可识别的人脸)。

Deduplication

       将copy detection pipeline应用于未经整理的数据池,并对图像去重,这减少了冗余并增加了图像间的多样性。另外对精选数据源中的测试或验证集也进行了图像去重。

Self-supervised image retrieval

       通过从未整理的数据池中检索与精选数据源中的图像接近的图像来构建预训练数据集。对任意两张图像,使用在ImageNet22k上预训练的自监督ViT-H/16网络计算图像嵌入,并使用余弦相似度作为图像之间的距离度量。
m ( s , r ) = c o s i n e _ s i m i l a r i t y ( f ( s ) , f ( r ) ) = f ( s ) , f ( r ) ∣ ∣ f ( s ) ∣ ∣ 2 ∣ ∣ f ( r ) ∣ ∣ 2 m(s,r)=cosine\_similarity(f(s),f(r))=\frac {f(s),f(r)} {||f(s)||_2||f(r)||_2} m(s,r)=cosine_similarity(f(s),f(r))=∣∣f(s)2∣∣f(r)2f(s),f(r)

        s s s r r r是一对用于比较的图像, f f f是生成的特征。首先对未经整理的数据进行k-means聚类,然后给定一个用于检索的查询数据集(精选数据源),如果其足够大,则为每个查询图像检索N(通常为4)个最近邻图像;如果查询数据集很小,则从每个查询图像对应的聚类集群中采样M张图像。通过对检索结果进行目视检查,对N和M进行调整。

Implementation Details

       pipeline的去重和检索阶段依赖于Faiss库的GPU加速索引来高效地实现基于特征嵌入最近邻的批量搜索。整个处理过程分布在一个由20个节点组成的计算集群上,每个节点有8个V100-32GB GPU,生成LVD-142M数据集需要不到两天的时间。

判别式自监督预训练

       DINOv2采用DINO和iBOT组合的自监督方法学习特征,并做出一系列调整。

Image-level objective

       图像级目标定义为分别从学生网络和教师网络中提取的ViT的cls patch特征之间的交叉熵损失,教师网络和学生网络的输入从同一图像的不同裁剪中获得。

Patch-level objective

       随机屏蔽一些学生网络输入的输入patch,但不屏蔽教师网络输入,然后对每个掩码patch对应的两个网络输出patch特征之间计算交叉熵损失,即为patch级目标。该损失与图像级损失相结合定义为最终损失,得到的损失用于训练学生网络的参数,使用EMA来构建教师网络。详情参考iBOT。

Untying head weights between both objectives

       采用上述方法将两个目标的损失联系在一起,会使模型在patch级别上欠拟合,而在图像级别上过拟合。故对两种损失添加不同权重,来提高模型在两种尺度上的性能。

Sinkhorn-Knopp centering

       使用SwAV的Sinkhorn-Knopp(SK)批量归一化替换DINO和iBOT教师网络的softmax/centering步骤。模型对教师网络应用3次SK归一化,对学生应用softmax归一化。

KoLeo regularizer

       KoLeo正则化器源自Kozachenko-Leonenko微分熵估计器,其会鼓励一个batch中的特征呈均匀跨度。具体为,给定一组向量 ( x 1 , … , x n ) (x_1,…,x_n) (x1,,xn) L k o l e o = − 1 n ∑ i = 1 n l o g ( d n , i ) L_{koleo} =−\frac 1 n \sum^ n_{i=1} log(d_{n,i}) Lkoleo=n1i=1nlog(dn,i),其中 d n , i = min ⁡ j ≠ i ∣ ∣ x i − x j ∣ ∣ d_{n,i} = \min_{j\neq i} || x_i−x_j|| dn,i=minj=i∣∣xixj∣∣ x i x_i xi和batch内其他点之间的最小距离。

       DINO的投影头 h h h的MLP之后首先使用 l 2 l_2 l2正则化,然后再使用KoLeo正则化。

Adapting the resolution

       提高图像分辨率是像素级下游任务的关键(如分割或检测),小目标会在低分辨率下消失。然而,在高分辨率下训练需要更多时间和内存。为了平衡两种情况,本文在预训练快结束的短时间内会将图像的分辨率提高到 518 × 518 518 × 518 518×518

高效实现

       本文使用pytorch2.0在A100 GPU上训练模型。在相同的硬件下,DINOv2的代码实现只使用iBOT 1/3的内存但运行速度快2倍。具体实现细节如下:

Fast and memory-efficient attention

       实现了一个新版本的FlashAttention,提高了自注意层的内存使用效率和速度。因为GPU硬件的特殊性,当每个头的嵌入维数为64的倍数时,效率最好;整体嵌入维数为256的倍数时,矩阵运行效率最好,因此实现的ViT-g使用1536个头(64 dim/head),ViT-g参数量为1.1B。

Nested tensors in self-attention

       允许在同一前向传播中运行global crops和local crops(全局视图、局部视图),与之前的实现相比提高了计算效率。

Efficient stochastic depth

image
       实现了一个改进版的随机深度(stochastic depth),同以往实现掩盖丢弃的残差层计算结果不同,该实现跳过了被丢弃的残差层的计算。这节省了内存和计算量,其比例近似于drop rate。由于较高的drop rate(d=40%),显著提高计算效率和内存使用。另外还在每个batch上随机打乱B个样本,并切片前面的 ( 1 − d ) × B (1−d)×B (1d)×B个样本用于块中的计算。详细训练配置如上图。

Fully-Sharded Data Parallel (FSDP)

       FSDP是一个可以在多个GPU节点上运行的高效分布式训练框架。具体,在使用AdamW优化器进行训练时,需要使用4个模型副本,包括学生网络、教师网络、优化器的一阶和二阶动量,对于ViT-g这样1.1B参数的模型,需要至少16GB的内存存储参数。故使用FSDP降低单个GPU的内存占用,将模型副本分片放置在多个GPU上。

       因此,模型大小不再受单个GPU的内存限制,而是受到整个计算节点的GPU内存总和的限制。FSDP还可以节省跨GPU通信成本,按优化器的要求参数权重分片以float32精度存储,但骨干网络的权重广播和梯度下降使用float16精度进行计算(MLP的梯度用float32精度下降,以避免训练不稳定),相比于Distributed Data Parallel(DDP)全部使用float32精度计算,可减少50%的通信成本。

Model distillation

image
       如上图,DINOv2给出一系列模型ViT-g、ViT-l、ViT-b、ViT-s,其中只对1.1B参数的ViT-g采用LVD-142M进行预训练,其余小模型均使用知识蒸馏从ViT-g中蒸馏得到。

       蒸馏过程采用和预训练同样的训练框架,令ViT-g为教师网络,其余型号的ViT小模型做学生网络进行训练,并保留一个学生网络EMA作为最终模型。同预训练不同之处在于删除了mask和随机深度策略,对于iBOT其分支全部使用global crops。

消融实验

Improved Training Recipe

       DINOv2的训练方法是在iBOT基础上添加了上述组件进行了改进。为了评估各组件对训练过程的重要性,依次将组件添加到一个baseline iBOT模型中,得到多个模型。
image
       如上表,报告了ImageNet-1k验证集中k-NN和线性检测任务的Top-1精度。观察到,每个组件都逐步提高了k-NN或线性检测的性能,只有LayerScale和随机深度会导致线性检测的性能下降,但其显著提高了训练的稳定性。

Pretraining Data Source

       特征的质量与训练数据的质量直接相关。故将LVD-142M、ImageNet-22k、删除ImageNet-1k(INet-22k\INet-21k)后的ImageNet-22k的变体及直接使用原始和未整理的数据进行比较,未经整理的数据集为从与LVD-142M相同的数据源中随机抽取的1.42亿张图像。实验在每个数据集上训练一个具有相同迭代次数的ViT-g/14。
image
       如上表。观察到在LVD-142M进行训练的模型在3个基准上比Uncurated data上训练的模型效果更好,这证实了数据整理的好处。与在ImageNet-22k上训练的模型相比,在LVD-142M上训练的模型在除ImageNet-1k之外的基准上也更优,这证实了在更多样化的图像集上进行训练可以提高该数据集未覆盖领域的特征质量。

       总体而言,LVD-142M对不同类型的图像提供了很好的平衡,从而获得了最佳的整体性能。

Model Size and Data

image
        上图为LVD-142M(蓝色)和ImageNet-22k(橙色)上训练的不同大小的模型在几种测试集上的性能表现。观察到随着模型规模的增长,在LVD-142M上训练比在ImageNet-22k上训练更有益。例如,在LVD-142M上训练的ViT-g与在ImageNet-22k上训练的ViT-g 在ImageNet-1k上的性能相匹配,而在其他基准上明显更优。

Loss Components

       本实验验证了添加KoLeo损失与否及有无MIM任务对最终模型性能的影响。对于这两种情况,报告了使用线性分类器在ImageNet-1k的分类性能、使用线性分类器进行ADE-20k分割性能以及在Oxford-m上的最近邻图像检索性能。
image
       上表a显示了使用KoLeo损失与否的影响。观察到使用KoLeo损失,图像检索性能提高了8%以上,这证实了KoLeo损失有助于在输出空间中扩展特征。同时,其他指标也不会受到这种正则化的影响。

       上表b中,展示了使用iBOT的MIM的影响。观察到MIM对于密集预测任务至关重要,可以导致近3%的性能改进。

Impact of Knowledge Distillation

image
       本实验验证对于小型架构,利用更大的模型进行知识蒸馏比从头开始训练更有益。具体,通过将从头训练的ViT-l/14(scratch)与从预训练ViT-g/14(scratch)在上图中的12个以上基准中蒸馏的ViT-l/14(distilled)进行比较,并报告了ViT-g/14(scratch)的性能。

       如上图,ViT-l/14(distilled)在12个基准中的10个上优于ViT-l/14(scratch),验证了对小型模型进行知识蒸馏的预训练方法的有效性。

Impact of Resolution

image
       本实验验证了在预训练过程中改变分辨率对图像和patch级特征性能的影响。基于两种策略,从头训练使用 224 × 224 224×224 224×224分辨率(橙色)或 416 × 416 416×416 416×416分辨率(深粉色)的模型;以及在 224 × 224 224×224 224×224分辨率从头训练,然后在 416 × 416 416×416 416×416分辨率上继续进行10k次迭代的模型(橙色)。高分辨率训练是计算密集型的,所以实验采用ImageNet1k上训练的ViT-L/16验证。

       如上图,报告了在ImageNet-1k和ADE-20k上的线性检测的性能,并在不同的分辨率下进行了评估。观察到,在高分辨率图像上训练的模型在不同分辨率上表现最好,但这种代价很高。另一方面,在训练结束时进行10k次高分辨率训练迭代的性能几乎也同样好,而且只需要一小部分计算量。因此,DINOv2采用在训练结束时包括了这一步的策略,而不是从头开始的高分辨率训练。

对比实验

       本实验使用两种类型的模型作为baseline。自监督模型包括MAE、DINO、SEERv2、MSN、EsViT、Mugs和iBOT。弱监督模型包括CLIP、OpenCLIP和SWAG。

ImageNet Classification

       本实验验证DINOv2在ImageNet1k分类数据集上的性能。实验通过在冻结的骨干上训练一个简单的分类器来评估精度(没有对骨干权重进行微调)。由于大多数SSL方法使用ImageNet1k验证性,因此另外报告了ImageNet-Real和ImageNet-v2上的top-1准确性。
image
       如上图,不考虑架构或预训练数据的情况下将DINOv2与以往最优的SSL比较。DINOv2在线性评估方面比之前的最先进水平(在ImageNet-22k上训练的iBOT ViT/16)提升了4.2%的精度。同时还观察到,所提出方法在备选测试集(ImageNet-Real、ImageNet-v2上)上的性能提高更大,表明DINOv2泛化能力较强。

       另外还与以往最优的弱监督模型在ImageNet1k上对比了线性检测性能,我们在表4中显示了这个评估的结果。观察到,ViT-G/14/DINOv2比ViT-G/14/OpenCLIP提高0.3%的精度,比ViT-g/14/EVA-CLIP提高0.1%的精度。同时,也观察到DINOv2在ImageNet-V2测试上的表现比EVA-CLIP提高1.1%的精度,表明DINOv2具有更好的泛化能力。
image
       上图实验为DINOv2在ImageNet-1k微调后产生的性能。观察到,输入分辨率为224和448的模型,微调后ImageNet-1k验证集上的top1精度都提高了+2%以上。证明对DINOv2的微调可以进一步提高在特定任务上的性能。
image
       另外实验探索了DINOv2的特征鲁棒性,在ImageNet-A、ImageNet-R、ImageNet-C、Sketch基准上评估了使用线性分类头训练的ImageNet-1k模型。

       实验结果如上表所示。与最先进的SSL方法相比,DINOv2显示出更好的鲁棒性(与iBOT相比,ImageNet-A提高了29.6%,ImageNet-R提高了22.1%,Sketch提高了23.0%)。DINOv2还改进了ImageNet-A上的最佳弱监督模型OpenCLIP,但在ImageNet-R和Sketch上表现较差。

Additional Image and Video classification Benchmarks

image
       本实验研究DINOv2的特征在下游分类基准测试上的泛化能力,使用了两组评估,第一组使用大型细粒度数据集,如iNaturalist和Places205验证图像分类性能。对于iNaturalist 2018、iNaturalist 2021和Places205,实验训练了采用数据增强的线性分类器。

       第一组结果如上表中,报告了iNaturalist 2018、iNaturalist 2021和Places205的top-1个精度。观察到,DINOv2在两种iNaturalist变体上显著优于ViT-G/14/OpenCLIP(+8.6%和+9.7%),但在Places205上略微落后(−2.3%)。

       在第二组评估中,验证了模型在视频动作识别上的性能,实验评估了UCF-101、Kinetics-400和Something-Something v2三个数据集。对每个数据集,每个视频间隔8帧提取一张图像,其中UCF和K-400使用一个视频提取出的图像的特征平均值训练线性分类器;对于SSv2,采用concat序列特征以保留更多的时序信息。使用平均精度为测量指标。

       第二组结果如上表右。观察到在自监督的方法中,DINOv2实现了最先进的精度。此外,DINOv2在UCF和Kinetics上比OpenCLIP有更高的准确性(+0.1%、+0.5%),在SSv2上提升幅度更大(+2.5%),因为SSv2需要对视频帧的时序性有更丰富的理解。
image
       在上表中,还比较了SimCLR提出的12个分类基准中得到性能。这个基准测试包括场景、对象(食物、汽车、飞机)和纹理。实验用CUB替换了Birdsnap数据集,因为Birdsnap还没有完全公开。

       观察到,DINOv2显著优于最先进的SSL模型,最显著的差异是在Stanford Cars(+14.8% vs DINOViT-B/8)和FGVC Aircraft(+14.8% vs ViT-L/16/iBOT)。除了SUN(−5.3%)和Cars(−4.7%),DINOv2在大多数分类基准测试上与OpenCLIP也具有竞争力。

Instance Recognition

image
       在本实验中,使用非参数方法验证了模型在实例级识别任务的表现,查询图像通过与数据库中的图像的余弦相似度进行排序来确定实例类别。实验在Paris和Oxford的基线进行了比较,还评估了Metropolitan museum和Amster时间,其中包含与Amsterdam档案图像相匹配的街景图像。通过计算平均精度来衡量性能,

       结果如上表。观察到,DINOv2显著优于SSL(Oxford-Hard +41%mAP)和弱监督(Oxford-Hard +34%mAP),这是里程碑式的识别基准。

Dense Recognition Tasks

image
       本实验评估语义分割性能,考虑了两种不同的设置:

  • 线性:训练一个线性层从最后一层的patch token预测类logits,其可生成一个低分辨率的logit图(例如一个patch大小为16的模型输出为32x32),然后将其上采样到全分辨率(512x512)以获得一个分割图
  • +ms:一个线性设置的增强版本。将最后4层的patch token concat起来预测类logits,上采样使用更大的图像分辨率640,并使用multiscale test-time增强来改进预测

       结果如上表。报告了两种设置下DINOv2变体在三个数据集(ADE20k、CityScapes、Pascal VOC)上的性能。观察到,模型在所有数据集和所有设置上都显示出非常好的性能,使用+ms的评估与使用UperNet解码器微调的MAE(53.0 vs 53.6mIoU)相当,但DINOv2只使用了一个明显更简单的预测器。此外,使用+ms的最佳DINOv2模型,几乎与Pascal VOC的最先进技术水平相当(86.2 vs 89.0mIoU)。

       在最后的实验中,冻结了主干网络,将其插入具有Mask2former头的ViT-Adapter。在ADE20k上达到60.2 mIoU,接近最先进的62.9 mIoU。
image
       本实验在三个单目深度估计基准(NYUd、KITTI和从NYUd到SUN3d的zero-shot迁移)上验证模型在深度估计上的性能。考虑了三种不同的评估设置:

  • lin.1:提取被冻结模型的最后一层的token,并将[CLS] token拼接到每个patch token,然后将上述token利用双线性上采样4倍以增加分辨率,最后利用分类loss训练一个简单的线性层,并将深度预测范围划分到256个均匀分布的bins中,然后进行线性归一化
  • lin.4:使用与lin.1相同的协议,但ViT-s/b拼接{3、6、9、12}层的token,ViT-l拼接{5、12、18、24}层,以及ViT-g拼接{10、20、30、40}层
  • DPT:在冻结模型之上使用DPT解码器,并设置一个回归任务。并根据每个架构的特征的尺寸来缩放头部的大小

       结果如上表。观察到,DINOv2的性能超过了以往最优的SSL和WSL模型。另外,从ViT-L中提取的iBOT特征优于使用ViT-G的OpenCLIP特征,这一观察结果支持了一种直觉,即caption-based的特征无法学习到这样的微妙模式。

       此外,使用DPT解码器的DINOv2,匹配或超过以往最优的性能。最后,在SUN-RGBd上的域外泛化结果表明,DINOv2的特征允许很好的域间转移。一个由NYUd在室内场景上训练的深度预测模块可以很好地推广到SUN-RGBd的室外例子。

定性分析

Semantic Segmentation and Depth Estimation

image
       上图分别为ADE20K的语义分割可视化结果和NYUd、KITTI、SUN RGB-D的深度估计可视化结果,实验将DINOv2与OpenCLIP在每个数据集上都使用线性分类器进行比较。

       观察到虽然不完美,但使用DINOv2主干的线性分割模型产生了良好的结果,并且在这个评估设置下比OpenCLIP模型表现更好。由OpenCLIP-G产生的分割掩模显示了许多伪影和断开连接的组件。

       深度估计的定性结果也说明了OpenCLIP和DINOv2之间的差距。虽然DINOv2的特征以及OpenCLIP提取的特征都能够线性地分离深度等复杂的信息(两者都没有使用这种类型的信息进行训练)。然而,DINOv2的特性产生了一个更平滑的深度估计,与更少的伪影。一些对象,如SUN RGB-D图像上的椅子,被OpenCLIP完全忽略,但DINOv2可以正确地定位。

Out-of-distribution generalization

image
       上图为一些DINOv2深度估计和实例分割的示例。观察到,即使在不同的领域,动物或绘画的图片的深度和分割的质量也非常好。

PCA of patch features

image
       上图展示DINOv2提取的patch特征进行主成分分析(PCA)的结果。提取流程为:

  • 从DINOv2的输出中提取patch token特征,并对其计算PCA
  • 对patch特征的第一主成分设置阈值后,只保留正值的patch,这个过程可以获取从背景中分离出来的图像的主要目标的patches
  • 对上一步计算的前景patches再次计算PCA,并提取前3个主成分再次进行阈值过滤
  • 得到的3个主成分patches做为RGB着色绘图

       结果如上图。首先,采用DINOv2的无监督前景/背景检测器,采用PCA检测第一主成分后,能够描绘出图像中主要目标的边界;其次,其他主成分能匹配物体的不同部件。这证明DINOv2在没有监督的情况下就能解析对象的各个部分。

Patch matching

image
       上图实验了DINOv2的跨图像匹配功能,探索了patch级特征包含的信息类型。首先使用PCA检测前景对象,然后计算从两幅图像中提取的patch特征之间的欧氏距离,并通过求解指派问题实现特征间的映射。为了减少匹配的数量,对匹配进行非极大值抑制(nms),只保留显著的匹配。

       结果如上图,展示了这种匹配的一些例子。观察到,这些特征捕捉到了在不同的物体或动物中具有相似目的的语义区域的信息。例如,飞机的翅膀与鸟的翅膀相匹配。还观察到,该模型对于风格和姿态的巨大变化(参考大象)具有鲁棒性。

偏见分析

       本实验用最大的ViT-g模型对模型进行了两次公平性评估,探索了地理公平性和潜在的有害标签关联。

Geographical Fairness

image
       地理公平性评估使用Dollar Street数据集,包含来自54个国家289个家庭的16073张图片,比较了不同国家和收入水平的生活差异的视觉表现。这项任务是识别94个概念,这些概念在不同的家庭中根据收入或地理位置有视觉上的差异,评估模型是否能在这些存在差异的图像中准确识别目标概念。

       结果如上表,将DINOv2与SEERv2进行了比较,SEERv2是在地理上不同的图像集上训练的模型。观察到,DINOv2在地区和收入都比SEERv2稍微公平一些。然而,仍然观察到区域之间的显著差异,特别是在非洲,DINOv2的性能与欧洲相比下降了25.7%。这表明DINOv2的模式仍然偏向西方国家。同样,DINOv2在高收入家庭中的表现明显优于低收入家庭,差异为31.7%。尽管有所改善,但DINOv2对西方国家的富裕家庭仍存在重大偏见。

Gender, Skintones and Age

image
       对于性别、肤色和年龄分类评估,在ImageNet-22k的619个类的子集上训练了一个冻结主干网络的多类分类器。实验将619个类分为四个更广泛的元类别:人类、可能是人类、非人类、罪犯,非人类和罪犯被认为是有害的。使用这个分类器,对来自Casual Conversations数据集的2955张图像进行推断,并将分类概率大于等于0.1的标签保留在top-5中,因此,每张图像都有多个类。

       结果如上表。将DINOv2与SEERv2进行了比较。DINOv2经常将所有群体的图像分类为人类,对肤色没有很大的偏差。SEERv2和DINOv2都无法准确预测非人类或犯罪元类别(除了两个背景包含类似于监狱的酒吧)。DINOv2经常预测人类这个元类别,且经常预测男性人类类别。最终验证了DINOv2没有明确的模式表明对特定群体的偏见。

碳排放

image
       采用LLaMA的碳排放计算方法,DINOv2的耗能结果如上表,估计在A100-40GBGPU上使用20k GPU-hours后,整个项目的碳排放在0.5k到1k tCO2eq之间,排放的主要来源是模型的自监督预训练。例如,ViT-g模型(22k gpu-hours)的一次预训练会排放3.7吨的CO2eq,而对ImageNet-1k(1k gpu-hours)的微调会排放0.2吨的CO2eq。这一估计只考虑了GPU的用电量,而忽略其他排放。

实验数据详情

image
       上图为消融实验、对比实验、定性分析、偏见分析、碳排放这些实验使用的数据集详情。

reference

Maxime, O. , Timothée, D. , Théo, M. , Huy, V. V. , Marc, S. , Vasil, K. , Pierre, F. , Daniel, H. , Francisco, M. , Alaaeldin, E. , Mahmoud, A. , Nicolas, B. , Wojciech, Galuba. , Russell, H. , PoYao, H. , ShangWen, L. , Ishan, M. , Michael, R. , Vasu, S. , Gabriel, S. , Hu, X. , Hervé, J. , Julien, M. , Patrick, L. , Armand, J. , & Piotr, B. . (2023). DINOv2: Learning Robust Visual Features without Supervision.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/420014.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言第三十三弹---动态内存管理(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 动态内存管理 1、为什么要有动态内存分配 2、malloc和free 2.1、malloc 2.2、free 3、calloc和realloc 3.1、calloc 3.2、realloc 4、常见的动态内存的错…

《Spring Security 简易速速上手小册》第5章 高级认证技术(2024 最新版)

文章目录 5.1 OAuth2 和 OpenID Connect5.1.1 基础知识详解OAuth2OpenID Connect结合 OAuth2 和 OIDC 5.1.2 重点案例:使用 OAuth2 和 OpenID Connect 实现社交登录案例 Demo 5.1.3 拓展案例 1:访问受保护资源案例 Demo测试访问受保护资源 5.1.4 拓展案例…

Redis 【1】—— 安装 与 配置

Redis 【1】—— 安装 与 配置 一、安装 与 配置(一)使用 yum 安装(二)创建符号链接1. 软链接2. 相关指令 (三)修改配置文件(四)Redis 的启停 一、安装 与 配置 (一&…

金融短信群发平台具有那些特点

金融短信群发平台的特点主要包括以下几个方面: 1.高效性:金融短信群发平台能够快速地发送大量的短信,使得金融信息能够迅速传达给目标客户,保证了信息的及时性和有效性。 2.安全性:金融短信群发平台对于信息的安全性非…

MySQL 主从读写分离入门——基本原理以及ProxySQL的简单使用

一、读写分离工作原理 读写分离的工作原理:在大型网站业务中,当单台数据库无法满足并发需求时,通过主从同步方式同步数据。设置一台主服务器负责增、删、改,多台从服务器负责查询,从服务器从主服务器同步数据以保持一…

本届挑战赛冠军方案:基于LLM的多场景智能运维

本文介绍本届挑战赛冠军得主SRE-Copilot团队的参赛方案:基于LLM的多场景智能运维。 基础架构-SRE,负责字节跳动基础架构部门所有组件的SRE工作,沿着成本、稳定性、效率、服务四条主线,致力于打造高扩展、高可用的生产系统。基础架…

2024年【烟花爆竹经营单位安全管理人员】免费试题及烟花爆竹经营单位安全管理人员试题及解析

题库来源:安全生产模拟考试一点通公众号小程序 烟花爆竹经营单位安全管理人员免费试题根据新烟花爆竹经营单位安全管理人员考试大纲要求,安全生产模拟考试一点通将烟花爆竹经营单位安全管理人员模拟考试试题进行汇编,组成一套烟花爆竹经营单…

Linux设置程序任意位置执行(设置环境变量)

问题 直接编译出来的可执行程序在执行时需要写出完整路径比较麻烦,设置环境变量可以实现在任意位置直接运行。 解决 1.打开.bashrc文件 vim ~/.bashrc 2.修改该文件(实现将/home/zhangziheng/file/seqrequester/build/bin,路径下的可执…

四、《任务列表案例》后端程序实现和测试

本章概要 准备工作功能实现前后联调 4.1 准备工作 数据库脚本 CREATE TABLE schedule (id INT NOT NULL AUTO_INCREMENT,title VARCHAR(255) NOT NULL,completed BOOLEAN NOT NULL,PRIMARY KEY (id) );INSERT INTO schedule (title, completed) VALUES(学习java, true),(学…

spring cloud 入门

​ 学习目标: 学习spring cloud项目快速搭建方法,学习nacos注册中心使用,实现两个服务间的调用 学习内容: 一、Spring Cloud介绍 Spring 以 Bean(对象) 为中心,提供 IOC、AOP 等功能。Sprin…

使用链表和数组输出A~Z的ASCII码

输出结果 26个字母以及其对应的ASCII码 一、使用链表创建,注意: 节点需要有next指针初始化时head需要new一下 cur指针代表当前指针,每次不断的New新的节点,pre指针代表当前指针的前一个指针,每次pre的next指针指向cur…

Unity将4个纹理图拼接成1个纹理

需要的效果 最终实现的效果大概如下: 4个贴图上去 这里随便放一个切分的图。 Shader代码如下 直接上代码: // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)// Unlit shader. Simplest possible textured shad…

基础小白快速入门Python------>模块的作用和意义

模块, 这个词听起来是如此的高大威猛,以至于萌新小白见了瑟瑟发抖,本草履虫见了都直摇头,好像听上去很难的样子,但是但是,年轻人,请听本少年细细讲述,他只是看起来很难,实…

猫毛过敏养猫人士的必备养猫好物-宠物空气净化器品牌分享

许多猫奴在与猫相处一段时间后突然对猫毛过敏,这真是令人难受。一些人认为对猫咪过敏是因为它们在空气中飘浮的毛发引起的,但实际上大部分人之所以过敏是因为对猫身上一种微小的蛋白质过敏。这种导致过敏的蛋白质附着在猫咪的一些皮屑上。我们都知道猫咪…

uniapp同步将本地图片转换为base64,支持微信、H5、APP

接上篇,少了一个方法的源代码。 先上代码: ploadFilePromiseSync (url) > { return new Promise((resolve, reject) > { // #ifdef MP-WEIXIN uni.getFileSystemManager().readFile({ filePath: url, encoding: base64, success: res > { let …

总结一下linux性能检测和调优手段

1.perf 是 Linux 系统中性能分析工具,用于收集性能相关的信息。它可以用于查看 CPU 使用情况、内存性能、磁盘 I/O 等,以帮助开发者找到性能瓶颈。 以下是一些 perf 常见用法和示例: 1. CPU Profiling a. 查看 CPU 使用率 perf stat -e cpu…

C++ 快速排序快速选择

目录 1、75. 颜色分类 2、912. 排序数组 3、 215. 数组中的第K个最大元素 4、LCR 159. 库存管理 III 1、75. 颜色分类 思路:利用快速排序思路,使用三指针分块进行优化。 [0,left]——小于key[left1,right-1]——等于key[right,nums.size()]——大于k…

金三银四跳槽季,你不得不知道的5个面试技巧

正式进入金三银四招聘季了,即将投入求职大战的小伙伴们,你真的准备好了吗? 别急,在参加面试前,请你看完这篇文章,相信面试成功率会提升不少。 1 “能力不如你,却薪资比你高” 背后隐藏的逻辑 …

前端src中图片img标签资源的几种写法?

在 Vue 项目中引用图片路径有几种不同的方法,具体取决于你的项目结构和配置。以下是几种常见的方式: 1. 静态资源目录 (Public) 如果你的图片放在了项目的 public 目录下(例如,Vite 和 Create Vue App 脚手架工具通常使用这个目…

wps软件怎么压缩文件?这样操作就可以~

WPS Office是一款功能强大的办公软件套件,其中包括文字处理、表格编辑和演示文稿制作等功能。在本文中,我们将介绍如何利用WPS软件以及其他压缩工具进行文件压缩,让您在处理文件时更加便捷高效。 除了这些基本功能外,WPS Office还…