
[CVPR 2025-ADVML] Dépôt officiel pour `Attacking Attention of Foundation Models Effectively Disrupts Downstream Tasks`
Implémentation officielle en PyTorch de l'article "Attacking Attention of Foundation Models Effectively Disrupts Downstream Tasks", accepté à l'atelier Adversarial Machine Learning on Computer Vision: Foundation Models + X (ADVML) de CVPR 2025.
# Attacking Attention of Foundation Models Effectively Disrupts Downstream Tasks"
Hondamunige Prasanna Silva, Federico Becattini et Lorenzo SeidenariRésumé : Les modèles de fondation représentent le changement de paradigme le plus important et le plus récent de l'intelligence artificielle. Les modèles de fondation sont de grands modèles, entraînés sur des données étendues, qui offrent une grande précision dans de nombreuses tâches en aval, souvent sans réglage fin. Pour cette raison, des modèles tels que CLIP, DINO ou Vision Transformers (ViT), deviennent la pierre angulaire de nombreuses applications industrielles basées sur l'IA. Cependant, la dépendance aux modèles de fondation pré-entraînés introduit également d'importantes préoccupations de sécurité, car ces modèles sont vulnérables aux attaques adverses. De telles attaques impliquent des entrées délibérément conçues pour tromper les systèmes d'IA, compromettant leur fiabilité. Cet article étudie les vulnérabilités des modèles de fondation pour la vision, en se concentrant spécifiquement sur CLIP et les ViT, et explore la transférabilité des attaques adverses vers les tâches en aval. Nous introduisons une nouvelle attaque, ciblant la structure des architectures basées sur les transformers de manière agnostique à la tâche. Nous démontrons l'efficacité de notre attaque sur plusieurs tâches en aval : classification, génération de légendes, récupération image/texte, segmentation et estimation de profondeur.
conda env create -f environment.yml
pip install .
pip instlal -e . # If you want in edit mode!
attack-attention
├─ .gitignore
├─ .pre-commit-config.yaml
├─ LICENSE
├─ README.md
├─ checkpoint
│ ├─ albef
│ └─ tcl
├─ data
│ ├─ flickr30k-images
│ └─ val2014
├─ SGA
│ └─ ...
├─ data_annotation
│ ├─ coco_test.json
│ └─ flickr30k_test.json
├─ environment.yml
├─ eval_clip-vit2albef.py
├─ eval_clip-vit2clip-cnn.py
├─ eval_clip.py
├─ models
│ ├─ __init__.py
│ ├─ clip_model
│ │ ├─ model.py
│ │ └─ ..
│ └─ ..
└─ std_eval_idx
├─ flickr30k
└─ mscoco
Créez le dossier checkpoint dans le dossier racine et téléchargez les modèles TCL et ALBEF.
Les checkpoints des modèles VLP affinés sont accessibles dans ALBEF, TCL.
Créez le dossier data dans le dossier racine et téléchargez FLICKR30K, MSCOCO.
Consultez readme.md dans le dossier SGA folder.
Pour évaluer l'attaque without trasferability
python eval_clip.py --config ./configs/Retrieval_coco.yaml \
--source_model ViT-B/16 --original_rank_index ./std_eval_idx/mscoco/ \
--loss atn --method 1;
Pour évaluer l'attaque avec transférabilité (ALBEF)
python eval_clip-vit2albef.py --config ./configs/Retrieval_flickr.yaml \
--source_model ViT-B/16 --target_model ALBEF --target_ckpt ./checkpoint/albef/flickr30k.pth \
--original_rank_index ./std_eval_idx/flickr30k/ --loss atn --method 1
Pour évaluer l'attaque avec transférabilité (TCL)
python eval_clip-vit2albef.py --config ./configs/Retrieval_flickr.yaml \
--source_model ViT-B/16 --target_model TCL --target_ckpt ./checkpoint/tcl/checkpoint_flickr_finetune.pth \
--original_rank_index ./std_eval_idx/flickr30k/ --loss atn --method 1
Pour évaluer l'attaque avec transférabilité (CLIP-CNN)
python eval_clip-vit2clip-cnn.py --config ./configs/Retrieval_flickr.yaml \
--source_model ViT-B/16 --target_model RN101 \
--original_rank_index ./std_eval_idx/flickr30k/ --loss atn --method 1
--source_model ViT-B/16 --method 3 --loss emb
Si vous trouvez ce travail utile, merci d'envisager de le citer :
@InProceedings{Silva_2025_CVPR,
author = {Silva, Hondamunige Prasanna and Becattini, Federico and Seidenari, Lorenzo},
title = {Attacking Attention of Foundation Models Disrupts Downstream Tasks},
booktitle = {Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR) Workshops},
month = {June},
year = {2025},
pages = {3534-3543}
}
| Argument | Défaut | Type | Description |
|---|
--config | ./configs/Retrieval_flickr.yaml | str | Chemin vers le fichier de configuration YAML. |
--seed | 42 | int | Graine pour la génération de nombres aléatoires afin d'assurer la reproductibilité. |
--source_model | ViT-B/16 | str | Nom du modèle source utilisé pour l'évaluation. |
--source_text_encoder | bert-base-uncased | str | Architecture de l'encodeur de texte pour le modèle source. |
--source_ckpt | None | str | Chemin vers le checkpoint du modèle source, le cas échéant. |
--target_model | ALBEF | str | Modèle cible pour l'évaluation. |
--target_text_encoder | bert-base-uncased | str | Encodeur de texte pour le modèle cible. |
--target_ckpt | ./checkpoint/albef/flickr30k.pth | str | Chemin vers le checkpoint du modèle cible. |
--original_rank_index_path | ./std_eval_idx/flickr30k/ | str | Chemin vers le fichier contenant les indices de classement d'origine. |
--alpha | 90 | int | Poids pour la fonction de perte lors de l'optimisation adverse. |
--loss | atn | str | Type de fonction de perte à utiliser. |
--method | 1 | int | Identifiant de la méthode d'attaque ; reportez-vous à la fonction my_attack pour plus de détails. |
--index | 11 | int | Indice de la couche à attaquer dans le modèle cible. |