2. 从恐龙到恐龙v2
2.1. 创建一个大型、精心策划且多样化的图像数据集
构建DINOv2的主要步骤之一是训练更大的架构和模型以增强模型的性能。然而,更大的模型需要大型数据集才能进行有效的训练。由于没有满足要求的大型数据集可用,研究人员利用公开抓取的网络数据,并构建了一个类似于LASER的流程,选择仅有用的数据。
但是,为了能够使用这些数据集,需要完成两个主要任务:
- 平衡不同概念和任务之间的数据
- 删除不相关的图像。
由于这项任务可以通过手动完成,因此他们从大约25个第三方数据集中筛选了一组种子图像,并通过获取与这些种子图像密切相关的图像来扩展它。这种方法使他们能够从12亿张图像中产生一个包含1420万张图像的相关数据集。
2.2. 算法和技术改进
虽然使用更大的模型和数据集将带来更好的结果,但也伴随着挑战。其中两个主要挑战是潜在的不稳定性和在训练期间保持可追踪性。为了使训练更加稳定,DINOv2包括了受相似性搜索和分类文献启发的额外正则化方法。
DINOv2的训练过程整合了最新的混合精度和分布式训练实现,这是由先进的PyTorch 2提供的。这使得代码的实现更快,并且在使用相同硬件训练DINO模型时,速度翻了一倍,内存使用量减少了三分之一,从而允许在数据和模型尺寸上进行扩展。
2.3. 使用模型蒸馏减少推理时间
在推断过程中运行大型模型需要强大的硬件,这将限制该方法在不同用例中的实际应用。为了解决这个问题,研究人员使用了模型蒸馏技术,将大型模型的知识压缩到较小的模型中。通过利用这种方法,研究人员能够将高性能架构压缩为性能成本微不足道的较小架构。这导致出现了强大的ViT-Small、ViT-Base和ViT-Large模型。
总之,Meta AI发布DINOv2模型标志着一个重要的里程碑。DINOv2模型使用的自监督学习方法为机器学习模型的训练提供了一种强大的方式,无需大量标记数据。这些模型能够在不需进行微调的情况下获得高精度,适用于各种计算机视觉任务和应用。此外,DINOv2可以从不同的图像集合中学习,并能够从深度估计等特征中学习,无需显式训练。DINOv2作为开源模型的可用性为研究人员和开发人员在计算机视觉任务和应用中探索新的可能性打开了大门。
来源:https://www.kdnuggets.com/2023/05/dinov2-selfsupervised-computer-vision-models-meta-ai.html