[ICCV 2023] (ORAL) Il s'agit du référentiel officiel de notre article: le réglage fin visuel économe en paramètres visuels par Haoyu He, Jianfei Cai, Jing Zhang, Dacheng Tao et Bohan Zhuang.
[2023-09-12]: Code de libération.Nouvelles
[2023-08-12]: A été accepté par ICCV 2023 pour la présentation orale!
Au lieu de présenter une autre architecture avec des paramètres apprenables dans le réglage fin (PEFT), notre travail, notre travail souligne l'importance de mettre des architectures PEFT à des positions optimales adaptées à diverses tâches!

Notre SPT se compose de deux étapes.
L'étape 1 est une estimation de sensibilité des paramètres à un coup très rapide (plusieurs secondes) pour trouver où introduire des paramètres d'entraînement. Voici quelques modèles de sensibilité intéressants dans diverses vites pré-formées avec des paramètres sensibles parmi les meilleurs 0,4%. Nous constatons que les proportions présentent des modèles variables spécifiques à la tâche en termes de profondeur de réseau et de modèles similaires d'agnostiques en termes d'opérations .


L'étape 2 est un PEFT standard qui maintient les paramètres majoritaires gelés et affinent uniquement les paramètres formables. Notre SPT introduit des paramètres formables aux positions sensibles dans deux granulations: les neurones non structurés et les modules PEFT structurés (par exemple, LORA ou adaptateur) pour obtenir de bonnes performances!

Si vous trouvez ce référentiel ou notre article utile, veuillez envisager de nous citer et de nous jouer!
@inproceedings{he2023sensitivity,
title={Sensitivity-Aware Visual Parameter-Efficient Fine-Tuning},
author={He, Haoyu and Cai, Jianfei and Zhang, Jing and Tao, Dacheng and Zhuang, Bohan},
booktitle={ICCV},
year={2023}
}
Nous avons testé notre code sur Torch 1.8.0 et 1.10.0. Veuillez installer les autres dépendances avec le code suivant dans le répertoire domestique:
pip install -r requirements.txt
Nous fournissons un code de formation et d'inférence pour notre référence principale VTAB-1k.
cd data/vtab-source
python get_vtab1k.py
PS: Vous devrez peut-être installer manuellement Sun397. Veuillez vous référer à VTAB-1k.
Veuillez télécharger les épine dorsales avec le code suivant:
cd checkpoints
# Supervised pre-trained ViT-B/16
wget https://console.cloud.google.com/storage/browser/_details/vit_models/imagenet21k/ViT-B_16.npz
# MAE pre-trained ViT-B/16
wget https://dl.fbaipublicfiles.com/mae/pretrain/mae_pretrain_vit_base.pth
# MoCo V3 pre-trained ViT-B/16
wget https://dl.fbaipublicfiles.com/moco-v3/vit-b-300ep/linear-vit-b-300ep.pth.tar
Nous avons fourni le code suivant (nous avons déjà fourni la sensibilité à Vit-B / 16 pré-formé supervisé dans sensitivity_spt_supervised_lora_a10 et sensitivity_spt_supervised_adapter_a10 ).
# SPT-ADAPTER and SPT-LORA with supervised pre-trained ViT-B/16
bash configs/vtab_mae_spt_lora_sensitivity.sh
bash configs/vtab_mae_spt_adapter_sensitivity.sh
# SPT-ADAPTER and SPT-LORA with MAE pre-trained ViT-B/16
bash configs/vtab_mae_spt_lora_sensitivity.sh
bash configs/vtab_mae_spt_adapter_sensitivity.sh
# SPT-ADAPTER and SPT-LORA with MoCo V3 pre-trained ViT-B/16
bash configs/vtab_mae_spt_lora_sensitivity.sh
bash configs/vtab_mae_spt_adapter_sensitivity.sh
Nous avons fourni le code de formation suivant:
# SPT-ADAPTER and SPT-LORA with supervised pre-trained ViT-B/16
bash configs/vtab_supervised_spt_lora.sh
bash configs/vtab_supervised_spt_adapter.sh
# SPT-ADAPTER and SPT-LORA with MAE pre-trained ViT-B/16
bash configs/vtab_mae_spt_lora.sh
bash configs/vtab_mae_spt_adapter.sh
# SPT-ADAPTER and SPT-LORA with MoCo V3 pre-trained ViT-B/16
bash configs/vtab_moco_spt_lora.sh
bash configs/vtab_moco_spt_adapter.sh
PS: Nous balayons différents budgets de paramètres formables pour rechercher de meilleurs résultats potentiels (de 0,2 m à 1,0 m).
- [x] Release code for SPT on ViTs.
- [ ] Release code for FGVC benchmark training (ETA October).
- [ ] Release code for SPT on Swin (ETA October).
- [ ] Release code for SPT on ConvNext (ETA October).
- [ ] Integrate to [PEFT](https://github.com/huggingface/peft) package.
Notre code est modifié à partir de Noah, Coop, Autoformer, Timm et MMCV. Nous remercions les auteurs pour leur code open source.