
[CVPR 2025-ADVML] Repositorio oficial de `Attacking Attention of Foundation Models Effectively Disrupts Downstream Tasks`
Implementación oficial en PyTorch del artículo "Atacar la atención de los modelos fundacionales interrumpe eficazmente las tareas posteriores", aceptado en el taller Adversarial Machine Learning on Computer Vision: Foundation Models + X (ADVML) de CVPR 2025.
# Atacar la atención de los modelos fundacionales interrumpe eficazmente las tareas posteriores"
Hondamunige Prasanna Silva, Federico Becattini y Lorenzo SeidenariResumen: Los modelos fundacionales representan el cambio de paradigma más destacado y reciente en la inteligencia artificial. Los modelos fundacionales son modelos grandes, entrenados con datos amplios que ofrecen alta precisión en muchas tareas posteriores, a menudo sin ajuste fino. Por esta razón, modelos como CLIP, DINO o Vision Transformers (ViT) se están convirtiendo en la base de muchas aplicaciones industriales impulsadas por IA. Sin embargo, la dependencia de modelos fundacionales preentrenados también introduce importantes problemas de seguridad, ya que estos modelos son vulnerables a ataques adversariales. Dichos ataques implican entradas deliberadamente diseñadas para engañar a los sistemas de IA, comprometiendo su fiabilidad. Este artículo estudia las vulnerabilidades de los modelos fundacionales de visión, centrándose específicamente en CLIP y ViTs, y explora la transferibilidad de los ataques adversariales a tareas posteriores. Presentamos un nuevo ataque que apunta a la estructura de las arquitecturas basadas en transformers de forma independiente de la tarea. Demostramos la efectividad de nuestro ataque en varias tareas posteriores: clasificación, generación de subtítulos, recuperación de imágenes/texto, segmentación y estimación de profundidad.
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
Cree la carpeta checkpoint dentro de la carpeta raíz y descargue los modelos TCL y ALBEF. Los checkpoints de los modelos VLP ajustados están disponibles en ALBEF, TCL.
Cree la carpeta data dentro de la carpeta raíz y descargue FLICKR30K, MSCOCO.
Consulte readme.md dentro de SGA folder.
Para evaluar el ataque 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;
Para evaluar el ataque con transferibilidad (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
Para evaluar el ataque con transferibilidad (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
Para evaluar el ataque con transferibilidad (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 encuentra útil este trabajo, considere citarlo:
@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}
}
| Argumento | Predeterminado | Tipo | Descripción |
|---|
--config | ./configs/Retrieval_flickr.yaml | str | Ruta al archivo de configuración YAML. |
--seed | 42 | int | Semilla para la generación de números aleatorios para garantizar la reproducibilidad. |
--source_model | ViT-B/16 | str | Nombre del modelo fuente utilizado para la evaluación. |
--source_text_encoder | bert-base-uncased | str | Arquitectura del codificador de texto para el modelo fuente. |
--source_ckpt | None | str | Ruta al checkpoint del modelo fuente, si existe. |
--target_model | ALBEF | str | Modelo objetivo para la evaluación. |
--target_text_encoder | bert-base-uncased | str | Codificador de texto para el modelo objetivo. |
--target_ckpt | ./checkpoint/albef/flickr30k.pth | str | Ruta al checkpoint del modelo objetivo. |
--original_rank_index_path | ./std_eval_idx/flickr30k/ | str | Ruta al archivo que contiene los índices de rango originales. |
--alpha | 90 | int | Peso para la función de pérdida durante la optimización adversarial. |
--loss | atn | str | Tipo de función de pérdida a utilizar. |
--method | 1 | int | Identificador del método de ataque; consulte la función my_attack para más detalles. |
--index | 11 | int | Índice de capa a atacar en el modelo objetivo. |