
Код для ACM MM2024 (Мультимодальные необучаемые примеры: защита данных от мультимодального контрастивного обучения)
Аннотация: Мультимодальное контрастивное обучение (MCL) достигло значительных успехов в классификации без обучения на примерах (zero-shot classification) за счёт обучения на миллионах пар «изображение-подпись», собранных из Интернета. Однако такая зависимость создаёт риски для конфиденциальности, поскольку хакеры могут несанкционированно использовать данные «изображение-текст» для обучения моделей, включая личную и чувствительную информацию. Недавние работы предлагают создавать необучаемые примеры путём добавления незаметных возмущений к обучающим изображениям для формирования «коротких путей» (shortcuts) с целью защиты. Однако они разработаны для одномодальной классификации, и в MCL эта область остаётся практически неизученной. Мы впервые исследуем этот контекст, оценивая производительность существующих методов на парах «изображение-подпись», и обнаруживаем, что они плохо обобщаются на мультимодальные данные и оказывают ограниченное влияние на создание «коротких путей» из-за отсутствия меток и разрозненности пар в MCL. В этой статье мы предлагаем Multi-step Error Minimization (MEM) — новый процесс оптимизации для генерации мультимодальных необучаемых примеров. Он расширяет фреймворк Error-Minimization (EM) для одновременной оптимизации шума изображения и дополнительного текстового триггера, тем самым расширяя пространство оптимизации и эффективно обманывая модель, заставляя её выучить «короткий путь» между признаками шума и текстовым триггером. В частности, мы используем проектный градиентный спуск (projected gradient descent) для решения задачи минимизации шума и применяем HotFlip для аппроксимации градиента и замены слов с целью поиска оптимального текстового триггера. Обширные эксперименты демонстрируют эффективность MEM: результаты поиска после защиты составляют почти половину от случайного угадывания, а также подтверждают высокую переносимость метода на разные модели.
Наш код основан на исходном коде CleanCLIP.
Следуйте инструкциям по следующей ссылке для установки anaconda: Anaconda Setup
Следующие команды создают conda-окружение внутри репозитория со всеми зависимостями.
conda env create --prefix ./env -f environment.yml
source activate ./env
Зависимости можно установить напрямую, без создания conda-окружения.
pip install -r requirements.txt
Мы уже разделили эти датасеты на обучающий, валидационный и тестовый наборы. Результаты разделения можно найти, например, в ~/Data/Dataset/train.csv .
Датасет Flickr 8k содержит 8092 изображений и до пяти подписей для каждого изображения. Датасет можно скачать здесь.
Датасет Flickr30k содержит 31 000 изображений, собранных из Flickr, а также 5 эталонных предложений, предоставленных аннотаторами. Датасет можно скачать здесь.
Датасет можно скачать здесь.
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
установите длину текстового триггера равной 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
установите длину текстового триггера равной 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
Некоторые части кода в этом репозитории являются адаптацией следующих репозиториев: CleanCLIP, openai и universal-triggers.