当前位置: 首页 > news >正文

UNBIASED WATERMARK:大语言模型的无偏差水印

摘要

1.背景与问题提出

大语言模型(LLMs)的快速发展引发了对其可能被滥用的担忧。为降低这种风险,将水印技术融入大语言模型,以实现对模型输出的追踪和溯源成为一种思路。而此前研究认为,水印强度和模型输出质量之间存在权衡(即增强水印可能会降低输出质量,反之亦然)。

2.核心研究发现

研究表明,通过恰当的实现方式,能够在不影响模型输出概率分布的情况下整合水印,这类水印被称为 “无偏差水印(unbiased watermark)”。

3.无偏差水印的影响与意义

  1. 用户感知层面:用户无法辨别服务提供商是否在模型中加入了水印,这在保护知识产权等场景下,既实现了追踪目的,又不影响用户使用体验。
  2. 模型性能层面:水印的存在不会损害模型在下游任务中的性能,保障了语言模型的整体实用性。
  3. AI 发展层面:为负责任的 AI 发展相关讨论做出贡献,表明无偏差水印可作为一种有效手段,在不牺牲输出质量的前提下,对模型输出进行追踪和溯源。

第一章 介绍

近年来,大型语言模型(LLMs)已成为各类任务中不可或缺的工具,涵盖文本生成、翻译、摘要生成等。随着大型语言模型滥用情况(如抄袭)不断加剧,追踪机器生成文本的使用情况变得愈发重要。一种可行的监控大型语言模型使用的方法是水印技术,它能在生成的文本中嵌入难以察觉的信息,从而实现对模型潜在滥用情况的高效检测与追踪。

水印技术有多重用途,比如可在生成的文本中嵌入所有权信息,以保护模型的知识产权。此外,通过监控模型的使用场景以及是否被误用或滥用,它还有助于减轻大型语言模型可能带来的潜在危害。

一种好的水印方法,得既不影响语言模型正常用,也不能让生成的文本质量下降。不过,大家普遍觉得,水印的强度和输出文本的质量之间,肯定得做个权衡。比如说,Kirchenbauer 等人最近的研究里,搞了个方法,给随机选的一组 “绿色” 标记的对数概率(logits)加了点东西。通过调整 “对数概率调整的幅度”,他们就展示出,水印强度和文本质量之间是有这种此消彼长关系的。

我们最主要的贡献,就是挑战这种传统看法。我们发现,只要实现方式对了,水印是能在不影响输出质量的情况下加上的。我们把这种特别的水印叫做无偏水印。我们从怎么检测水印的角度,来解决输出质量下降的问题。我们猜想:要是水印让输出质量下降了,那肯定有办法通过文本质量猜出有没有水印;反过来,如果水印根本检测不出来,那就说明输出质量没受影响。具体来讲,我们还证明了,用合适的方式做水印,是不会影响输出的概率分布的。这很重要,因为对于那些没有检测手段的用户来说

没有私钥的用户无法辨别服务提供商是否已对模型应用了水印。此外,添加水印不会对生成文本在任何下游任务中的表现产生影响。我们的主要贡献可总结如下:

  • 我们引入了无偏水印,这是一类创新的水印方法,能够保证文本质量不下降。除此之外,我们还提供了一个全面的框架,有助于无偏水印的设计和检测。
  • 我们提出了两种创新且实用的水印技术,分别称为 δ - 重加权和 γ - 重加权。通过大量的实验,我们证明了这些技术在机器翻译和文本摘要任务中能够保持输出质量。
  • 我们开发了原始对数似然比检验的一种先进的极大极小变体,用于水印检测。这种新颖的检测方法具有理论保障,特别是对第一类错误有上界限制,从而提高了语言模型中水印检测的可靠性。

 第二章 预备知识

在本节中,我们深入探讨大型语言模型(LLMs)语境下的水印问题。首先从构建问题和定义关键概念入手。

2.1问题建模

我们先引入一些符号来将问题形式化。令\(\Sigma\)表示词汇集,即大型语言模型在单步生成中所有可能标记的集合。接着定义集合\(\Sigma^*\)为所有任意长度(包括长度为 0)的可能字符串的集合。

大型语言模型会基于给定上下文生成标记序列。在单步中,给定当前上下文\(x_1, x_2, \dots, x_n\),生成下一个标记\(x_{n + 1} \in \Sigma\)的概率可表示为\(P_M(x_{n+1} \mid x_1, x_2, \dots, x_n)\)。大型语言模型以自回归的方式运作,这意味着生成多个标记\(x_{n+1}, \dots, x_{n+m}\)的联合概率可写成: \(P_M(x_{n+1}, \dots, x_{n+m} \mid x_1, x_2, \dots, x_n) = \prod_{i = 1}^{m} P_M(x_{n+i} \mid x_1, x_2, \dots, x_n, x_{n+1}, \dots, x_{n+i - 1})\)

注记:

LLM 是 “自回归” 的,意思是 “生成下一个标记时,会用到之前所有生成的标记”。 如果要生成m个连续的标记\(x_{n+1}, \dots, x_{n+m}\),就需要:

  • 第一步:根据\(x_1, \dots, x_n\),生成\(x_{n+1}\),概率是\(P_M(x_{n+1} \mid x_1, \dots, x_n)\);
  • 第二步:现在上下文变成了\(x_1, \dots, x_n, x_{n+1}\),再生成\(x_{n+2}\),概率是\(P_M(x_{n+2} \mid x_1, \dots, x_n, x_{n+1})\);
  • ……
  • 第m步:上下文是\(x_1, \dots, x_n, x_{n+1}, \dots, x_{n+m - 1}\),生成\(x_{n+m}\),概率是\(P_M(x_{n+m} \mid x_1, \dots, x_n, x_{n+1}, \dots, x_{n+m - 1})\)。

因为每一步的概率是 “条件概率”(依赖之前所有内容),所以多个标记的联合概率,就是把每一步的条件概率 “相乘”,也就是公式里的: \(P_M(x_{n+1}, \dots, x_{n+m} \mid x_1, \dots, x_n) = \prod_{i = 1}^{m} P_M(x_{n+i} \mid x_1, \dots, x_n, x_{n+1}, \dots, x_{n+i - 1})\)

举个更通俗的例子

比如要生成句子 “I love reading books”

  • 第一步:有上下文(假设初始上下文是空,或有前文铺垫),生成 “I” 的概率是\(P(\text{I} \mid \dots)\);
  • 第二步:上下文变成 “I”,生成 “love” 的概率是\(P(\text{love} \mid \text{I})\);
  • 第三步:上下文变成 “I love”,生成 “reading” 的概率是\(P(\text{reading} \mid \text{I love})\);
  • 第四步:上下文变成 “I love reading”,生成 “books” 的概率是\(P(\text{books} \mid \text{I love reading})\);

所以这整个句子的联合概率,就是\(P(\text{I}) \times P(\text{love} \mid \text{I}) \times P(\text{reading} \mid \text{I love}) \times P(\text{books} \mid \text{I love reading})\),和公式的逻辑完全一致~

为简化起见,我们使用以下符号:\(P_M(\boldsymbol{x}_{n+1:n+m} \mid \boldsymbol{x}_{1:n})\),其中\(\boldsymbol{x}_{n+1:n+m} = (x_{n+1}, \dots, x_{n+m}) \in \Sigma^*\)。

在水印的语境下,我们引入一个服务提供商,该提供商持有来自密钥空间K的私钥k。密钥\(k \in K\)是从先验分布\(P_K(k)\)中随机选取的。大型语言模型的带水印输出遵循分布\(P_{M,w}(x_{n+1} \mid x_1, x_2, \dots, x_n; k)\),该分布同时以密钥k和上下文\(\boldsymbol{x}_{1:n}\)为条件。类似地,我们使用符号\(P_{M,w}(\boldsymbol{x}_{n+1:n+m} \mid \boldsymbol{x}_{1:n}; k)\)来表示在带水印模型中生成标记序列的概率。

可以这样通俗理解:

服务提供商想象成 “加水印的人”,私钥k 是他手里的 “秘密工具”,这个工具是从一堆可能的 “秘密工具”(密钥空间K)里,按照一定的随机规则(先验分布\(P_K(k)\))选出来的。

当大型语言模型要生成带水印的内容时,它生成下一个标记\(x_{n + 1}\)的概率,不仅要考虑之前的上下文\(x_1, x_2, \dots, x_n\),还要用到这个 “秘密工具”k,所以概率写成\(P_{M,w}(x_{n+1} \mid x_1, x_2, \dots, x_n; k)\)。

要是要生成一串标记\(x_{n+1}, \dots, x_{n+m}\)(也就是一段带水印的文本),那整个序列的生成概率,同样要同时依赖上下文\(x_{1:n}\)和私钥k,所以用\(P_{M,w}(x_{n+1:n+m} \mid x_{1:n}; k)\)来表示。简单说就是:加水印不是随便加的,得用一个 “秘密钥匙”k,生成带水印的内容时,每一步的概率都和这个 “钥匙” 以及之前的内容有关。

2.2目标与核心概念精读

目标阐述

我们的目标是设计一种水印方案,要满足两点:一是能被服务提供商高效检测;二是用户无法检测到,且不会对输出质量产生负面影响。

之所以关注用户对水印的检测情况,是因为这和输出质量密切相关。要是水印导致输出质量下降,那应该存在通过检查质量来推断水印存在的方法;反过来,若水印无法被检测,就意味着它对输出质量没影响。

从统计检验的角度看,若带水印和不带水印输出的概率分布完全一致,水印就被认为是严格不可检测的。为了描述这个概念,我们定义了几个理想的水印方案属性。

定义解析
  • 定义 1(n - 次不可检测):对于固定的输入序列\(\boldsymbol{a} \in \Sigma^*\),若对于任意n个字符串\(\boldsymbol{x}^i \in \Sigma^*\),都有\(\prod_{i = 1}^{n} P_M(\boldsymbol{x}^i \mid \boldsymbol{a}) = \sum_{k \in K} P_K(k) \prod_{i = 1}^{n} P_{M,w}(\boldsymbol{x}^i \mid \boldsymbol{a}; k)\),那么带水印的大语言模型与密钥先验对\((P_{M,w}, P_K)\)相较于原始大语言模型\(P_M\)是n - 次不可检测的。
  • 定义 2(下游不变性):若对于任意字符串\(\boldsymbol{x}, \boldsymbol{a} \in \Sigma^*\),以及任意度量函数\(f: \Sigma^* \to \mathbb{R}\),都有\(\mathbb{E}_{\boldsymbol{x} \sim P_{M,w}(\cdot \mid \boldsymbol{a}; k), k \sim P_K}[f(\boldsymbol{x})] = \mathbb{E}_{\boldsymbol{x} \sim P_M(\cdot \mid \boldsymbol{a})}[f(\boldsymbol{x})]\),那么带水印的大语言模型与密钥先验对\((P_{M,w}, P_K)\)相较于原始大语言模型\(P_M\)在下游任务上是不变的。
性质关联与总结

注意,一次不可检测的性质蕴含下游不变性,因为相同的分布对任意函数都会产生相同的期望。有趣的是,这种蕴含关系不需要\(n > 1\)时的n - 次不可检测性质,这意味着,即使用户可能通过多次生成请求察觉到水印的存在,一次不可检测的水印方案仍能在下游任务中保持输出质量。

总之,我们概述了为大语言模型开发水印方案的初步概念和目标。我们强调了n - 次不可检测性和下游不变性这些理想性质,因为它们为水印方案的部署提供了严格的质量保持和完整性的理论保障。在第 4 节,我们将呈现一个被证明对于任意给定整数\(n \geq 1\)都具有n - 次不可检测性的水印框架。

注记:

定义 1:n - 次不可检测

想象你有原始模型(没加水印的大语言模型)和带水印模型

  • 原始模型生成内容时,对于固定输入\(\boldsymbol{a}\)(比如 “请写一段关于春天的文字”),生成n个不同输出(比如n段不同的春天文字\(\boldsymbol{x}^1, \boldsymbol{x}^2, \dots, \boldsymbol{x}^n\))的概率乘积是\(\prod_{i = 1}^{n} P_M(\boldsymbol{x}^i \mid \boldsymbol{a})\)。
  • 带水印模型生成这n个输出时,因为水印是靠 “密钥k” 控制的(k从密钥空间K里随机选,选的概率是\(P_K(k)\)),所以要把 “所有可能的密钥k对应的生成概率” 加权求和(权重就是\(P_K(k)\)),得到\(\sum_{k \in K} P_K(k) \prod_{i = 1}^{n} P_{M,w}(\boldsymbol{x}^i \mid \boldsymbol{a}; k)\)。

如果这两个值相等,就说明:从概率上看,“原始模型生成n个输出的整体概率” 和 “带水印模型用所有可能密钥生成这n个输出的整体概率” 是一样的。这时候,带水印模型就很难被通过 “观察n次生成结果” 检测出来,所以叫 “n - 次不可检测”。

定义 2:下游不变性

“下游任务” 可以理解为 “用生成的文本去做其他事”,比如拿生成的文本去做翻译、摘要等任务。

  • 左边\(\mathbb{E}_{\boldsymbol{x} \sim P_{M,w}(\cdot \mid \boldsymbol{a}; k), k \sim P_K}[f(\boldsymbol{x})]\):带水印模型生成文本\(\boldsymbol{x}\)(依赖输入\(\boldsymbol{a}\)和随机选的密钥k),然后用 “度量函数f”(比如评估翻译准确性的函数)去衡量\(\boldsymbol{x}\)在下游任务里的表现,最后求期望(因为k是随机的,所以要考虑所有k的情况)。
  • 右边\(\mathbb{E}_{\boldsymbol{x} \sim P_M(\cdot \mid \boldsymbol{a})}[f(\boldsymbol{x})]\):原始模型生成文本\(\boldsymbol{x}\)(依赖输入\(\boldsymbol{a}\)),用同样的f衡量表现并求期望。

如果这两个期望相等,就说明:带水印后,文本在下游任务里的表现和原始模型生成的一样,没有变差,这就是 “下游不变性”。

性质关联与总结

  • “一次不可检测”(\(n=1\)时的n - 次不可检测)能推出 “下游不变性”。因为如果 “生成单个文本的概率分布” 和原始模型一样,那用任何函数f去算期望,结果也会一样(就像两个相同的桶,随便选个规则从桶里取东西算平均,结果肯定一样)。
  • 更有趣的是:哪怕 “\(n>1\)时不是n - 次不可检测”(比如用户多次生成,能隐约感觉到水印),只要 “一次不可检测”,下游任务的质量还是能保住。
  • 最后总结:n - 次不可检测和下游不变性这两个性质很重要,因为它们从理论上保证了 “加水印后,文本质量不下降,且不容易被检测”。第 4 节会讲一个能证明对任意\(n \geq 1\)都满足n - 次不可检测的水印框架。

第三章 热身:简化玩具环境中的不可检测性

在本小节中,我们旨在证明在高度简化的玩具环境中,不可检测性是可行的。这项初步分析为理解后续更复杂的场景奠定了基础。

设定:考虑一个提供随机数生成服务的服务提供商。该服务会输出集合\(\{0, 1\}\)中均匀分布的随机数。无水印的生成过程可表示为\(P_M(x) = 1/2\),对所有\(x \in \{0, 1\}\)成立。我们假设密钥k属于集合\(\{0, 1\}\),且被等概率选取。添加水印后,新输出的概率可表示为:\(P_{M,w}(x \mid k) = \delta_k(x)\)。

注记:

“玩具环境(toy environment)” 是学术研究里的一种常用表述,指的是为了便于理解核心概念、验证基础原理,而刻意简化、抽象出来的简单场景或模型,就像给复杂问题做 “缩小版、简化版的模拟实验”。

  • 文中构造了一个 “生成\(\{0,1\}\)均匀随机数” 的场景,符号集(只有 0 和 1)、概率分布(均匀分布)、生成过程(不是自回归,就单步生成)都被极大简化了。
  • 现实中大型语言模型(LLMs)的符号集(海量词汇、标记)更复杂,概率分布也不均匀,生成还是自回归的(一步步生成文本),和这个 “玩具环境” 差异很大

回顾一下,一次不可检测性的性质可表示为\(P_M(x) = \sum_{k \in K} P_{M,w}(x \mid k)P_K(k)\)。假设用户只能向该服务发起一次请求。如果用户不知道密钥,就无法辨别接收到的结果是否带有水印。因此,在这个简化场景中,实现了不可检测性。

然而,这个玩具示例与大型语言模型(LLMs)中水印的实际应用之间存在很大差距。首先,LLMs 中的符号集\(\Sigma\)远比二元集合\(\{0, 1\}\)复杂,且概率分布并非均匀的。此外,LLMs 中的生成过程是自回归的,这意味着多个符号会被迭代生成。而且,该玩具示例对于\(n > 1\)的情况,不满足n - 次不可检测性。

尽管存在这些差异,这个简单示例提供了重要的见解,有助于理解后续我们应对这些挑战的章节。不可检测性的基本原理保持不变,只是在更复杂的环境中,其应用变得更加复杂。


文章转载自:

http://iRuRU4en.Lzqxb.cn
http://SiovyNCu.Lzqxb.cn
http://c55qVJ3D.Lzqxb.cn
http://e4u24vkU.Lzqxb.cn
http://5ZtKsaFI.Lzqxb.cn
http://BzIpq1yr.Lzqxb.cn
http://NTaEEZmE.Lzqxb.cn
http://tFq5sYnD.Lzqxb.cn
http://SaURQLIl.Lzqxb.cn
http://14lxdXfy.Lzqxb.cn
http://WrAptbRi.Lzqxb.cn
http://ahPDIcB4.Lzqxb.cn
http://7wr7f6ia.Lzqxb.cn
http://8akDPD64.Lzqxb.cn
http://E9sv1aie.Lzqxb.cn
http://Pe5Qg6d3.Lzqxb.cn
http://LAUqIfPh.Lzqxb.cn
http://0q8UckTH.Lzqxb.cn
http://OK2kSi5t.Lzqxb.cn
http://eQkgXQwl.Lzqxb.cn
http://ycLc9stR.Lzqxb.cn
http://h7k1gvQ8.Lzqxb.cn
http://8plY2y8v.Lzqxb.cn
http://7twmjhNC.Lzqxb.cn
http://EAGgS1jt.Lzqxb.cn
http://1GIozhea.Lzqxb.cn
http://ZmEKl3eF.Lzqxb.cn
http://ZY0sfPUh.Lzqxb.cn
http://1byYDnE8.Lzqxb.cn
http://gHPVaOYK.Lzqxb.cn
http://www.dtcms.com/a/373137.html

相关文章:

  • Android Studio处理异常报错:Cause connect timed out
  • 基于哈塞特独立性表态的AI量化研究:美联储政策独立性的多维验证
  • 人工智能-python-深度学习-经典神经网络AlexNet
  • SpringBoot集成电科金仓数据库(上):环境搭建与基础配置
  • AR 巡检与普通巡检有哪些区别,有哪些优势|阿法龙XR云平台
  • Web与Nginx网站服务二
  • [硬件电路-166]:Multisim - SPICE与Verilog语言的区别
  • 计算机毕业设计 基于Python+Django的医疗数据分析系统
  • 鸿蒙:绑定半模态页面(bindSheet)
  • 001-003 产品经理-ML应用构建-ML应用范围
  • Node中使用 fs 和 node:fs 的区别与选择
  • SYN 包在什么场景下会被丢弃
  • R 语言科研绘图 --- 其他绘图-汇总2
  • Aider AI Coding 多策略编码系统深度分析报告
  • 胜券POS:打造智能移动终端,让零售智慧运营触手可及
  • tensorflow.js 使用场景
  • 【技术教程】如何将ONLYOFFICE文档集成到使用Spring Boot框架编写的Java Web应用程序中
  • 安卓学习 之 用户登录界面的简单实现
  • 3 提示词(Prompt):大模型的交互语言
  • 微信小程序体验版,当打开调试模式正常访问,关闭之后无法访问
  • 虚拟机ubuntu22.04没有网
  • 【WorkManager】无法在 Direct Boot 模式下初始化
  • Prompt Engineering to Context Engineering
  • Swift 语法学习指南 - 与 Kotlin 对比
  • Redux和MobX在React Native状态管理中的优缺点对比
  • 新的一天开始2025.9.8
  • LAMPSecurity: CTF6靶场渗透
  • 服务器安装 LDOPE(MODIS 数据处理工具)
  • 动态线程池中修改核心线程数比当前线程数要少,会不会影响正在执行的线程任务
  • Axum文档 ~ 2.路由