
[CVPR 2025-ADVML] Официальный репозиторий для `Attacking Attention of Foundation Models Effectively Disrupts Downstream Tasks`
Официальная реализация на PyTorch статьи "Attacking Attention of Foundation Models Effectively Disrupts Downstream Tasks", принятой на семинаре Adversarial Machine Learning on Computer Vision: Foundation Models + X (ADVML) конференции CVPR 2025.
# Attacking Attention of Foundation Models Effectively Disrupts Downstream Tasks"
Hondamunige Prasanna Silva, Federico Becattini and Lorenzo SeidenariАннотация: Фундаментальные модели представляют собой наиболее значимый и недавний сдвиг парадигмы в искусственном интеллекте. Фундаментальные модели — это большие модели, обученные на обширных данных, которые обеспечивают высокую точность во многих downstream-задачах, часто без тонкой настройки. По этой причине такие модели, как CLIP, DINO или Vision Transfomers (ViT), становятся основой многих промышленных приложений на основе ИИ. Однако зависимость от предобученных фундаментальных моделей также создаёт серьёзные проблемы безопасности, поскольку эти модели уязвимы к состязательным атакам. Такие атаки включают специально созданные входные данные, предназначенные для обмана систем ИИ, ставя под угрозу их надёжность. В этой статье изучаются уязвимости визуальных фундаментальных моделей, в частности CLIP и ViT, и исследуется переносимость состязательных атак на downstream-задачи. Мы представляем новую атаку, нацеленную на структуру трансформерных архитектур и не зависящую от конкретной задачи. Мы демонстрируем эффективность нашей атаки на нескольких downstream-задачах: классификация, генерация подписей, поиск изображений/текста, сегментация и оценка глубины.
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
Создайте папку checkpoint в корневой папке и загрузите модели TCL и ALBEF.
Контрольные точки дообученных VLP-моделей доступны в ALBEF, TCL.
Создайте папку data в корневой папке и загрузите FLICKR30K, MSCOCO.
Смотрите readme.md внутри SGA folder.
Для оценки атаки 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;
Для оценки атаки с переносимостью (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
Для оценки атаки с переносимостью (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
Для оценки атаки с переносимостью (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
Если вы считаете эту работу полезной, пожалуйста, рассмотрите возможность цитирования:
@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}
}
| Аргумент | По умолчанию | Тип | Описание |
|---|
--config | ./configs/Retrieval_flickr.yaml | str | Путь к конфигурационному YAML-файлу. |
--seed | 42 | int | Семя для генерации случайных чисел, чтобы обеспечить воспроизводимость. |
--source_model | ViT-B/16 | str | Название исходной модели, используемой для оценки. |
--source_text_encoder | bert-base-uncased | str | Архитектура текстового энкодера исходной модели. |
--source_ckpt | None | str | Путь к контрольной точке исходной модели, если она есть. |
--target_model | ALBEF | str | Целевая модель для оценки. |
--target_text_encoder | bert-base-uncased | str | Текстовый энкодер целевой модели. |
--target_ckpt | ./checkpoint/albef/flickr30k.pth | str | Путь к контрольной точке целевой модели. |
--original_rank_index_path | ./std_eval_idx/flickr30k/ | str | Путь к файлу, содержащему исходные индексы ранжирования. |
--alpha | 90 | int | Вес функции потерь при состязательной оптимизации. |
--loss | atn | str | Тип используемой функции потерь. |
--method | 1 | int | Идентификатор метода атаки; подробнее см. функцию my_attack. |
--index | 11 | int | Индекс слоя в целевой модели, который подвергается атаке. |