Ze LiuHan HuYutong LinZhuliang YaoZhenda XieYixuan WeiJia NingYue CaoZheng ZhangLi DongFuru WeiBaining Guo

摘要
大规模自然语言处理(NLP)模型已被证明在各类语言任务上显著提升了性能,且尚未出现性能饱和的迹象,同时展现出类人般的少样本学习能力。本文旨在探索大规模模型在计算机视觉领域的应用。针对大规模视觉模型在训练与应用过程中面临的三大核心挑战——训练不稳定性、预训练与微调阶段分辨率之间的差异,以及对大量标注数据的依赖问题,本文提出三种关键技术:(1)结合残差后归一化(residual-post-norm)与余弦注意力机制,有效提升训练稳定性;(2)提出一种对数间隔连续位置偏置(log-spaced continuous position bias)方法,实现从低分辨率图像预训练模型向高分辨率下游任务的高效迁移;(3)设计一种自监督预训练方法 SimMIM,显著降低对大规模标注图像数据的需求。基于上述技术,本文成功训练出一个参数量达30亿的Swin Transformer V2模型,成为迄今参数量最大的稠密视觉模型。该模型支持最高达1,536×1,536分辨率图像的训练,展现出强大的高分辨率处理能力。在四个代表性视觉任务上,该模型均创下新的性能纪录,包括ImageNet-V2图像分类、COCO目标检测、ADE20K语义分割以及Kinetics-400视频动作分类任务。值得注意的是,本方法的训练效率远超谷歌此前发布的百亿级视觉模型:仅需其1/40的标注数据和1/40的训练时间。相关代码已开源,地址为:\url{https://github.com/microsoft/Swin-Transformer}。
代码仓库
rami0205/ngramswin
pytorch
GitHub 中提及
nku-shengzheliu/PaddlePaddle-Swin-Transformer-V2
paddle
GitHub 中提及
lucidrains/flash-cosine-sim-attention
pytorch
GitHub 中提及
microsoft/Swin-Transformer
官方
pytorch
GitHub 中提及
rwightman/pytorch-image-models
pytorch
GitHub 中提及
ChristophReich1996/Swin-Transformer-V2
pytorch
GitHub 中提及
JunnYu/x-transformers-paddle
jax
GitHub 中提及
Burf/SwinTransformer-Tensorflow2
tf
GitHub 中提及
pwc-1/Paper-10/tree/main/swin
mindspore
MindCode-4/code-5/tree/main/swin
mindspore
impiga/plain-detr
pytorch
GitHub 中提及
lyqcom/aaic_swintransformerv2
mindspore
isaaccorley/hydro-foundation-model
pytorch
GitHub 中提及
towhee-io/towhee
pytorch
shinya7y/UniverseNet
pytorch
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| action-classification-on-kinetics-400 | Video-SwinV2-G (ImageNet-22k and external 70M pretrain) | Acc@1: 86.8 |
| image-classification-on-imagenet | SwinV2-G | Number of params: 3000M Top 1 Accuracy: 90.17% |
| image-classification-on-imagenet | SwinV2-B | Number of params: 88M Top 1 Accuracy: 87.1% |
| image-classification-on-imagenet-v2 | SwinV2-B | Top 1 Accuracy: 78.08 |
| image-classification-on-imagenet-v2 | SwinV2-G | Top 1 Accuracy: 84.00% |
| instance-segmentation-on-coco | SwinV2-G (HTC++) | mask AP: 54.4 |
| instance-segmentation-on-coco-minival | SwinV2-G (HTC++) | mask AP: 53.7 |
| object-detection-on-coco | SwinV2-G (HTC++) | Params (M): 3000 box mAP: 63.1 |
| object-detection-on-coco-minival | SwinV2-G (HTC++) | box AP: 62.5 |
| semantic-segmentation-on-ade20k | SwinV2-G-HTC++ Liu et al. ([2021a]) | Validation mIoU: 53.7 |
| semantic-segmentation-on-ade20k | SwinV2-G(UperNet) | Validation mIoU: 59.9 |