文献精读-大模型时代下的文本水印综述
本文最后更新于 225 天前,如有失效或谬误请评论区留言。

10.48550/arXiv.2312.07913

1 概述

文本水印算法用于保护文本内容的版权,大型语言模型近年来的进展彻底改变了这些技术,包括:

  • 利用大语言模型对自然语言的理解能力,增强文本水印算法
  • 利用现有的文本水印算法保护大语言模型的生成内容
  • 在大语言模型生成过程中直接嵌入水印的LLM水印

1.1 为什么文本水印对LLM有益?

文本水印能够解决大语言模型的问题:

  • 滥用大语言模型:恶意用户使用大语言模型生成错误信息、有害内容并在互联网上传播
  • 知识产权问题:恶意用户进行模型提取攻击,即攻击者通过问问题的方式提取大量数据用于训练新的大语言模型

如何解决:文本水印可以用于跟踪和检测大语言模型生成的文本,可以控制潜在的滥用,使用带有水印的文本训练新的模型可以嵌入这些水印,从而缓解模型提取攻击。

1.2 为什么LLM对文本水印有益?

大语言模型对语言语义和上下文的理解能力较强,支持更复杂的水印方法,使得嵌入水印对文本的含义影响最小。

2 文本水印

2.1 文本水印算法组成

文本水印算法通常由两个组件组成

  • 文本生成器A:将文本x与水印消息w作为输入,输出带水印的文本t,表示为$A(x,w)=t$,且t需与x语义一样,水印信息可以是零位水印(仅表示水印是否存在)和多位水印(嵌入详细的自定义信息)
  • 文本检测器D:输入是任何文本t,输出是文本的预测水印信息,表示为$D(t)=w$,如果输出为None,则表示文本不含水印信息

2.2 文本水印算法的关键特征

  • 对文本质量的影响:添加水印后,文本质量不应大幅降低,设 $A(x,∅)$表示生成的不带水印的文本。当 x 是一段现成文本时,输出仍为 x。对于大语言模型的输出 ,它表示 LLM 的输出没有水印。有效的水印算法可确保对文本质量的影响最小:$\forall w_i,R(A(x,\varnothing),A(x,w_i)) < \delta$,其中R是从多个角度评估文本质量的函数,$\delta$表示阈值,如果差异小于此阈值,则认为他们的质量相似

  • 鲁棒性:在进行一些修改后仍可以检测到带水印的文本的能力,应满足以下条件:

$\forall w_i,\forall t=A(x,w_i),P(D(U(t))=w_i) > \beta$,其中U函数为水印去除操作,$\beta$是阈值,如果在文本修改之后正确检测带水印文本的概率超过$\beta$,则认为该算法有足够鲁棒性

2.3 文本水印算法的分类

在LLM时代下,文本水印算法大致分为两类,一类为为预先存在的文本嵌入的水印,一类为大语言模型的水印,涉及修改修改LLM,包括在训练期间嵌入相关特征等方法。

2.4 现有文本的水印

2.4.1 基于格式的水印

此种类型受图像水印的启发(在图像二进制文件中嵌入编码),它更改编码格式而不是通过更改内容本身来嵌入水印,一般根据各种文本间距,同形文字。

  • 优点:实现较容易,可以在不更改文本内容的情况下嵌入大量有效负载

  • 缺点:格式修改可能很明显,鲁棒性不好,对文本内容的格式修改很容易删除这类水印,并且易于被检测

2.4.2 基于词法的水印

此种类型核心思想是把语句中的某些词语替换为其同义词,不改变句子的句法结构,通过反向规则来提取信息,一些优化的算法还支持对上下文进行感知,在上下文环境中生成适当的词汇替换

  • 优点:这种方式相比于基于格式的水印,其隐蔽性更强,鲁棒性相对来说更好
  • 缺点:部分算法中替换词语可能可以导致文本语义异常,不流畅,并且具有较高的可移除性,通过重写、改写部分文本就可以实现消除水印(例如随机同义词替换),以及可以嵌入的信息量较小

2.4.3 基于句法的水印

此种类型通过修改文本的语法结构来嵌入水印

  • 优点:真正的隐蔽
  • 缺点:较难实现,且很大程度上取决于语言的语法规则,对语言本身的要求很高

2.4.4 基于生成的水印

此种类型通过神经网络机器学习的方式,直接从原始文本和水印信息生成带水印的文本,使用LLM等技术来生成水印

  • 优点:LLM强大的语言理解功能增强了文本的自然性,隐蔽性大大提高
  • 缺点:要训练AI模型,需要较大的数据集

2.5 LLM的水印

LLM的水印指文本生成过程中的水印,允许LLM直接生成带水印的文本,数学定义为:$ A(x,w)=M_w(x)=t $,其中w是待嵌入的水印消息,x是提示符(问模型的问题),$M_w$是带有嵌入水印的大语言模型,t为输出。

2.5.1 大语言模型生成文本的过程

2.5.1.1 训练大语言模型:

涉及使用数据集$D$训练大语言模型$M$,训练目标因应用程序而异,最常见的是下一个标记预测(通过上一个词预测下个词应该是什么从而生成内容

2.5.1.2 Logits生成:

Logits生成的意思是模型在生成文本时输出的一个数值向量,每个数值表示了每个词的生成频率,数学表达为$l^{(i)}=M(x,t^{0:(i-1)})$,其中M为训练好的大语言模型,给定一个提示$x$和一系列先验词元$t^0$(意思是在生成下一个词之前已经看到的词,用它们来预测下一个词),$l^{(i)}$为下一个词元在词汇表中的概率分布

2.5.1.3 Token采样:

下一个标记$t^{(i)}$是从上面一步生成的$l^{(i)}$中选取的,通过核采样、贪婪解码、光束搜索等方法选取下一个词,数学表示为$t^{(i)} = S(softmax(l^{(i)}))$

通过这些步骤,大语言模型生成一个Token $t^{(i)}$,重复2、3步骤实现了大语言模型生成内容的功能,根据大语言模型的工作原理,我们可以设计三种不同的文本水印方式:

  1. 在LLM训练期间嵌入水印
  2. Logits生成期间嵌入水印
  3. Token采样期间嵌入水印

2.5.2 Logits生成期间嵌入水印

指在大语言模型生成的Logit里嵌入水印信息$w$,这种方式不需要修改大语言模型参数,所以比训练期间水印算法更通用,更好实现。

在这种方法中,水印算法$A$更改大语言模型中的logit以加入水印消息$w$,修改后的logits $\widetilde{l^{(i)}}$可以由以下方式计算:

$$
\widetilde{l^{(i)}}=A(M(x,t^{0:(i-1)}),w)=M_w(x,t^{0:(i-1)})
$$

其中$M$为训练好的模型,$M_w$为经过水印算法修改后的大语言模型

Kirchenbauer等提出了第一个基于logits修饰的LLM水印技术,成为KGW,该方法利用一个依赖于前一个Token的哈希函数,把词汇表划分为红色列表($R$)和绿色列表($G$),对于$M_w$生成的第i个Token,偏差$\delta$应用于$G$中标记的logit,位置$i$处的标记$v_j$的调整之后的logit $\widetilde{l_j^{(i)}}$的计算公式如下

$$
\widetilde{l_j^{(i)}}=M_w(x,t^{0:(i-1)})=
\begin{cases}
M(x,t^{0:(i-1)}[j]+\delta) & v_j\in G \\
M(x,t^{0:(i-1)}[j]) & v_j\in R
\end{cases}
$$

此算法偏向于绿色列表,即绿色列表中的词在水印文本的比例更高,检测器用哈希函数把每个Token分类为红色或绿色,并计算绿色Token比率:

$$
z=(\lvert s \rvert_G – \gamma T)/\sqrt{T\gamma(1-\gamma)}
$$

其中$T$是文本的长度,$\gamma$是绿色列表的比率,超过特定绿色Token阈值的文本被视为带水印,接下来是对该算法的五个优化目标

2.5.3 Token采样期间的水印

一种在令牌采样期间添加水印的技术,该技术不会更改 logits,而是利用水印消息来指导采样过程。根据引导的粒度,该技术可以分为两种主要方法:

  • Token级采样水印,在每个Token的采样过程中嵌入水印
  • 句子级采样水印,它使用水印消息来指导整个句子的采样。

2.5.4 LLM训练期间的水印

2.5.4.1 触发器基水印

触发器基水印是一种后门水印,通过在LLM中引入特定触发器,当输入中出现这些触发器时,模型会表现出特定的行为(如特定格式或输出)。这种水印可用于数据集版权保护或LLM版权保护。

  • 应用举例:
  • CoProtector(Sun等):用于代码生成任务,通过词级或句级修改代码作为触发器,生成通常具有不正确功能的破坏代码。
  • CodeMark(Sun等):采用语义不变的代码转换作为触发器,确保代码功能正确,同时以最小的性能影响嵌入基于触发器的水印。
  • Hufu水印(Xu等):不依赖特定输入触发器,而是使用特定输入格式作为触发器,利用Transformer的置换等变性,训练模型识别特定置换作为水印。

2.5.4.2 全局水印

尽管触发器基水印在特定情况下有效,但仅在存在特定触发器时才能工作,无法适用于所有输入。全局水印可在所有由LLM生成的内容中添加可检测标记,实现内容追踪。

  • 研究与方法:
  • Gu等 探讨了水印的可学习性,研究LLM是否可以直接学习生成带水印的文本。他们提出了两种学习方法:基于采样的水印蒸馏和基于logit的水印蒸馏,将推理时水印转化为模型固有参数。
  • Xu等 提出使用强化学习优化LLM水印。通过基于水印检测器反馈的强化学习技术,将水印嵌入LLM。实验结果显示,该方法实现了近乎完美的水印检测和强抗干扰能力,显著提升了水印的有效性和鲁棒性。然而,由于LLM的黑箱特性,该训练方法在分布外数据上的稳定性可能不如推理时水印。

2.6 评估指标

对于这些水印算法,全面的评估至关重要。本节将详细介绍文本水印算法的评估指标,主要包括检测能力、对文本质量的影响以及在各种攻击下的鲁棒性等方面。

2.6.1 检测能力

文本水印算法的基本要求是能够检测到水印的存在。本节将总结水印算法如何衡量其检测能力,包括零位水印和多位水印的检测指标,以及水印大小的概念。

2.6.1.1 零位水印

在零位水印中,目标是检测水印的存在。当前的水印算法通常提供一个检测器,使用假设检验生成z-score或p-value,并设定阈值以区分文本是否含有水印。检测过程一般构建一个包含等量水印文本和人类文本的数据集,使用检测器评估该数据集,并计算F1得分以及对应的假阳性率(FPR)和假阴性率(FNR)。

选择合适的阈值是检测方法的一个挑战,因为不同的方法可能有不同的阈值选择策略。例如,一些研究在固定的假阳性率下报告F1得分,而其他研究则展示在所有阈值下的最佳F1得分以便公平比较算法性能。

2.6.1.2 多位水印

在多位水印方法中,水印检测算法不仅需要检测水印的存在,还需要提取特定的信息。例如,水印文本可能编码特定的数据如“此文本由GPT-4于6月6日生成”。常见的检测指标包括比特错误率(BER)和比特准确率(Bit Accuracy)。此外,水印的比特容量或负载也是一个关键指标,通常以每个水印的比特数(Bits Per Watermark)或码率(Code Rate)表示。

2.6.1.3 水印大小

文本水印算法的水印大小决定了文本需要多长才能可靠地检测到水印。较长的文本提供了更多的修改空间,使得水印更易于检测。研究表明,如KGW算法在不同算法中具有较小的检测长度需求,表明其水印大小较优。

2.6.2 水印文本的质量影响

评估水印文本的质量主要针对修改已有文本的水印方法。关键在于比较水印文本与原始文本在质量上的差异,常用的评估方法包括比较指标和单文本评分。

2.6.2.1 比较评估指标

比较评估指标旨在评估水印文本与原始文本之间的相似性。常用指标包括:

  • BLEU评分:评估n-gram重叠情况,主要用于机器翻译领域。BLEU过于依赖精确匹配,可能无法完全捕捉语义等价性。
  • METEOR评分:除了精确匹配外,还考虑形态变化和同义词匹配,提供更灵活的相似性评估。
  • 语义分数(Semantic Score):通过计算文本的语义嵌入(如使用Sentence-BERT)之间的余弦相似度来评估。
  • 蕴含分数(Entailment Score):利用预训练在自然语言推理(NLI)任务上的模型,评估两个句子的语义关系。

2.6.2.2 单文本评估指标

单文本评估指标独立地评估原始文本和水印文本的质量,常用的指标包括:

  • 困惑度(Perplexity, PPL):衡量文本的流畅性和连贯性,较低的PPL表示较高的文本质量。
  • 人工评估:通过人工标注者评分,评估文本的可读性和语义连贯性,尽管成本较高但更为准确。

2.6.3 水印LLM的输出性能评估

针对水印LLM,需要评估其在一系列下游任务中的性能,包括文本补全、代码生成和机器翻译等。评估指标通常包括:

  • 文本补全
  • PPL:评估生成文本的流畅性。
  • P-SP:基于文本相似性的评价方法。
  • GPT-4得分:使用GPT-4对生成文本进行质量评分。
  • 代码生成
  • Pass@k:评估生成代码的执行正确性。
  • CodeBLEUEdit Sim:评估代码的表面形式匹配程度。
  • 其他任务
  • 问题回答:使用精确匹配(Exact Match)或ROUGE评分。
  • 数学推理:通过准确率评估。

2.6.4 水印LLM的输出多样性评估

水印算法通常偏向选择特定的输出内容,可能导致输出多样性降低。当前的多样性评估指标主要集中在文本补全任务,包括:

  • Seq-Rep-N:计算文本中n-gram的重复率。
  • Log Diversity:通过计算不同n-gram的负对数比例来衡量多样性。
  • Ent-3:衡量文本中3-gram频率分布的熵值。
  • Sem-Ent(语义熵):通过对语义嵌入进行聚类分析,计算聚类分布的熵值。

2.6.5 水印算法在非针对性攻击下的鲁棒性

为评估水印算法在面对非针对性攻击(如文本修改、格式转换等)时的鲁棒性,主要考察算法在经过攻击后的检测准确率。常见的非针对性攻击包括:

  • 字符级攻击:如同形字替换,可能通过归一化手段被移除。
  • 词级攻击:如插入、删除或替换词语,使用同义词替换以最小化语义影响。
  • 文档级攻击:如回译、改写段落结构,通过大规模文本修改来弱化水印。
  • 拷贝粘贴攻击:将水印文本插入大量非水印文本中,降低水印部分的比例。

2.6.6 水印算法在针对性攻击下的鲁棒性

针对性攻击指攻击者试图破解水印算法的生成方法,以移除或伪造水印。主要包括:

  • 伪装攻击(Spoofing Attack):通过统计分析词频来推断红绿列表。
  • 水印偷取(Watermark Stealing):通过API查询逆向工程水印生成规则。
  • 自颜色测试替换(SCTS):通过特定提示生成特定标记来推断水印规则。
  • 混合整数规划(MIP):通过优化算法推断水印生成规则。
  • 模型微调攻击:针对训练时水印的模型,通过进一步微调移除水印特征。
    水印算法需要具备较高的复杂性和不可预测性,以增加针对性攻击的难度。

2.6.7 基准和工具

为了统一实现和评估文本水印,部分基准和工具被引入,包括:

  • WaterBench:全面评估水印的检测能力及其对LLM能力的影响,覆盖多种任务和数据集。
  • WaterJudge:侧重于评估水印检测与输出质量之间的权衡,使用F1得分和LLM-based评估方法。
  • Mark My Words:关注水印大小和在攻击下的鲁棒性,通过定义最小检测长度和抗攻击性评估。
  • MarkLLM:开源工具包,提供大多数现有LLM水印算法的统一框架,并提供检测、质量和鲁棒性评估工具。

2.7 应用场景

文本水印技术在实际应用中主要集中在版权保护和AI生成文本检测两个领域。

2.7.1 版权保护

2.7.1.1 文本版权

文本版权保护旨在通过检测水印来识别文本的来源,防止未经授权的使用。常用的方法是基于格式的水印算法,这类算法不改变文本内容,仅通过格式特征嵌入水印。例如:

  • 白标记(WhiteMark):通过替换空格字符(U+0020)为其他空格编码(如U+2004)嵌入水印。
  • 变体标记(VariantMark):针对CJK文本使用Unicode变体选择器。
  • 打印标记(PrintMark):在打印文本中使用连字或稍微不同的空格长度嵌入水印。
    虽然基于格式的水印方法易于实现,但其格式修改可能被轻易检测和移除。

2.7.1.2 数据集版权

数据集版权保护通过在数据集中嵌入特定触发器和目标行为,防止数据被未经授权使用。例如:

  • 触发器基水印:在数据集中嵌入特定词语或句型,训练后的LLM在遇到这些触发器时会产生特定输出行为。

2.7.1.3 LLM版权

保护LLM版权主要通过防止模型提取攻击,实现方法包括:

  • 语义不变的水印替换:通过上下文感知的同义词替换,不改变词频分布,增加水印隐蔽性。
  • Logits修改水印(如KGW):在输出的logits中嵌入周期性信号,提高水印的鲁棒性和隐蔽性。
    需要注意的是,复杂的水印规则有助于提高水印的抗攻击能力,但也可能影响模型的输出质量。

2.7.2 AI生成文本检测

随着LLM能力的增强,AI生成文本在学术诚信和虚假信息传播等方面的潜在滥用风险增加。有效的水印检测方法有助于:

  • 学术诚信:检测学生作业、论文是否由LLM生成。
  • 虚假信息:识别并阻止AI生成的虚假新闻或误导性内容的传播。
    目前,部分在线服务采用基于特征或训练分类器的方法进行检测,但尚缺乏统一的水印检测平台。未来,构建一个统一的水印检测平台将是重要的发展方向。

2.8 挑战与未来方向

尽管在文本水印技术领域取得了显著进展,仍存在诸多挑战需要克服,包括算法设计中的权衡、特定应用场景下的适应性以及在不增加额外负担的前提下应用水印等方面。

2.8.1 算法设计中的权衡

2.8.1.1 水印大小、鲁棒性与容量的权衡

提高水印容量通常需要更大的文本长度以确保水印的可检测性,同时也可能降低水印的鲁棒性。增加水印容量意味着需要在更长的文本中嵌入更多的信息,这对文本质量和检测效率提出了更高的要求。

2.8.1.2 针对性与非针对性攻击的鲁棒性

增强对非针对性攻击的鲁棒性通常会降低对针对性攻击的防御能力,反之亦然。这是因为复杂的水印规则虽然增加了反破解的难度,但也使得水印更容易被文本修改所破坏。

2.8.1.3 输出多样性与鲁棒性的权衡

水印算法倾向于选择特定的输出内容,可能导致LLM生成文本的多样性降低。提高鲁棒性通常需要更严格的水印嵌入策略,这可能限制了文本生成的多样性。

2.8.2 特定应用场景下的挑战

2.8.2.1 低熵场景

在代码生成或表格生成等低熵场景中,文本具有严格的语法和格式要求,水印嵌入空间有限,挑战在于设计不影响文本功能和格式的水印方法。

2.8.2.2 公开可验证场景

在公开可验证的场景下,检测器向公众开放,这增加了水印被逆向工程和伪造的风险。设计需要兼顾检测能力与抗攻击能力,确保水印生成方法的不可预测性。

2.8.2.3 开源场景

对于开源LLM,水印必须嵌入模型参数中,防止通过模型微调等方法移除水印。这需要设计能够在模型参数层面嵌入且具备高鲁棒性的水印方法。

2.8.3 无额外负担的水印应用挑战

2.8.3.1 严格的无畸变水印

当前许多“无畸变”水印方法仅在特定的采样假设下有效,真实应用中可能面临多样的文本生成策略(如束搜索等),需要开发更通用的无畸变水印方法。

2.8.3.2 避免额外计算负担

水印算法应尽量减少对LLM推理速度和计算资源的影响。部分算法通过预计算哈希结果或优化检测流程来降低计算负担,但仍需在鲁棒性和计算效率之间找到更好的平衡。

2.8.4 未来方向

  • 开发更复杂和隐蔽的水印规则,以提高对针对性攻击的防御能力。
  • 探索新的水印嵌入范式,如基于语义的嵌入方法,提升水印的隐蔽性和鲁棒性。
  • 构建统一的水印检测平台,以支持多种水印算法和应用场景的检测需求。
  • 研究适用于低熵场景的高效水印方法,确保在代码、表格等特定领域中水印的有效性。
  • 提升公开可验证水印的安全性,通过引入加密技术或基于神经网络的水印生成方法,增强水印的抗伪造能

2.9 结论

本文对大语言模型时代下的文本水印技术进行了全面的综述,涵盖了其实现方法、评估指标、应用场景以及面临的挑战和未来方向。尽管取得了显著进展,但在算法设计的权衡、特定应用场景的适应性以及在不增加额外负担的前提下应用水印等方面仍存在诸多挑战。未来的研究应聚焦于开发更强健和高效的水印算法,确保在多样化的应用场景中实现文本内容的版权保护和滥用防控,从而促进AI技术的负责任和伦理使用。

以上仅代表个人观点,如有不当之处,欢迎与我进行讨论
版权声明:除特殊说明,博客文章均为Mareep原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。

评论

  1. 摆烂王👑
    Android Chrome 122.0.6261.119
    8 月前
    2024-11-26 11:15:37

    😗😗😗😗

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇