为了使 LLMS 看起来像 ** 类,通常需要收集大量数据来微调模型。 在LLMS时代之前,众包是获取注释数据的主要方式。
自LLMS问世以来,研究人员发现,他们可以从Bard、ChatGPT或Claude等强大的模型中生成合成数据,以微调自己的模型,这比众包更省时、更耗力、更划算。
但是,此过程涉及使用其他模型生成的数据,这可能会引发版权和知识产权问题。 例如,如果一个模型用于生成训练数据,而训练数据又用于训练另一个模型,那么后者是前者的导数吗?
为了溯源,LLM的输出可以像版权保护一样加水印,检测合成数据,极大地促进了大模型的安全防护。
最近有很多关于LLM水印技术的文章,今天介绍的文章就是来自Meta,它没有**如何在保证输出质量的同时给LLM加水印,而是找到了另一种方式,在研究带水印文本的“放射性”时会发生什么——即当带水印的文本被用作微调数据时? 该模型的潜在“污染”能力有多大?
**标题:
watermarking makes language models radioactive
考虑到有些童鞋对水印技术知之甚少,这里简单介绍一下。
LLM 的解码过程很简单,将上下文作为输入,其中是模型的词汇表,然后输出一个 logit 向量。 该向量将被转换为下一个代币的概率分布。 然后使用top-k采样、核心采样等方法选择下一个token。
水印嵌入:是更改 logits 向量或采样过程。 通常,密钥加密函数的输出会对前面的 k 个令牌进行哈希处理,这些令牌用作初始化随机数生成器的种子,从而影响下一个令牌的选择。
水印检测:文本标记化处理以进行审查,重复秘密种子生成并对每个标记进行评分。 因此,当前令牌的函数可以写成一个函数,该函数将令牌作为相对于种子和令牌序列的分数的输入:
然后,根据累积分数和标记数量的统计检验,判断文本是否包含数字水印。
假设 Alice 拥有语言模型 A。 Bob 还有另一个语言模型 B。 Bob 使用从语言模型 A 中获取的少量文本对 B 进行微调。 用于微调 B 的数据集用 D 表示,其中 A 生成的文本表示为。 定义 a 生成的数据占整体微调数据的比例:
此外,本文基于此定义了监督测试、无监督测试、开源测试、闭源测试和交叉匹配测试四种场景,如下图所示:
监督设置:Bob 使用可识别的帐户查询 A。 Alice 保留了 A 为 Bob 生成的所有内容。 所以,爱丽丝知道。 监督程度定义为: 无监督设置:Bob 不使用任何可识别的帐户或隐藏在其他人身后查询模型 A,其中 D = 0。 这是最现实的场景。 当 b 没有看到 a 的任何输出时,d 和 d 不代表相同的概念,而是 = d = 0。 开放模型:如果模型 B 是开源的,或者 Alice 通过合法渠道获得了对 B 的访问权,Alice 可以观察 B 的 logits 输出。 闭源模型:Alice 只能通过 API 查询 B,不能输出概率向量或 logits,Alice 只能观察生成的文本。 大多数聊天机器人都是这种情况。 在这里探索LLM水印技术的潜在“放射性”,是[1]创造的一个术语,指的是:水印文本在用作微调数据时污染模型的能力
给定一个统计检验,使得 “ 没有训练 ,如果 显著水平 (p 值) 小于 ,则可以被拒绝,则称文本语料库为 。
给定一个统计检验,使得 “没有对输出的训练 ”,如果显著水平(p 值)小于 ,则可以拒绝,则称该模型为 。
因此,数据集或模型的放射性被量化。 较低(例如,)表示放射性越高,因为检测检验的置信水平较高,而放射性越低(检测是随机检验)。
接下来,作者提出了一种检测语言模型中无水印文本和带水印文本的放射性的方法。
这是另一种技术,隶属推理攻击(MIAS),它是一种攻击方法,其目标是判断一条数据是否属于模型的训练集,如果它属于训练集,则它是成员,否则它是非成员。 这与本文的目的不谋而合,即检测模型 A 生成的文本是否用于模型 B 训练。 因此,作者的后续思考受到MIAS的启发。
在监督学习的开源模型中,MIA 通过观察 B 在一组精心选择的输入上的损失(或混淆程度)来评估样本句子的放射性。 预计在训练期间看到的样本的困惑越少越好(有时称为损失攻击)。
本文将这一想法扩展到无水印文本语料库的基线放射性检测测试。 文本语料库被划分为句子(每个句子 256 个标记),并计算每个句子的 b 损失。 使用 zlib 熵进行校准,校准的目的是考虑每个样本的复杂性,并将其与 b 的过度置信区分开来。
检验原假设:“混淆与生成的新文本的混淆具有相同的分布”。 事实上,如果 B 没有对零件进行微调,那么它一定是真的。
为了比较经验分布,使用了两个样本的 Kolmogorov-Smirnov 检验。 给定损失值上的两个累积分布的总和计算距离为:
如果该距离高于确定测试 p 值的阈值,则该距离将被拒绝,并得出结论,该距离对 b 具有放射性。
考虑使用方法和密钥为输出添加水印。 在这种情况下,在开源、闭源、监督和无监督设置中有一个检测测试,如下表所示
评分函数取决于观察到的标记; 水印检测测试取决于分数和令牌数量。 检验原假设:“文本不是根据加密方法和密钥生成的”。
放射性可以通过水印检测B生成的大量文本来检测。 事实上,如果 B 从未见过水印,则无法生成 W 和 S 后面的文本,因此如果“B 没有使用 A 的输出”,则 h0 为 true。
但是,只有水印中的 K-Gram 才能找到水印的痕迹。 即使假设这些 k-gram 带有强烈的水印,并且 B 已经记住了它们,它们仍然只占可测试的 k-gram 的一小部分,使测试结果不太理想。
为了弥补简单方法的不足,本文介绍了两种B的访问方法:
闭源模型:使用 b 提示并生成新文本。 在受监督的设置中,仅提示 b,并带有(带水印的)文本 from。 在无监督的情况下,来自同一分布的新文本用于提示疑似正在训练的文本。 开源模型:句子不是使用 B 生成新文本,而是直接通过 B 传递。 让它成为一个标记序列,这是基于 b 解码的最有可能的下一个标记。 使用算法进行评分,如下图所示: 为了提高检测能力,还引入了一个过滤器,该过滤器是可能经过训练的 k-gram 的集合。 仅当标签前面的 k-gram 窗口(用于哈希的水印上下文窗口)是 的一部分时,才会对标签进行评分。 这将允许评分计算集中在可能已经学习了水印的 k 克上。
在完全监督的设置中,b 的训练数据是精确已知的,因此由训练时使用的 k 克组成。
在无监督的设置中,重点关注“可能”被污染的标记的集合,例如,经常出现在 A 生成的水印文本中的 K-gram。 过滤器仅在封闭模型设置中使用。
由于在实践中发现,必须在数量级的代币中遵守水印,因此传统水印会受到代币分布偏差的影响。 因此,只有在检测中未看到前一个 k-gram 时,才会对令牌进行评分。 即使在分析许多令牌时,这也提供了可靠的价值。
假设预训练的 LLM B 根据模型 A 生成的指令答案对进行微调。 作者通过一些实验证明了带水印的合成指令的放射性,并将其放射性水平与未加水印的指令的放射性水平进行了比较。
模型 A 使用 llama-2-chat-7b,它使用自指令方法从一条指令开始,然后是三条指令来回答配对示例,并要求模型生成接下来的 20 条指令来回答配对。
从 LLM 的对数中采样时,选择不加水印或使用水印方法 [2],最终得到一个包含 100k 指令答案对的数据集。
最后,创建了 6 个混合数据集,水印数据比例为 ,其余数据集填充了无水印的指令。
按照ALPACA的方法,使用这6个合成数据集进行训练,对模型b=llama-1-7b进行微调,使用与a=llama-2不同的数据集进行训练,以避免在微调过程中使用相同基础模型的偏差。
下图显示了使用六个合成数据集微调 BOB 模型后生成的答案示例:
此外,本文通过自然问题和TriviaQA等几个常规问答数据集在0-shot下的得分,定性地检查了微调模型B的输出质量。
正如预期的那样,指令微调对大多数基准测试结果没有影响,但对 MMLU 结果产生了改进。 这证实了水印指令对微调没有重大影响
在没有水印的情况下,设置如下:Alice 可以打开模型访问 B,并且知道为 Bob 生成的所有数据(监督设置)。 Bob 在微调 B 中使用了部分数据,其范围由主管 D 确定。 在实验中,使用 k-s 检验来区分 B 在以下数据集上的校准混淆:不属于 B 微调数据集的 5k 指令响应(截断为 256 个标记); 相反,它包含 (1 d) 5k 指令应答。 该数据集模拟了 Bob 生成大量数据时发生的情况,但仅微调了其中的一小部分。
下图比较了 d = 0 和 d > 0 时的分布。 随着 d 的减小,检测变得更具挑战性:数据包含越来越多的未经微调的文本,因此两个谜题分布之间的差异变得越来越小。
下表显示了从放射性测试中获得的 p 值。 当 d > 2% 时,检验拒绝具有高度显著性的原假设:这意味着当检测到放射性污染时,假阳性的概率为 。
随着 d 的减小,该检验的功效会降低。 在边缘情况下 d = 0,即在无监督设置中,Alice 缺乏对 Bob 使用的数据的了解,测试是随机的。 相反,以下部分将显示使用此设置可以成功检测水印数据的放射性。
讨论开放模型设置中的放射性检测,其中表示来自 A 的水印数据在 B 的微调数据集中的比例。 同样分为监督设置 (d = 1) 和无监督设置 (d = 0)。 结果如下图所示:
与 MIA 方法类似,监督设置很简单,即使只有 1% 的 Bob 微调数据来自 A,放射性检测的 p 值也小于此值,即可以很容易地检测到。
反之,当 d = 0 时,MIA 不再适用,但本文提出的开放模型放射性检测试验,当用于微调 b 的指令不超过 5% 来自 A 时,仍然可以进行。 此时,将对不包含 Bob 使用的样本的文本语料库执行检测。 然而,它确实包含k-gram,它可能与Bob训练中的k-gram重叠,并且可以检测放射性。
在封闭的模型设置中,Bob 的模型 B 只能通过可以根据提示生成答案的 API 进行访问。 下图比较了在封闭模型和监督设置(d = 1)下,在考虑或不考虑过滤器的情况下,微调数据中具有1%水印的检测结果。
正如预期的那样,检测测试的置信水平随着标记数量的增加而增加。 此外,使用过滤器始终显示出改进的结果。
在 Alice 确切地知道哪些数据用于训练 Bob 的模型并可以免费访问该模型的情况下,成员推理攻击非常有效。 在这种情况下,她可以非常自信地证明 Bob 使用了 Alice 模型生成的数据。 但是,该方法的适用范围较小。
本文提出的基于水印的检测方法可以识别B在各种设置下是否具有放射性。 例如,即使没有 Bob 的训练示例(最现实的场景)的监督,只要至少有 10% 的数据带有水印,这种检测方法在 B 只能通过 API 访问时有效。
当模型 B 是开放模型时,测试功能更强大。 它可以在 10% 水印文本的情况下检测放射性。
下表显示了学习率、微调算法、训练周期和模型大小对放射性的影响,从结果中可以看出,模型对微调数据的拟合越好,就越容易检测其辐射活性。 例如,将学习率乘以 10 几乎是放射性测试平均值的两倍。
下表设置了不同的水印窗口大小,结果表明,当训练文本的水印检测p值固定时,放射性检测的置信度随着窗口大小k的增加而降低。 作者认为,主要有两个原因:首先,对于较低的k,k-gram在训练数据中被重复的几率更高,这增加了它在模型中的记忆。 其次,k-gram的数量是随着k的增加而增加的,而水印标记的数量是固定的m。 因此,在检测时,随着 K 的增加,放射性 K 克的数量会减少,从而降低测试能力。
假设 Alice 对分布没有先验知识,即 Alice 不知道该语言是意大利语、法语、英语、西班牙语还是德语。
如下表所示,使用维基百科文章开头提示 b 的相应语言,并检查生成的下一个 token。 结果表明,即使爱丽丝不知道鲍勃可能用来训练B的特定数据分布,她仍然可能在不同的分布中测试放射性,并表现出一定程度的显著性。
这篇关于语言模型的文章"放射性"详细阐述了这个概念。 它描述了一种在模型用作微调数据时检测水印生成的文本在模型中留下的痕迹的方法。 提出了四种新方法,根据对微调模型(开放或封闭)的访问和训练数据的类型(监督或无监督)来检测放射性。 与基线方法相比,这些方法得到了显着改进。
研究结果表明,很难检测没有水印的文本的放射性。 然而,在微调过程中,带水印的文字污染了模型,因此显示出明显的放射性迹象。 这意味着我们可以非常自信地判断训练数据是否由带水印的模型合成。
引用[1]alexandre sablayrolles, matthijs douze, cordelia schmid,and hervé jégou. radioactive data: tracing through training. in international conference on machine learning, pages 8326–8335. pmlr, 2020.
2]john kirchenbauer, jonas geiping, yuxin wen, jonathan katz, ian miers, and tom goldstein. a water mark for large language models. arxiv preprint arxiv:2301.10226, 2023a.