
Der Code für ACM MM2024 (Multimodal Unlearnable Examples: Protecting Data against Multimodal Contrastive Learning)
Zusammenfassung: Multimodales kontrastives Lernen (MCL) hat bemerkenswerte Fortschritte bei der Zero-Shot-Klassifikation erzielt, indem es aus Millionen von Bild-Text-Paaren lernt, die aus dem Internet gecrawlt wurden. Diese Abhängigkeit birgt jedoch Datenschutzrisiken, da Hacker Bild-Text-Daten unbefugt für das Modelltraining nutzen können, was möglicherweise persönliche und sensible Informationen umfasst. Neuere Arbeiten schlagen die Erzeugung nicht-lernbarer Beispiele vor, indem sie Trainingsbildern kaum wahrnehmbare Störungen hinzufügen, um Abkürzungen zum Schutz zu schaffen. Diese sind jedoch für unimodale Klassifikation ausgelegt und bleiben im MCL weitgehend unerforscht. Wir untersuchen diesen Kontext erstmals, indem wir die Leistung bestehender Methoden an Bild-Text-Paaren bewerten. Diese Methoden generalisieren nicht effektiv auf multimodale Daten und zeigen aufgrund fehlender Labels und der Streuung der Paare im MCL nur begrenzte Wirkung bei der Erstellung von Abkürzungen. In dieser Arbeit schlagen wir Multi-step Error Minimization (MEM) vor, einen neuartigen Optimierungsprozess zur Erzeugung multimodaler nicht-lernbarer Beispiele. Es erweitert das Error-Minimization (EM)-Framework, um sowohl Bildrauschen als auch einen zusätzlichen Text-Trigger zu optimieren, wodurch der optimierte Raum vergrößert und das Modell effektiv in die Irre geführt wird, die Abkürzung zwischen den Rauschmerkmalen und dem Text-Trigger zu lernen. Konkret verwenden wir projizierten Gradientenabstieg, um das Rauschminimierungsproblem zu lösen, und verwenden HotFlip, um den Gradienten zu approximieren und Wörter zu ersetzen, um den optimalen Text-Trigger zu finden. Umfangreiche Experimente belegen die Wirksamkeit von MEM, wobei die Ergebnisse nach dem Schutz fast die Hälfte des Rateniveaus erreichen, sowie seine hohe Übertragbarkeit über verschiedene Modelle hinweg.
Unser Code basiert auf dem Quellcode von CleanCLIP.
Bitte folgen Sie den Anweisungen unter folgendem Link, um Anaconda einzurichten: Anaconda Einrichtung
Die folgenden Befehle erstellen eine Conda-Umgebung innerhalb des Repositorys mit den Abhängigkeiten.
conda env create --prefix ./env -f environment.yml
source activate ./env
Die Anforderungen können direkt ohne Erstellung einer Conda-Umgebung installiert werden.
pip install -r requirements.txt
Wir haben diese Datensätze bereits in Trainings-, Validierungs- und Testdatensätze aufgeteilt. Die Ergebnisse der Aufteilung finden Sie z. B. in ~/Data/Dataset/train.csv .
Der Flickr 8k-Datensatz enthält 8092 Bilder und bis zu fünf Bildunterschriften für jedes Bild. Der Datensatz kann hier heruntergeladen werden.
Der Flickr30k-Datensatz enthält 31.000 Bilder, die von Flickr gesammelt wurden, zusammen mit 5 Referenzsätzen, die von menschlichen Annotatoren bereitgestellt wurden. Der Datensatz kann hier heruntergeladen werden.
Der Datensatz kann hier heruntergeladen werden.
python -m src.main --name clean_flick8k --train_data /data/clip/Flicker-8k/train.csv --eval_test_data_dir /data/clip/Flicker-8k/test.csv --image_key images --caption_key caption --device_id 0
Setzen Sie die Text-Trigger-Länge auf 3
python -m src.poison --name poison_token_3_shuffle --train_data /data/clip/Flicker-8k/train.csv --image_key images --caption_key caption --device_id 0 --token_num 3 --lr 1e-4
Setzen Sie die Text-Trigger-Länge auf 5
python -m src.poison --name poison_token_5_shuffle --train_data /data/clip/Flicker-8k/train.csv --image_key images --caption_key caption --device_id 1 --token_num 5 --lr 1e-4
python -m src.poison_main --name eval_token_3_shuffle --train_data /data/clip/Flicker-8k/train.csv --eval_test_data_dir /data/clip/Flicker-8k/test.csv --image_key images --caption_key caption --device_id 0 --save_pert poison_token_3_shuffle --token_num 3 --lr 5e-4
python -m src.poison_main --name eval_token_5_shuffle --train_data /data/clip/Flicker-8k/train.csv --eval_test_data_dir /data/clip/Flicker-8k/test.csv --image_key images --caption_key caption --device_id 1 --save_pert poison_token_5_shuffle --token_num 5 --lr 5e-4
Einige Teile des Codes in diesem Repository sind Adaptionen aus den folgenden Repositories: CleanCLIP, openai und universal-triggers.