
الكود الخاص بـ ACM MM2024 (أمثلة غير قابلة للتعلم متعددة الوسائط: حماية البيانات ضد التعلم التبايني متعدد الوسائط)
الملخص: أظهر التعلم التقابلي متعدد الوسائط (MCL) تقدمًا ملحوظًا في التصنيف بدون أمثلة (zero-shot) من خلال التعلم من ملايين أزواج الصورة-التعليق التي يتم جمعها من الإنترنت. ومع ذلك، فإن هذا الاعتماد يشكّل مخاطر على الخصوصية، إذ قد يستغل المخترقون بيانات الصورة-النص بشكل غير مصرح به لتدريب النماذج، وربما تشمل هذه البيانات معلومات شخصية وحساسة تتعلق بالخصوصية. تقترح الأعمال الحديثة توليد أمثلة غير قابلة للتعلم عن طريق إضافة تشويشات غير محسوسة إلى صور التدريب لبناء اختصارات من أجل الحماية. غير أنها مصممة للتصنيف أحادي الوسائط، ولا يزال هذا الأمر غير مستكشف إلى حد كبير في MCL. نستكشف هذا السياق أولاً من خلال تقييم أداء الطرق الحالية على أزواج الصورة-التعليق، وهي لا تُعمَّم بفعالية على البيانات متعددة الوسائط وتُظهر تأثيرًا محدودًا في بناء الاختصارات بسبب غياب التسميات وتشتت الأزواج في MCL. في هذه الورقة، نقترح تقليل الخطأ متعدد الخطوات (MEM)، وهي عملية تحسين جديدة لتوليد أمثلة غير قابلة للتعلم متعددة الوسائط. وهي توسّع إطار تقليل الخطأ (EM) لتحسين كل من ضوضاء الصورة ومشغّل نص إضافي، مما يوسّع مساحة التحسين ويضلل النموذج بفعالية لتعلم الاختصار بين ميزات الضوضاء ومشغّل النص. على وجه التحديد، نعتمد النزول المتدرج الإسقاطي لحل مشكلة تقليل الضوضاء، ونستخدم HotFlip لتقريب التدرج واستبدال الكلمات من أجل إيجاد مشغّل النص الأمثل. تُظهر التجارب الموسعة فعالية MEM، إذ تبلغ نتائج الاسترجاع بعد الحماية نصف التخمين العشوائي تقريبًا، مع قابلية نقل عالية عبر النماذج المختلفة.
يعتمد كودنا على الكود المصدري لـ CleanCLIP.
يرجى اتباع التعليمات الموجودة في الرابط التالي لإعداد anaconda: إعداد Anaconda
تنشئ الأوامر التالية بيئة 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.