一文探讨如何从扩散模型中反向提取出训练数据
Paper: https:// arxiv.org/pdf/2301.1318 8.pdf
Refer: https:// metaphysic.ai/stable-di ffusion-and-imagen-can-reproduce-training-data-almost-perfectly/
导读
今天介绍的这项工作很有意思,主题是从扩散模型中提取原始的训练数据,由来自谷歌、DeepMind、苏黎世联邦理工学院、普林斯顿和加州大学伯克利分校的研究人员共同合作,通过一系列烧卡的实验所总结出来的结论。关于这一点,笔者早前也写过一篇关于扩散模型究竟是学会“创作”还是仅仅依赖超强的记忆能力记住高保真的图像的探讨性文章,感兴趣的同学也可以移步至历史文章查看。
上述这张图片是该论文提供的数量有限的具体示例之一,简要说明了生成图像合成模型生成训练数据副本的能力。在上面的示例中,我们可以清楚的看到,左侧图像是用于训练 Stable Diffusion 的 LAION 训练数据集中的图像;而右侧图像,基本上是通过一轮迭代,通过 prompt 从 SD 模型中得出的相同图像。
原文作者也在论文中强调过这样一段话:
With a generate-and-filter pipeline, we extract over a thousand training examples from state-of-the-art models, ranging from photographs of individual people to trademarked company logos. We also train hundreds of diffusion models in various settings to analyze how different modeling and data decisions affect privacy.
这就意味着扩散模型的隐私性是远低于 GAN 等老前辈之类的生成模型,要想真正减少这些漏洞,可能需要在隐私保护培训方面取得新的突破。下面让我们具体的讨论下。
Stable Diffusion Vs. GAN
通过本文实验不难发现,扩散模型(如Stable Diffusion)泄漏的潜在隐私信息是生成对抗网络(如GAN)的两倍。这跟笔者在上篇文章中讨论的结论是完全一致的: 扩散模型有效地使用记忆作为复制策略。
反过来我们观察下 GAN,大家都知道它主要包含两块,即 生成器 和 判别器 。因此,这种基于对抗训练的模式,可依赖判别器对系统重建训练数据进行客观的评分,并不需要显示的记忆数据。而 SD 就有点 “偷懒” 的成分了。好比为什么 VAE 模型中我们一定要引入中间监督的道理一样,如若不然,模型就会作弊(噪声一丢丢),这直接导致训练 perfect,测试 collapse.
简而言之,GAN 与扩散模型的不同之处在于,它们的生成器仅使用关于训练数据的间接信息,即基于判别器的梯度进行训练,因此它们从不接收训练数据作为输入,而扩散模型则是经过明确训练指示以重建训练集。
上图是更多展示扩散模型学会“记忆”和“复制”训练集的例子,可以看出“这长的真是几乎一样”,除了清晰度和个别细节有待商榷之外。有一个有趣的问题便是,模型学会“记忆”,究竟是一件好事还是坏事?大家可以类比一下,像我们小时候读书的时候,有些人每次都能考高分,但其实他们中有部分人靠的就是记忆,也就是“背”出来的,并不具备创新能力。但换个角度想想,取得一个良好成绩的前提不就是要有强大的记忆力吗?毕竟一个人连基础的公式都记不来,如何依赖逻辑推理能力完成后续的推导?所以说,扩散模型与先前方法相比性能的改进是否正是因为扩散模型记忆更多呢?
Copy or innovate?
今天这篇论文的结论如果随着时间的推移能够得到进一步证实,那就好笑了。毕竟一堆作家、画家、音乐家等这批热锅上的蚂蚱就盼着哪天手里有充足的证据起诉 Stability.ai 这类兴起的 AIGC 创作公司,巴不得打一场轰轰烈烈的集体诉讼,在法庭上大声宣告:“啊!你们这群鸟人,拿着个破模型就是在复制和黏贴老子们精心创作的作品,白嫖?想都别想!”。这下好了,华尔街的做空巨头已经安耐不住,蠢蠢欲动了~~~
其实早前已经有过类似的诉讼案了,彼时辩方的观点是诉讼当事人未能理解 泛化 是如何工作的,而稳定扩散(和类似系统)实际上是通过观察和从数据中学习原理来发挥作用的,类似于艺术家或作家的方式在继续创作自己的原创作品之前,他们可能会欣赏许多画作或阅读许多书籍,其中“看到”的数据起到“影响”的作用,而不是被大量复制。这下好了,深度学习的泛化能力又可以搬出来讲了。
关于这一点,作者也给出了一些个人的见解:
大模型是通过生成新颖的内容来工作,还是只是简单的在各个训练示例之间进行复制和插值?如果我们的提取攻击失败了,它可能会驳斥模型复制和插入训练数据的假设;但是,因为本次实验攻击成功了,所以这个问题仍然悬而未决。此外,鉴于不同的模型会记住不同数量的数据,我们希望未来的工作能够探索扩散模型如何从它们的训练数据集中学会复制。”
Duplicates and outliers
LAION
这种规模的数据集是经过最低限度策划出来的,至少它是通过实际的人工监督,从构成数据的文本/图像对中获得可理解的结果,其挑战在于管理和减轻标签的质量以及不可避免从网络上抓取的超大规模数据集中可能存在的重复图像,导致数十亿图像的集合难以被管理。
对于一些主流的公共图像,例如大家最熟悉的蒙娜丽莎,这会导致某些图像可能会多次出现在训练数据集中。此时扩散模型在训练期间遍历数据集时接触到基本相同的图像的次数越多,它就越有可能记住图像,并在推理时只需给出适当的提示词便能够学会完美地再现图像。(是不是有点过拟合那味了)
为了更好地了解源数据变得可重现的过程,作者在 CIFAR-10 数据集上自定义训练了许多模型,这为我们带来了额外的见解:
我们还惊奇地发现,扩散模型和 GAN 会记住许多相同的图像。特别是,尽管我们的扩散模型记忆了 1280 张图像,而我们在一半数据集上训练的 StyleGAN 模型记忆了 361 张图像,但我们发现有 244 张独特的图像是共同记忆的。
如果图像是随机统一记忆的,我们应该预计平均会有 10 张图像被两人记住,这提供了非常有力的证据,证明某些图像本质上不如其他图像私密。了解为什么会出现这种现象是未来工作的一个富有成效的方向。
研究人员还发现,尽管他们尝试删除集合中的重复数据,但问题似乎没有想预期的那种程度被减轻。从他们训练的 CIFAR-10 数据集中删除重复项后,从生成的扩散模型中提取的记忆图像的发生率从 1280 下降到 986,按理来说应该不至于这么低,作者对此的见解是:
虽然没有实质性的下降,但这些结果表明 重复数据删除可以减轻记忆 。此外,我们还预计重复数据删除对于在更大规模数据集上训练的模型(例如,稳定扩散)将更加有效,因为我们观察到这些模型的数据提取和重复率之间存在更强的相关性。
因此,研究人员呼吁该行业致力于研究更复杂的重复数据删除技术,而不是通过不从同一 URL 两次获取同一图像来简单地进行重复数据删除,并通过 CLIP 和类似的指标和方法评估相似性。所以,又一个大坑出现了,你还在等什么,下一个 Best paper 就是你。
Imagen the Greater 'Thief'
由于很少有图像能达到蒙娜丽莎的分布水平,可以预期泛化本身将保护潜在的扩散系统,使其无法吐出源数据的准确复制品。意识到这一点,研究人员调查了可以从扩散模型中重新提取异常数据(即相当具体和不寻常的数据)的程度。
证明这一点的困难方法是从头开始训练一个新颖的稳定扩散尺度模型,并跟踪单个图像的进展。由于这不是一个实用的(或至少是随意可复制的)解决方案,研究人员改为计算训练示例的 CLIP 嵌入,寻求他们所谓的“离群值”质量。他们出乎意料地发现,谷歌的 Imagen 合成框架在这方面产生了与 Stable Diffusion 截然不同的统计数据:
令人惊讶的是,我们发现攻击分布外的图像对 Imagen 比对 Stable Diffusion 更有效。在 Imagen 上,我们尝试提取分布外得分最高的 500 张图像。Imagen 记住并反省了其中的 3 张图像(它们在训练数据集中是独一无二的)。相比之下,当将相同的方法应用于稳定扩散时,我们未能识别出任何记忆——即使在尝试提取 10,000 个最离群的样本之后也是如此。因此,Imagen 在复制和非复制图像上都显得不如 Stable Diffusion 私密。我们认为这是因为 Imagen 使用的模型与稳定扩散相比具有更高的容量,这允许更多的记忆。此外,Imagen 在更小的数据集上接受了更多的迭代训练,这也可以提高记忆力。
在研究人员的实验中,从训练数据中复制的大部分图像是可识别人物的照片,其余为商业产品 (17%)、商标和海报 (14%) 以及其他艺术或图形;值得注意的是,其余类型的主题似乎在示例中相对不变,并且可以重复,即使只是由于在典型的网络抓取中发现过多的广告、产品放置和人造草坪。
在进行测试之前,研究人员尝试评估数据重复的程度,考虑压缩质量和将图像包含在较大图像中等因素,并寻求识别“近似重复”。
从源数据集中识别出 350,000 个重复最多的示例后,研究人员为每个相关的文本提示生成了惊人的 500 个候选图像,总共生成了 1.75 亿张图像。
然后根据 图像之间的平均距离 对图像进行排序,因为相似实例的数量越多,它们就越有可能在部署的系统中被记住和访问。
该论文指出,当源图像在数据集中至少被复制 100 次时,研究中使用的“攻击”(提取方法)产生的成功次数最多,尽管作者警告说这是上限而不是上限更高最佳数量的下限,因为他们专门寻找重复的图像。正如作者所说的,“我们的攻击非常精确:在 1.75 亿张生成的图像中,我们可以识别出 50 张记忆图像,误报率为 0,并且我们所有记忆图像的提取精度都在 50% 以上。”
How to do?
聊了这么多,想必很多同学关心的是如何从扩散模型中提取训练数据。关于这一点,我们可以参考下国外贴吧上热议的一些方法和讨论,先给大家几个参考链接:
Hacker News : https:// brianlovin.com/hn/34596 187
Twitter : https:// twitter.com/eric_wallac e_/status/1620449934863642624?s=46&t=GVukPDI7944N8-waYE5qcw
Reddit : https://www. reddit.com/r/MachineLea rning/comments/10r57pn/r_extracting_training_data_from_diffusion_models/?onboarding_redirect=%2Fr%2FMachineLearning%2Fcomments%2F10r57pn%2Fr_extracting_training_data_from_diffusion_models%2F
下面是发烧友总结出来的一些 Tips,仅供参考:
-
Compute CLIP embeddings for the images in a training dataset.
-
Perform an all-pairs comparison and mark the pairs with l2 distance smaller than some threshold as near duplicates
-
Use the prompts for training samples marked as near duplicates to generate N synthetic samples with the trained model
-
Compute the all-pairs l2 distance between the embeddings of generated samples for a given training prompt. Build a graph where the nodes are generated samples and an edge exists if the l2 distance is less than some threshold. If the largest clique in the resulting graph is of size 10, then the training sample is considered to be memorized.
-
Visually inspect the results to determine if the samples considered to be memorized are similar to the training data samples.
通过这种方法,相信大家便能够从稳定扩散和Imagen中找到对应于受版权保护的训练图像的样本。
总结
今天这篇论文的结论明显是能吸引那些原有的艺术创作者,毕竟他们一直在苦等最有利的证据起诉这些AIGC公司。但论文的结论也表明了一些不怀好意的攻击者的确有可能利用这种“漏洞”从模型中反向提取出源数据,这当中必然包含一些涉及个人敏感信息的图片。
尽管有多种技术可以帮助在训练期间保留敏感信息(甚至信息来源),但研究人员发现并非所有技术都适用。例如,当研究人员在测试扩散模型的训练中尝试使用差分私有随机梯度下降(DP-SGD)时,会导致基于 CIFAR-10 的模型始终偏离最佳目标。事实上,即使我们单独应用改善过的梯度裁剪或噪声(DP-SGD 都需要)也会导致训练失败。因此,未来我们可能需要在 DP-SGD 和隐私保护训练技术方面取得新进展,以在对隐私敏感的环境更好的训练扩散模型。