模型介绍
中文整理通用预训练模型介绍
BEiTv2(large模型,在ImageNet-1k上预训练,并在ImageNet-21k上进行微调)
BEiTv2模型先在ImageNet-1k(1419万张图像,1000个类别)数据集上以自监督的方式进行预训练,并在ImageNet-21k(1400万张图像,21,841个类别)数据集上进行微调,得到的预训练模型在下游ImageNet-1k分类任务上进行微调后,BEiTv2-large在ImageNet-1k验证集上达到了88.4%的top-1精度,在其它下游任务上也分别达到了SOTA的结果。
本系列还有如下模型,欢迎试用:
BEiTv2图像分类-通用-base
ViT图像分类-中文-日常物品
ViT图像分类-通用
NextViT实时图像分类-中文-日常物品
ConvNeXt图像分类-中文-垃圾分类
模型描述
BEiT(Bidirectional Encoder Image Transformers)是一个自监督视觉表示模型。受BERT在NLP领域中的启发,BEiT提出掩码图像建模(masked image modeling,MIM)任务来预训练Vision Transformer。
BEiT预训练过程如下:预训练之前,通过自编码器dVAE学习一个image tokenizer,其根据学习到的vocabulary,可以将一幅图像tokenized为离散visual tokens。在预训练期间,每个图像有两种视角:image patches和visual tokens。随机掩盖Image patches的一部分,并且用特定的mask embedding替换,然后将patches输入到backbone vision Transformer。预训练的目标是基于掩盖的image patches来恢复原有visual tokens。预训练BEiT之后,可以通过在预训练的encoder上添加特定任务的层,直接对下游任务的模型参数进行微调,预训练过程如图:
BEiTv2在BEiT的基础上对dVAE学到的语义空间进行深入的探讨和优化:使用矢量量化-知识蒸馏(Vector-quantized Knowledge Distillation,VQ-KD)的方法来学习生成视觉标志,该方法的核心思想是通过一个训练好的模型,例如CLIP或DINO作为Teacher来指导视觉标志的学习。BEiTv2和BEiT一样,它也是一个两阶段的模型:它的第一阶段是VQ-KD的训练,第二阶段是预训练模型的训练。为了提升BEiT的效果,BEiTv2做了如下改进:
提出了VQ-KD方法来对图像进行编码,它将原始图像作为输入,使用另外一个模型作为教师系统来引导视觉标志模型的训练。在通过VQ-KD得到图像的视觉标志之后,使用这个视觉标志作为预训练模型的训练目标。
VQ-KD计算流程:
为了学习图像的全局信息,BEiTv2在输入编码中拼接了[CLS]标志,然后通过对[CLS]标志的预训练来得到图像的全局信息,从而使得BEiTv2在线性探测(Linear Probe)方式也能拥有非常高的准确率。
掩码图像模型的计算流程:
在ImageNet-1K上,patch为16,分辨率为224x224,BEiTv2-large的top-1准确率相比BEiT-large从87.4%提高到了88.4%,超过从头开始训练DeiT模型的准确率。
本模型基于BEiTv2-large,patch为16,分辨率为224x224,先在ImageNet-1k进行预训练1600个epoch,并在ImageNet-21k上进行微调90个epoch,得到预训练模型后在ImageNet-1k上进行微调20个epoch,最终在ImageNet-1k验证集上的top-1精度为88.4%。
期望模型使用方式以及适用范围
本模型作为一个Transformer预训练模型,可直接作为分类、检测、分割等下游任务的预训练backbone,在下游任务数据集上进行少量微调即可得到很好的结果。
如何使用
在ModelScope框架上,提供输入图片,即可通过简单的Pipeline调用来使用。
代码范例
模型局限性以及可能的偏差
本模型以ImageNet-1K作为下游分类任务的示例,仅支持ImageNet-1K标签体系的1000类分类。如若在其它下游任务中使用,直接进行fine-tune即可。
模型基于ImageNet-1K、ImageNet-21K等公开数据集进行训练,生成结果可能会存在与训练数据分布相关的偏差。
fine-tune时超参不同,生成的结果可能有略微差异。
训练数据介绍
ImageNet-1k:ImageNet数据集包含14,197,122个带注释的图像。自2010年以来,作为图像分类的基准数据集,该数据集被用于ImageNet大规模视觉识别挑战(ILSVRC)。
ImageNet-21k:开源数据集,1400万张带注释的图像,共21,841个类别。
模型训练流程
主要训练参数参考BEiTv2论文中的设置,使用8张GPU,batchsize为1024,学习率为5e-5,使用Cosine进行5个epoch预热,一共微调训练20个epoch。
预处理
测试时主要的预处理如下:
Resize:先将原始图片的短边缩放至256
Normalize:图像归一化,减均值除以标准差
CenterCrop:裁切为224x224
数据评估及结果
模型在ImageNet1K验证集上的评估结果:
Model top-1 acc top-5 acc #params Remark
:--------: :-------: :--------: :-------: --------------
BEiTv2-large 88.4 98.6 304M modelscope
论文中模型在ImageNet1K验证集上的评估结果:
模型训练
使用托管在modelscope DatasetHub上的小型数据集mini imagenet100进行finetune训练的示例代码:
训练说明见示例代码中的注释,更详细的训练说明和用法见官方的训练文档。训练过程产生的log和模型权重文件保存在work dir工作目录中,并以前缀为'best '的文件保存了在验证集上最优精度的权重。evaluate()默认使用精度最高的模型权重进行评估。
模型评估
使用训练好的模型对需要评估的数据集进行精度评估示例代码如下:
评估过程默认使用模型中自带的预训练权重进行评估,以上对ImageNet1K验证集的评估结果为: result: {'accuracy top-1': 88.35600280761719, 'accuracy top-5': 98.5780029296875}
Clone with HTTP
引用
如果该模型对你有所帮助,请引用相关的论文:
优先采用原作者提供的中文模型卡片;仅有英文说明时由闲社AI翻译整理。重要参数、许可证和商用范围请以原文为准。
你将获得什么
完整仓库方式包含该固定版本中的权重、配置、分词器及说明文件;指定版本方式只下载所选文件或整组分片。多模态模型的投影文件、配置等依赖,请按作者说明配齐。
完整仓库可能包含多个权重格式,因此需要的磁盘空间可能大于单一格式的模型大小。下载文件不等于完成模型部署。
使用前须知
运行模型需要的设备、工具与依赖,以原作者说明为准。
是否允许商用、修改和分发,请查看模型许可证。
闲社提供资料与镜像下载方法,不代表已运行模型或完成安全审计。下载的代码应先检查,再执行。
资料或下载有问题?
登录后可提交反馈。
