Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Multimodal-Unlearnable-Examples — ACM MM2024(多模态不可学习示例:保护数据免受多模态对比学习的影响)的代码。 | Kitploit
工具/GitHubGitHub/thinwayliu/multimodal-unlearnable-examples
隐私保护论文与研究AI 安全对抗性攻击
GitHubthinwayliu/multimodal-unlearnable-examples

Multimodal-Unlearnable-Examples

ACM MM2024(多模态不可学习示例:保护数据免受多模态对比学习的影响)的代码。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
1552年前尚未审核

多模态不可学习样本:保护数据免受多模态对比学习的影响 (ACM MM2024)

摘要:多模态对比学习(MCL)通过从互联网抓取的数百万图像-文本对进行学习,在零样本分类方面取得了显著进展。然而,这种依赖带来了隐私风险,因为黑客可能未经授权利用图像-文本数据进行模型训练,其中可能包含个人和隐私敏感信息。近期研究提出通过向训练图像添加不可感知的扰动来生成不可学习样本,从而构建保护性捷径。然而,这些方法是为单模态分类设计的,在多模态对比学习中尚未得到充分探索。我们首先评估现有方法在图像-文本对上的表现,发现它们无法有效泛化到多模态数据,并且由于缺乏标签以及多模态对比学习中样本对的分散性,其在构建捷径方面效果有限。在本文中,我们提出了多步误差最小化(MEM),一种用于生成多模态不可学习样本的新型优化过程。它扩展了误差最小化(EM)框架,同时优化图像噪声和额外的文本触发器,从而扩大优化空间,并有效误导模型学习噪声特征与文本触发器之间的捷径。具体而言,我们采用投影梯度下降求解噪声最小化问题,并使用HotFlip近似梯度并替换词以寻找最优文本触发器。大量实验证明了MEM的有效性,保护后的检索结果约为随机猜测的一半,且在不同模型间具有较高的可迁移性。

编辑器

环境要求

我们的代码依赖于 CleanCLIP 源码。

  • 同时支持 Linux 和 Windows,但出于性能和兼容性考虑,我们强烈推荐使用 Linux。
  • 需要安装 64 位 Python 3.7+。

设置环境并安装依赖

Conda(推荐)

请按照以下链接中的说明设置 anaconda:Anaconda 安装

以下命令将在仓库内创建一个包含依赖项的 conda 环境。

root@kitploit:~
conda env create --prefix ./env -f environment.yml
source activate ./env

Pip

无需创建 conda 环境,可直接安装依赖。

root@kitploit:~
pip install -r requirements.txt

数据集

我们已经将这些数据集划分为训练集、验证集和测试集。划分结果可在 ~/Data/Dataset/train.csv 等文件中查看。

Flickr8k

Flickr 8k 数据集包含 8092 张图像,每张图像最多有五个标题。该数据集可在此处下载:这里。

Flickr30k

Flickr30k 数据集包含从 Flickr 收集的 31,000 张图像,以及由人工标注者提供的 5 个参考句子。该数据集可在此处下载:这里。

MSCOCO

该数据集可在此处下载:这里。

生成多模态不可学习样本

使用 Flick8K 进行干净训练

root@kitploit:~
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

保护多模态不可学习样本(MEM)

设置文本触发器长度为 3

root@kitploit:~
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

root@kitploit:~
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

评估性能

root@kitploit:~
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
root@kitploit:~
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。

下载工具