
Il codice per ACM MM2024 (Multimodal Unlearnable Examples: Protecting Data against Multimodal Contrastive Learning)
Abstract: L'apprendimento contrastivo multimodale (MCL) ha mostrato notevoli progressi nella classificazione zero-shot apprendendo da milioni di coppie immagine-didascalia raccolte da Internet. Tuttavia, questa dipendenza comporta rischi per la privacy, poiché gli hacker potrebbero sfruttare senza autorizzazione i dati immagine-testo per l'addestramento dei modelli, includendo potenzialmente informazioni personali e sensibili. Lavori recenti propongono di generare esempi non apprendibili aggiungendo perturbazioni impercettibili alle immagini di addestramento per creare scorciatoie protettive. Tuttavia, sono progettati per la classificazione unimodale, che rimane in gran parte inesplorata nel MCL. Per prima cosa esploriamo questo contesto valutando le prestazioni dei metodi esistenti su coppie immagine-didascalia, e questi non generalizzano efficacemente ai dati multimodali e mostrano un impatto limitato nel creare scorciatoie a causa della mancanza di etichette e della dispersione delle coppie nel MCL. In questo articolo, proponiamo Multi-step Error Minimization (MEM), un nuovo processo di ottimizzazione per generare esempi multimodali non apprendibili. Esso estende il framework Error-Minimization (EM) per ottimizzare sia il rumore dell'immagine che un trigger testuale aggiuntivo, ampliando così lo spazio ottimizzato e inducendo efficacemente il modello ad apprendere la scorciatoia tra le caratteristiche del rumore e il trigger testuale. Nello specifico, adottiamo la discesa del gradiente proiettata per risolvere il problema di minimizzazione del rumore e utilizziamo HotFlip per approssimare il gradiente e sostituire le parole al fine di trovare il trigger testuale ottimale. Estesi esperimenti dimostrano l'efficacia di MEM, con risultati di retrieval post-protezione pari a quasi la metà del caso casuale, e la sua elevata trasferibilità tra diversi modelli.
Il nostro codice si basa sul codice sorgente di CleanCLIP.
Segui le istruzioni al seguente link per configurare anaconda: Anaconda Setup
I seguenti comandi creano un ambiente conda all'interno del repository con le dipendenze.
conda env create --prefix ./env -f environment.yml
source activate ./env
I requisiti possono essere installati direttamente senza creare un ambiente conda.
pip install -r requirements.txt
Abbiamo già suddiviso questi dataset in set di addestramento, set di validazione e set di test. I risultati della suddivisione possono essere trovati, ad esempio, in ~/Data/Dataset/train.csv .
Il dataset Flickr 8k contiene 8092 immagini e fino a cinque didascalie per ciascuna immagine. Il dataset può essere scaricato qui.
Il dataset Flickr30k contiene 31.000 immagini raccolte da Flickr, insieme a 5 frasi di riferimento fornite da annotatori umani. Il dataset può essere scaricato qui.
Il dataset può essere scaricato qui.
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
imposta la lunghezza del trigger testuale a 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
imposta la lunghezza del trigger testuale a 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
Alcune parti del codice in questo repository sono adattamenti dei seguenti repository: CleanCLIP, openai e universal-triggers.