可扩展易配置,快来揭秘新一代自监督学习开源框架

MMSelfSup

MMSelfSup 是 OpenMMLab 生态的面向自监督学习的开源算法库,主要涵盖了计算机视觉的自监督学习。与监督学习不同,自监督学习无需人为的数据标注,能够有效利用海量的无标注数据来提升模型性能。

2020 年 6 月,OpenMMLab 联合社区发布了 OpenSelfSup,是业界的首个自监督学习算法库,集成了一系列主流的自监督学习算法。

2021 年 12 月,我们升级 OpenSelfSup 成为MMSelfSup,正式加入 OpenMMLab 开源体系,发布了 v0.5.0 版本。

2022 年 9 月,我们发布了MMSelfSup v1.0.0rc,全面升级了架构设计,适配全新的 OpenMMLab 2.0 体系。我们接下来将从升级架构设计,算法库新特性两个方面,对全新升级的 MMSelfSup 1.0 进行介绍。

升级架构设计

MMSelfSup 1.0 主要基于 MMEngine,MMCV 2.0.0rc0,和 MMClassification 1.0.0rc0 进行开发。我们对整个算法库的架构进行了全新设计,整体框架图如下所示。我们对算法库的代码结构进行了重构,新的架构包括了 Datasets、Engine、Structures、Visualization 等模块,同时我们也系统性地对 Benchmarks 进行了升级,支持了一系列下游任务。

算法库新特性

数据读取与使用

我们在 MMSelfSup 中,基于 MMEngine 引入了更强大的 Data Pipeline,它具有统一的数据结构,提高了可存储信息的丰富性,同时也易于扩展,如下图所示。

可扩展易配置,快来揭秘新一代自监督学习开源框架_第1张图片

同时,我们也新设计了 SelfSupDataSample,提供了统一的数据接口,方便在训练过程中进行各类信息的存储和传输(如标签,掩码,索引),如下图所示。

可扩展易配置,快来揭秘新一代自监督学习开源框架_第2张图片

丰富的可视化工具

我们在 MMSelfSup 中也引入了丰富的可视化工具,可以针对性地对图片,特征,掩码等进行可视化,如下图所示:

可扩展易配置,快来揭秘新一代自监督学习开源框架_第3张图片

我们也像 MMClassification 一样,支持多种可视化后端,如下图所示:

可扩展易配置,快来揭秘新一代自监督学习开源框架_第4张图片

更灵活的下游任务支持

借助以 OpenMMLab 的全新架构,我们利用 MMEngine 的跨库调用机制,可以方便地进行跨库调用,方便用户在 MMSelfSup 中快速验证模型在下游任务中的效果。

相比旧版需要显式地复制下游任务中的配置文件,我们直接通过简单的跨库调用即可实现下游任务的支持,如下图所示:

可扩展易配置,快来揭秘新一代自监督学习开源框架_第5张图片

同时,我们提供了一键进行训练测试的命令行工具,支持分布式版本与 SLURM 集群版本,如下图所示:

可扩展易配置,快来揭秘新一代自监督学习开源框架_第6张图片

基于方便的跨库调用机制,我们也可以灵活地使用 MMClassification 中的基础模型。我们使用 库名::文件路径 即可实现跨库调用,如下图所示:

可扩展易配置,快来揭秘新一代自监督学习开源框架_第7张图片

更全面的用户文档

在 MMSelfSup 中,我们更新了用户文档,结合 MMSelfSup 的项目特点,设计了基础文档和进阶文档,以期帮助用户更好地使用算法库,如下图所示:

可扩展易配置,快来揭秘新一代自监督学习开源框架_第8张图片

可扩展易配置,快来揭秘新一代自监督学习开源框架_第9张图片

更丰富的算法模型支持

在 MMSelfSup 2.0 中,我们全面升级了算法模型的支持,提高了算法库在掩码学习方法领域的能力,截止目前,我们在手工设计任务,基于聚类的任务,对比学习任务,掩码学习任务以及混合任务等方向上提供了完善的支持,如下图所示。

可扩展易配置,快来揭秘新一代自监督学习开源框架_第10张图片

我们对于部分前沿模型提供了全量模型的支持,方便用户基于 MMSelfSup 快速地进行各个尺寸模型,各个训练时长的实验。例如对于 MAE,我们提供了 ViT-B/L/H 各个尺寸的支持,以及提供了 300/400/800/1600 不同 epoch 训练长度的实验结果,也同时支持了 Linear Probling 和 Fine-tuning,如下所示:

Backbone Epoch Linear prob Fine-tuning
ViT-B 300 60.8 83.1
ViT-B 400 62.5 83.3
ViT-B 800 65.1 83.3
ViT-B 1600 67.1 83.5
ViT-L 400 70.7 85.2
ViT-L 800 73.7 85.4
ViT-L 1600 75.5 85.7
ViT-H-FT-224 1600 / 86.9
ViT-H-FT-448 1600 / 87.3

除此之外,我们也支持了 SimMIM 和 MoCo v3 的训练,如下:

SimMIM 实验结果

Backbone Epoch Fine-tuning
Swin-B-FT-192 100 82.7
Swin-B-FT-224 100 83.5
Swin-B-FT-224 800 83.8
Swin-L-FT-224 800 84.8

MoCo V3 实验结果

Backbone Epoch Linear prob Fine-tuning
ResNet-50 100 69.4 /
ResNet-50 300 72.8 /
ResNet-50 800 74.4
ViT-S 300 73.6 /
ViT-B 300 76.9 83
ViT-L 300 / 83.7

小结

我们对 MMSelfSup 1.0 进行一个简单的总结,作为 OpenMMLab 2.0 的自监督学习算法库,目前我们已经在整个开源社区获得广泛使用。基于全新的架构和生态,我们可以轻松支持多个下游任务,具有可扩展易配置的特性。同时,我们也提供丰富的算法模型,方便的研究工具,以及便捷的模型推理。

可扩展易配置,快来揭秘新一代自监督学习开源框架_第11张图片

后续规划

未来,我们也将不断地迭代更新,计划在未来支持更多自监督学习算法,不断提高模型的易用性,提供一键式的下游任务训练工具,以及提供统一的Benchmark标准。欢迎社区用户参与公测,并向我们提出宝贵的意见,我们将倾听大家的意见,不断迭代完善 MMSelfSup。

维护时间线

我们将在2023年1月1号正式发布 MMSelfSup 1.0 版本到主分支,对新版本感兴趣的同学,可以使用1.x分支来体验我们的全新版本。我们将在未来保持双分支的同时维护,主要的维护时间线如下所示:

你可能感兴趣的:(新闻速递,学习,开源,算法)