zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

扩展配置开源学习框架 揭秘 新一代 监督
2023-06-13 09:16:25 时间

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

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

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

2022 年 09 月,我们发布了 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,它具有统一的数据结构,提高了可存储信息的丰富性,同时也易于扩展,如下图所示:

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

丰富的可视化工具

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

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

更灵活的下游任务支持

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

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

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

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

更全面的用户文档

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

更丰富的算法模型支持

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

我们对于部分前沿模型提供了全量模型的支持,方便用户基于 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 的训练,如下:

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

SimMIM 实验结果

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

MoCo V3 实验结果

总结

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

想了解更多 MMSelfSup 相关内容,欢迎查看直播回放视频~

后续规划

未来,我们也将不断地迭代更新,计划在未来支持更多自监督学习算法,不断提高模型的易用性,提供一键式的下游任务训练工具,以及提供统一的 Benchmark 标准。

MMSelfSup 新版本地址:

https://github.com/open-mmlab/mmselfsup/tree/1.x

欢迎社区用户参与公测,并向我们提出宝贵的意见,我们将倾听大家的意见,不断迭代完善 MMSelfSup。