· 论文 · 基准 · 主页 · 文档 ·
✅ [2024/07/25] Visual PEFT Benchmark开始发布数据集、代码等。
✅ [2024/06/20] Visual PEFT Benchmark 主页已创建。
✅ [2024/06/01] Visual PEFT Benchmark 存储库已创建。
介绍
入门
代码结构
快速入门
结果和检查点
社区和联系方式
引文
参数高效迁移学习 (PETL) 方法有望使预训练模型适应各种下游任务,同时仅训练少数参数。在计算机视觉(CV)领域,已经提出了许多PETL算法,但它们的直接使用或比较仍然不方便。为了应对这一挑战,我们通过从图像识别、视频动作识别和密集预测任务中选择 30 个多样化、具有挑战性和全面的数据集,构建了 CV 领域的统一视觉 PETL 基准(V-PETL Bench)。在这些数据集上,我们系统地评估了25 个主要的 PETL 算法,并开源了一个模块化且可扩展的代码库,以便对这些算法进行公平的评估。
细粒度视觉分类任务 (FGVC)
FGVC 包含 5 个细粒度视觉分类数据集。可以通过官方链接下载数据集。如果公共验证集不可用,我们将分割训练数据。分割后的数据集可以在这里找到:下载链接。
CUB200 2011
北美鸟类
牛津花
斯坦福狗
斯坦福汽车
视觉任务适应基准(VTAB)
VTAB 包含 19 个不同的视觉分类数据集。我们已经处理了所有数据集,数据可以在这里下载:下载链接。具体处理过程和提示请参见VTAB_SETUP。
动力学-400
从下载链接或下载链接下载数据集。
通过将视频短边大小调整为320px来预处理数据集。您可以参考MMAction2数据基准。
生成数据加载器所需的注释(注释中的“train.csv
、 val.csv
和test.csv
。 *.csv
文件的格式如下:
video_1.mp4 label_1 video_2.mp4 label_2 video_3.mp4 label_3 ... video_N.mp4 label_N
东西-东西 V2 (SSv2)
从下载链接下载数据集。
通过将视频扩展名从webm
更改为.mp4
以及原始高度240px来预处理数据集。您可以参考MMAction2数据基准。
生成数据加载器所需的注释(注释中的“train.csv
、 val.csv
和test.csv
。 *.csv
文件的格式如下:
video_1.mp4 label_1 video_2.mp4 label_2 video_3.mp4 label_3 ... video_N.mp4 label_N
MS-COCO
MS-COCO 可从此下载链接获取。
ADE20K
ADE20K的训练和验证集可以从此下载链接下载。我们还可以从下载链接下载测试集。
帕斯卡VOC
Pascal VOC 2012 可以从下载链接下载。此外,最近关于 Pascal VOC 数据集的工作通常会利用额外的增强数据,可以找到下载链接。
下载 ViT-B/16 预训练模型并将其放置到/path/to/pretrained_models
。
mkdir pretrained_models wget https://storage.googleapis.com/vit_models/imagenet21k/ViT-B_16.npz
或者您可以下载 Swin-B 预训练模型。请注意,您还需要将下载的 Swin-B ckpt 从swin_base_patch4_window7_224_22k.pth
重命名为Swin-B_16.pth
。
mkdir pretrained_models wget https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window7_224_22k.pth mv swin_base_patch4_window7_224_22k.pth Swin_B_16.pth
另一种方法是从下面的链接下载预训练模型并将其放入/path/to/pretrained_models
。
预训练骨干 | 预训练目标 | 预训练数据集 | 检查站 |
---|---|---|---|
维生素B/16 | 监督 | ImageNet-21K | 下载链接 |
维T-L/16 | 监督 | ImageNet-21K | 下载链接 |
ViT-H/16 | 监督 | ImageNet-21K | 下载链接 |
斯温-B | 监督 | ImageNet-22K | 下载链接 |
斯温-L | 监督 | ImageNet-22K | 下载链接 |
ViT-B(视频MAE) | 自我监督 | 动力学-400 | 下载链接 |
视频 Swin-B | 监督 | 动力学-400 | 下载链接 |
ImageClassification/configs
:处理实验的配置参数。
ImageClassification/config/vtab/cifar100.yaml
:每个数据集的实验和解释的主要配置设置。
……
ImageClassification/dataloader
:加载和设置输入数据集。
ImageClassification/dataloader/transforms
:图像转换。
ImageClassification/dataloader/loader
:构造给定数据集的数据加载器。
ImageClassification/models
:处理不同微调协议的主干拱门和头部
ImageClassification/models/vision_transformer_adapter.py
:包含与vit_backbones
文件夹中相同的主干的文件夹,为 Adapter 指定。
ImageClassification/models/vision_transformer_sct.py
:一个文件夹包含与vit_backbones
文件夹中相同的主干网,指定用于 SCT。
……
ImageClassification/train
:包含training file
夹的文件夹,
ImageClassification/train/train_model_adapter.py
:调用此函数进行训练并评估具有为 Adapter 指定的指定传输类型的模型。
ImageClassification/train/train_model_sct.py
:调用此模型进行训练并评估具有指定传输类型(为 SCT 指定)的模型。
……
ImageClassification/scripts
:包含scripts file
文件夹的文件夹,
ImageClassification/scripts/run_vit_adapter.sh
:您可以立即在所有数据集上运行 Adapter 方法。
ImageClassification/scripts/run_vit_sct.sh
:您可以立即在所有数据集上运行 Adapter 方法。
……
ImageClassification/Visualize
:可视化工具。
ImageClassification/Visualize/AttentionMap.py
:注意力图可视化。
ImageClassification/Visualize/TSNE.py
:T-SNE 可视化。
ImageClassification/utils
:创建记录器、设置种子等。
❗️注意❗️:如果你想创建自己的PETL算法,请注意`ImageClassification/models`。
这是如何在本地设置 V-PETL Bench 的示例。
要获取本地副本,请按照以下简单的示例步骤运行。
git 克隆 https://github.com/synbol/Parameter-Efficient-Transfer-Learning-Benchmark.git
V-PETL Bench是基于pytorch构建的,有torchvision、torchaudio、timm等。
要安装所需的包,您可以创建 conda 环境。
conda 创建 --name v-petl-bench python=3.8
激活conda环境。
conda 激活 v-petl-bench
使用 pip 安装所需的包。
cd 参数高效迁移学习基准 pip install -r 要求.txt
我们提供了具体的训练和评估演示,以VTAB Cifar100上的LoRA为例。
导入系统 sys.path.append("参数高效传输学习基准") 进口火炬 从图像分类导入实用程序 从 ImageClassification.dataloader 导入 vtab from ImageClassification.train import train# 获取 lora 方法from timm.scheduler.cosine_lr import CosineLRScheduler 从 ImageClassification.models 导入 Vision_transformer_lora import timm# 保存模型和日志的路径exp_base_path = '../output'utils.mkdirss(exp_base_path)# create loggerlogger = utils.create_logger(log_path=exp_base_path, log_name='training')# 数据集配置parameterconfig = utils.get_config(' model_lora', 'vtab', 'cifar100')# 获取vtab数据集data_path = '/home/ma-user/work/haozhe/synbol/vtab-1k'train_dl, test_dl = vtab.get_data(data_path, 'cifar100', logger,评估=False,train_aug=config['train_aug'],batch_size=config['batch_size'])#获取预训练模型model = timm.models.create_model('vit_base_patch16_224_in21k_lora',checkpoint_path='./released_models/ViT-B_16.npz' ,drop_path_rate=0.1,tuning_mode='lora') model.reset_classifier(config['class_num'])# 训练参数trainable = []for n, p in model.named_parameters(): if 'linear_a' in n or 'linear_b' in n or 'head' in n: 可训练.append(p) 记录器.info(str(n)) 别的: p.requires_grad = False opt = torch.optim.AdamW(可训练,lr=1e-4,weight_decay=5e-2) Scheduler = CosineLRScheduler(opt, t_initial=config['epochs'], Warmup_t=config['warmup_epochs'], lr_min=1e-5, Warmup_lr_init=1e-6, Cycle_decay = 0.1)# crossEntropyLoss 函数criterion = torch.nn.CrossEntropyLoss( )# Trainingmodel = train.train(config, model, criteria, train_dl, opt, Scheduler, logger, config['epochs'], 'vtab', 'cifar100')# eval_acc = train.test(model, test_dl, 'vtab ')
您可以在数据集上使用 PETL 算法进行训练。
python python train/train_model_sct.py --dataset cifar100 --task vtab --lr 0.012 --wd 0.6 --eval True --dpr 0.1 --tuning_mode $tuning_mode --model_type $model_type --model $model --model_checkpoint $模型检查点
或者您可以在所有数据集上使用 PETL 算法进行训练
bash 脚本/run_model_sct.sh
我们使用在 ImageNet-21K 上预训练的 ViT-B/16 模型在 5 个数据集上评估 13 个 PETL 算法。
要获取检查点,请从下载链接下载。
方法 | CUB-200-2011 | 北美鸟类 | 牛津花 | 斯坦福狗 | 斯坦福汽车 | 意思是 | 参数。 | PPT |
---|---|---|---|---|---|---|---|---|
全程微调 | 87.3 | 82.7 | 98.8 | 89.4 | 84.5 | 88.54 | 85.8M | - |
线性探测 | 85.3 | 75.9 | 97.9 | 86.2 | 51.3 | 79.32 | 0米 | 0.79 |
适配器 | 87.1 | 84.3 | 98.5 | 89.8 | 68.6 | 85.66 | 0.41M | 0.84 |
适应成型器 | 88.4 | 84.7 | 99.2 | 88.2 | 81.9 | 88.48 | 0.46M | 0.87 |
前缀调优 | 87.5 | 82.0 | 98.0 | 74.2 | 90.2 | 86.38 | 0.36M | 0.85 |
U 型调谐 | 89.2 | 85.4 | 99.2 | 84.1 | 92.1 | 90.00 | 0.36M | 0.89 |
比特菲特 | 87.7 | 85.2 | 99.2 | 86.5 | 81.5 | 88.02 | 0.10M | 0.88 |
VPT-浅层 | 86.7 | 78.8 | 98.4 | 90.7 | 68.7 | 84.66 | 0.25M | 0.84 |
VPT-深 | 88.5 | 84.2 | 99.0 | 90.2 | 83.6 | 89.10 | 0.85M | 0.86 |
SSF | 89.5 | 85.7 | 99.6 | 89.6 | 89.2 | 90.72 | 0.39M | 0.89 |
洛拉 | 85.6 | 79.8 | 98.9 | 87.6 | 72.0 | 84.78 | 0.77M | 0.82 |
全球定位系统 | 89.9 | 86.7 | 99.7 | 92.2 | 90.4 | 91.78 | 0.66M | 0.90 |
高温试验 | 89.2 | 85.8 | 99.6 | 89.5 | 88.2 | 90.46 | 0.78M | 0.88 |
最后的 | 88.5 | 84.4 | 99.7 | 86.0 | 88.9 | 89.50 | 0.66M | 0.87 |
神经网络因子 | 90.2 | 87.4 | 99.7 | 89.5 | 86.9 | 90.74 | 0.25M | 0.90 |
VTAB 的基准结果。我们使用在 ImageNet-21K 上预训练的 ViT-B/16 模型在 19 个数据集上评估 18 个 PETL 算法。
要获取检查点,请从下载链接下载。
方法 | CIFAR-100 | 加州理工学院101 | DTD | 鲜花102 | 宠物 | SVHN | 孙397 | 帕奇·卡梅利翁 | 欧洲卫星公司 | 抵抗45 | 视网膜病变 | 聪明/计数 | 聪明/距离 | DM实验室 | 基蒂/距离 | dSprites/loc | dSprite/ori | 小NORB/azi | 小NORB/ele | 意思是 | 参数。 | PPT |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
全程微调 | 68.9 | 87.7 | 64.3 | 97.2 | 86.9 | 87.4 | 38.8 | 79.7 | 95.7 | 84.2 | 73.9 | 56.3 | 58.6 | 41.7 | 65.5 | 57.5 | 46.7 | 25.7 | 29.1 | 65.57 | 85.8M | - |
线性探测 | 63.4 | 85.0 | 63.2 | 97.0 | 86.3 | 36.6 | 51.0 | 78.5 | 87.5 | 68.6 | 74.0 | 34.3 | 30.6 | 33.2 | 55.4 | 12.5 | 20.0 | 9.6 | 19.2 | 52.94 | 0M | 0.53 |
适配器 | 69.2 | 90.1 | 68.0 | 98.8 | 89.9 | 82.8 | 54.3 | 84.0 | 94.9 | 81.9 | 75.5 | 80.9 | 65.3 | 48.6 | 78.3 | 74.8 | 48.5 | 29.9 | 41.6 | 71.44 | 0.16M | 0.71 |
VPT-浅层 | 77.7 | 86.9 | 62.6 | 97.5 | 87.3 | 74.5 | 51.2 | 78.2 | 92.0 | 75.6 | 72.9 | 50.5 | 58.6 | 40.5 | 67.1 | 68.7 | 36.1 | 20.2 | 34.1 | 64.85 | 0.08M | 0.65 |
VPT-深 | 78.8 | 90.8 | 65.8 | 98.0 | 88.3 | 78.1 | 49.6 | 81.8 | 96.1 | 83.4 | 68.4 | 68.5 | 60.0 | 46.5 | 72.8 | 73.6 | 47.9 | 32.9 | 37.8 | 69.43 | 0.56M | 0.68 |
比特菲特 | 72.8 | 87.0 | 59.2 | 97.5 | 85.3 | 59.9 | 51.4 | 78.7 | 91.6 | 72.9 | 69.8 | 61.5 | 55.6 | 32.4 | 55.9 | 66.6 | 40.0 | 15.7 | 25.1 | 62.05 | 0.10M | 0.61 |
洛拉 | 67.1 | 91.4 | 69.4 | 98.8 | 90.4 | 85.3 | 54.0 | 84.9 | 95.3 | 84.4 | 73.6 | 82.9 | 69.2 | 49.8 | 78.5 | 75.7 | 47.1 | 31.0 | 44.0 | 72.25 | 0.29M | 0.71 |
适应成型器 | 70.8 | 91.2 | 70.5 | 99.1 | 90.9 | 86.6 | 54.8 | 83.0 | 95.8 | 84.4 | 76.3 | 81.9 | 64.3 | 49.3 | 80.3 | 76.3 | 45.7 | 31.7 | 41.1 | 72.32 | 0.16M | 0.72 |
SSF | 69.0 | 92.6 | 75.1 | 99.4 | 91.8 | 90.2 | 52.9 | 87.4 | 95.9 | 87.4 | 75.5 | 75.9 | 62.3 | 53.3 | 80.6 | 77.3 | 54.9 | 29.5 | 37.9 | 73.10 | 0.21M | 0.72 |
诺亚 | 69.6 | 92.7 | 70.2 | 99.1 | 90.4 | 86.1 | 53.7 | 84.4 | 95.4 | 83.9 | 75.8 | 82.8 | 68.9 | 49.9 | 81.7 | 81.8 | 48.3 | 32.8 | 44.2 | 73.25 | 0.43M | 0.72 |
干细胞移植 | 75.3 | 91.6 | 72.2 | 99.2 | 91.1 | 91.2 | 55.0 | 85.0 | 96.1 | 86.3 | 76.2 | 81.5 | 65.1 | 51.7 | 80.2 | 75.4 | 46.2 | 33.2 | 45.7 | 73.59 | 0.11M | 0.73 |
事实 | 70.6 | 90.6 | 70.8 | 99.1 | 90.7 | 88.6 | 54.1 | 84.8 | 96.2 | 84.5 | 75.7 | 82.6 | 68.2 | 49.8 | 80.7 | 80.8 | 47.4 | 33.2 | 43.0 | 73.23 | 0.07M | 0.73 |
代表适配器 | 72.4 | 91.6 | 71.0 | 99.2 | 91.4 | 90.7 | 55.1 | 85.3 | 95.9 | 84.6 | 75.9 | 82.3 | 68.0 | 50.4 | 79.9 | 80.4 | 49.2 | 38.6 | 41.0 | 73.84 | 0.22M | 0.72 |
九头蛇 | 72.7 | 91.3 | 72.0 | 99.2 | 91.4 | 90.7 | 55.5 | 85.8 | 96.0 | 86.1 | 75.9 | 83.2 | 68.2 | 50.9 | 82.3 | 80.3 | 50.8 | 34.5 | 43.1 | 74.21 | 0.28M | 0.73 |
LST | 59.5 | 91.5 | 69.0 | 99.2 | 89.9 | 79.5 | 54.6 | 86.9 | 95.9 | 85.3 | 74.1 | 81.8 | 61.8 | 52.2 | 81.0 | 71.7 | 49.5 | 33.7 | 45.2 | 71.70 | 2.38M | 0.65 |
数据传输层 | 69.6 | 94.8 | 71.3 | 99.3 | 91.3 | 83.3 | 56.2 | 87.1 | 96.2 | 86.1 | 75.0 | 82.8 | 64.2 | 48.8 | 81.9 | 93.9 | 53.9 | 34.2 | 47.1 | 74.58 | 0.04M | 0.75 |
高温试验 | 76.7 | 94.1 | 74.8 | 99.6 | 91.1 | 91.2 | 52.3 | 87.1 | 96.3 | 88.6 | 76.5 | 85.4 | 63.7 | 52.9 | 81.7 | 87.2 | 56.8 | 35.8 | 52.1 | 75.99 | 0.78M | 0.74 |
全球定位系统 | 81.1 | 94.2 | 75.8 | 99.4 | 91.7 | 91.6 | 52.4 | 87.9 | 96.2 | 86.5 | 76.5 | 79.9 | 62.6 | 55.0 | 82.4 | 84.0 | 55.4 | 29.7 | 46.1 | 75.18 | 0.22M | 0.74 |
最后的 | 66.7 | 93.4 | 76.1 | 99.6 | 89.8 | 86.1 | 54.3 | 86.2 | 96.3 | 86.8 | 75.4 | 81.9 | 65.9 | 49.4 | 82.6 | 87.9 | 46.7 | 32.3 | 51.5 | 74.15 | 0.66M | 0.72 |
神经网络因子 | 84.0 | 94.0 | 72.7 | 99.3 | 91.3 | 90.3 | 54.9 | 87.2 | 97.3 | 85.5 | 74.5 | 82.3 | 63.8 | 49.8 | 82.5 | 75.8 | 49.2 | 31.4 | 42.1 | 74.10 | 0.25M | 0.73 |
SSv2 和 HMDB51 的基准测试结果。我们使用 VideoMAE 和 Video Swin Transformer 的 ViT-B 评估 5 种 PETL 算法。
要获取检查点,请从下载链接下载。
方法 | 模型 | 预训练 | 参数。 | SSv2(前 1 名) | SSv2(PPT) | HMDB51(前1名) | HMDB51 (PPT) |
---|---|---|---|---|---|---|---|
全程微调 | 维生素B | 动力学400 | 85.97M | 53.97% | - | 46.41% | - |
冷冻 | 维生素B | 动力学400 | 0米 | 29.23% | 0.29 | 49.84% | 0.50 |
适应成型器 | 维生素B | 动力学400 | 1.19米 | 59.02% | 0.56 | 55.69% | 0.53 |
巴帕特 | 维生素B | 动力学400 | 206米 | 57.78% | 0.53 | 57.18% | 0.53 |
全程微调 | 视频 Swin-B | 动力学400 | 87.64M | 50.99% | - | 68.07% | - |
冷冻 | 视频 Swin-B | 动力学400 | 0米 | 24.13% | 0.24 | 71.28% | 0.71 |
洛拉 | 视频 Swin-B | 动力学400 | 0.75米 | 38.34% | 0.37 | 62.12% | 0.60 |
比特菲特 | 视频 Swin-B | 动力学400 | 109米 | 45.94% | 0.44 | 68.26% | 0.65 |
适应成型器 | 视频 Swin-B | 动力学400 | 1.56M | 40.80% | 0.38 | 68.66% | 0.64 |
前缀调整 | 视频 Swin-B | 动力学400 | 6.37米 | 39.46% | 0.32 | 56.13% | 0.45 |
巴帕特 | 视频 Swin-B | 动力学400 | 6.18米 | 53.36% | 0.43 | 71.93% | 0.58 |
COCO 上的基准结果。我们使用在 ImageNet-22K 上预训练的 Swin-B 模型评估 9 个 PETL 算法。
要获取检查点,请在即将推出中下载。
斯温-B | 参数。 | 记忆 | 可可( | 可可(PPT) | 可可( | 可可(PPT) |
---|---|---|---|---|---|---|
全程微调 | 86.75米 | 17061MB | 51.9% | - | 45.0% | - |
冷冻 | 0.00米 | 7137MB | 43.5% | 0.44 | 38.6% | 0.39 |
比特菲特 | 0.20M | 13657MB | 47.9% | 0.47 | 41.9% | 0.42 |
音调 | 0.06M | 12831MB | 48.0% | 0.48 | 41.4% | 0.41 |
部分1 | 12.60M | 7301MB | 49.2% | 0.35 | 42.8% | 0.30 |
适配器 | 3.11米 | 12557MB | 50.9% | 0.45 | 43.8% | 0.39 |
洛拉 | 3.03米 | 11975MB | 51.2% | 0.46 | 44.3% | 0.40 |
适应成型器 | 3.11米 | 13186MB | 51.4% | 0.46 | 44.5% | 0.40 |
洛兰德 | 1.20M | 13598MB | 51.0% | 0.49 | 43.9% | 0.42 |
E$^3$VA | 1.20M | 7639MB | 50.5% | 0.48 | 43.8% | 0.42 |
莫娜 | 4.16米 | 13996MB | 53.4% | 0.46 | 46.0% | 0.40 |
PASCAL VOC 和 ADE20K 的基准测试结果。我们使用在 ImageNet-22K 上预训练的 Swin-L 模型评估 9 个 PETL 算法。
要获取检查点,请在即将推出中下载。
斯温-L | 参数。 | 内存(VOC) | 帕斯卡VOC( | 帕斯卡VOC (PPT) | ADE20K( | ADE20K(PPT) |
---|---|---|---|---|---|---|
全程微调 | 198.58M | 15679MB | 83.5% | - | 52.10% | - |
冷冻 | 0.00米 | 3967MB | 83.6% | 0.84 | 46.84% | 0.47 |
比特菲特 | 0.30M | 10861MB | 85.7% | 0.85 | 48.37% | 0.48 |
音调 | 0.09米 | 10123MB | 85.8% | 0.86 | 47.98% | 0.48 |
部分1 | 28.34M | 3943MB | 85.4% | 0.48 | 47.44% | 0.27 |
适配器 | 4.66米 | 10793MB | 87.1% | 0.74 | 50.78% | 0.43 |
洛拉 | 4.57米 | 10127MB | 87.5% | 0.74 | 50.34% | 0.43 |
适应成型器 | 4.66米 | 11036MB | 87.3% | 0.74 | 50.83% | 0.43 |
洛兰德 | 1.31M | 11572MB | 86.8% | 0.82 | 50.76% | 0.48 |
E$^3$VA | 1.79米 | 4819MB | 86.5% | 0.81 | 49.64% | 0.46 |
莫娜 | 5.08M | 11958MB | 87.3% | 0.73 | 51.36% | 0.43 |
V-PETL Bench 社区由以下人员维护:
易鑫 ([email protected]),南京大学。
罗思琪 ([email protected]),上海交通大学。
如果您发现我们的调查和存储库对您的研究有用,请在下面引用:
@article{xin2024bench, title={V-PETL Bench:统一的视觉参数高效迁移学习基准},作者={Yi Xin, Siqi Luo, Xuyang Liu, Haodi Zhou, Xinyu Cheng, Christina Luoluo Lee, Junlong Du, Yuntao杜., 王浩哲, 陈明才, 刘婷, 胡桂敏, 万中伟, 张荣超, 李傲雪, 易明阳, 刘晓红}, 年={2024}}