论文 "Attacking Attention of Foundation Models Effectively Disrupts Downstream Tasks" 的官方 PyTorch 实现,已被 CVPR 2025 的 ADVML(对抗性机器学习在计算机视觉中的应用:基础模型 + X)研讨会接收。
# 有效攻击基础模型的注意力可有效扰乱下游任务"
Hondamunige Prasanna Silva、Federico Becattini 和 Lorenzo Seidenari摘要: 基础模型代表了人工智能领域最突出且最新的范式转变。基础模型是在广泛数据上训练的大型模型,通常无需微调即可在许多下游任务中实现高精度。因此,CLIP、DINO 或 Vision Transformer(ViT)等模型正成为许多工业 AI 应用的中坚力量。然而,对预训练基础模型的依赖也带来了重大的安全隐忧,因为这些模型容易受到对抗性攻击。此类攻击涉及精心构造的输入,旨在欺骗 AI 系统,从而危及它们的可靠性。本文研究了视觉基础模型的脆弱性,特别关注 CLIP 和 ViT,并探讨了对抗性攻击向下游任务的迁移性。我们提出了一种新颖的攻击方法,以任务无关的方式针对基于 Transformer 的架构结构。我们展示了该攻击在多个下游任务上的有效性:分类、图像描述、图像/文本检索、分割和深度估计。
conda env create -f environment.yml
pip install .
pip install -e . # 如果想以编辑模式安装!
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。
请查看 SGA 文件夹内的 readme.md。
要评估 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 | 目标模型中要攻击的层索引。 |