首页 > 教程攻略 > ai资讯 >LLM 基础知识 | WaterMarking,你搞懂了吗?

LLM 基础知识 | WaterMarking,你搞懂了吗?

来源:互联网 时间:2026-08-27 14:18:15

LLM 基础知识 | WaterMarking,你搞懂了吗?

文本水印(Text Watermark)技术,是LLM领域一个非常关键但又容易被忽略的基础模块。简单来说,它主要分为两大类:一类直接打在文本上,另一类则嵌在模型里。我们先从一个大框架入手。

01 Watermarking

先说针对文本的。这一类水印方法花样不少,包括基于形式的、基于语词的、基于语法的,还有基于文本迭代的。所谓文本迭代,其实就是前三种方法的组合拳,核心要求是保证原意不变。

而针对模型的水印,则涉及跨时间、标签抽样以及LLM训练等环节。

针对文本

Format-based

核心思路是在语序上做文章。具体操作是,先识别出某种固定的规律或模式,然后找到一批符合条件的候选单词,再把水印打上去。这种方式比较“硬”,但胜在稳定。

Lexical

这个就好理解了——直接替换掉部分语词,把这些新词当作水印的载体。

Syntactic-based

单词级别的替换容易被识别和移除,所以发展出了基于语法的方法。相关论文会详细介绍这类水印的生成机制。

Generation-based

这里有个挺有意思的发现:机器通过意译翻译生成的句子,反而比人类手动意译更能贴近原意。原因在于,人类在翻译时很少会刻意复盘自己的意译策略,而模型不仅对标语言能力的上限,还会自觉识别并调整自己的映射模式。因此,机器生成的意译结果往往更忠实于原意。更关键的是,随着迭代,这种方法还能持续产生更高质量的语料。

针对 LLM

先厘清几个核心知识点。

知识点-1:LLM的生成流程是 Training → Logit Generation → Token Sampling。

知识点-2:Logit Value的计算方式是这样的:
token v(j) 是红色的概率 Pr_red = LLM(输入向量 x, 前i-1个token);
token v(j) 是绿色的概率 Pr_green = LLM(输入向量 x, 前i-1个token)+ Δ。

公式解释:|s| 代表绿色样本数量;T 是一个句子或段落的单词总数。

知识点-3:为了兼顾文本质量与防篡改能力,目前主要有三种水印嵌入策略:在Logits生成阶段、在Token采样阶段,以及在LLM训练阶段。

02 Watermark for LLM

1. During Logits Generation

a. 增强水印识别度(Enhancing Watermark Detectability)

。这个思路的核心目标是极低的假阳性率(FPR)。具体有两种主流方法:一是基于熵的权重分配,高熵区域获得更高权重。换句话说,文本中概率变化越剧烈的区域,其水印信号被接收的概率就越高。二是基于滑动窗口的方法。做法是固定窗口大小,通过最大化z-score(原始论文中有详细表达式)来训练,然后判断准确率,最终找到那个让准确率最高的窗口。

b. 降低对文本质量的影响(Mitigating Impact on Text Quality)

。不自然的词语搭配和连接会显著降低可读性,因此必须开发更精细的干预方法。

b-1,REWEIGHT

。直接修改Logit统计量会引入偏差,导致高概率词和低概率词的概率都虚高。为此,学者提出了reweight方法,核心思想是降低一部分样本的概率(极端情况下直接归零),同时提升另一部分样本的概率。该方法理论上是无偏的。

b-2,ENTROPY

。一种策略是绕过低熵区域,结合熵值和红色列表概率,设定上限。另一种是降低误禁词的概率(likelihood),减少偏差,避免这些词被不公正地排除。

c. 增加水印容量(Expanding Watermark Capacity)

。KGW使用的是zero-bit水印,但实际应用中,版权细节、时间戳、身份信息等要求multi-bit水印。当词汇表足够大时,可以将词汇表划分,原本是红绿二分类,现在变为多分类。如果想携带b个比特,词汇表需要被分为2^b个组,每组偏好不同的水印风格。另一种方法是使用承载更丰富信息的水印(水印本身也是单词),将文本划分成若干区域,每个区域嵌入特定比例的信息。但问题在于,颗粒度如果太细,水印效果会大打折扣。部分学者尝试结合两种方法,在保证充分水印容量的同时,避免颗粒度过细导致准确率下降。

d. 提升鲁棒性(Improving Robustness Against Removing Attacks)

。水印算法必须稳定,能抗住各种攻击。攻击方式通常是改变文本但保留语义,这会导致嵌入的水印信息发生变化。KGW算法在这方面已有不错的表现,但仍有提升空间。

一种更稳健的方法是词汇表分割。原始KGW算法使用所有词汇信息,每个单词标红或绿。后续学者专门研究了分割算法,确保其对编辑行为稳定(即任何编辑操作下,概率分布变化较小),同时分割本身也稳定(不同分割下,不同语词的概率分布变化较小)。针对移除水印的攻击,这种方法可以保持文本语义不变。有些人还会把经过训练的“水印模型”直接转化为文本语义,红绿结果直接影响文本区分,从而保证稳定性。还有人通过“增删限制”或“在插入水印时加权重”来进一步提升性能。

e. 公开可验证(Achieving Publicly Verifiable Watermarks)

。这一点很重要。传统的KGW哈希函数等检测函数都是个性化的,如果公开,会带来安全风险。实现公开可验证需要用到密码学领域的知识,主要是电子签名。采用公钥-私钥体系,验证公钥时,从文本中抽取信息,这种方式本身就能创造水印。识别和创造水印的方法,都基于神经网络。

总结一下,在Logits生成阶段嵌入水印,需要同时满足五大性质:高识别度、对文本质量影响最小、大容量、强鲁棒性、公开可验证。

2. During Token Sampling

Token采样阶段的水印方法,涉及“水印消息”(Watermarking Message)。根据颗粒度,分为两个层级:token-level 和 sentence-level。

a. Token-level

,直接在语词预测时生成水印。Token采样是随机的,通过种子(Seed)即伪随机数来引导整个句子。

b. Sentence-level

,利用水印消息来引导整个句子。单个词打水印的缺点很明显,一旦替换或删除某个词,整篇文章的概率分布就会不稳定。既然语义不变,何不把颗粒度加大?sentence-level的鲁棒性显然更好。

3. During LLM Training

之前的算法在Logits生成阶段嵌入水印,其实很容易被移除。许多开源大模型的参数里,水印必须在训练期间就嵌进去。这类水印分为 Trigger-based 和 Global Watermarking 两种。

a. Trigger-based Watermarking

。基于触发器的水印类似于后门攻击。在输入阶段决定模型是否触发特殊行为。应用场景包括生成特定数据集和保护版权。

部分学者基于代码开展工作,使用word-level或sentence-level的代码修改来触发触发器,生成相应代码。进一步,使用语义不变的代码变形作为触发器。这种方式被称为“trigger-based”,能使地域语料的影响最小化。

Hufu水印则把触发器定位为某种输入形式(而非输入本身),利用GPT模型的渗透等价性质,让模型意识到特殊的渗透模式,一旦发现,即认定为水印。这里涉及一个概念——排列不变性(Permutation Invariance),即函数的输出与输入元素的顺序无关。找到合适的度量函数,就能完成这种性质的刻画。

b. Global Watermarking

。基于触发的方法能处理的情况比较有限。全局水印会在所有LLM生成的语料中打水印,使内容可以被追踪。部分学者探索水印是否能被习得,提出了两种方式:sampling-based watermark distillation 和 logit-based watermark distillation。本质上,这是将跨时间推断的水印,转化为LLM参数的一部分,从而增强模型原本学习到的内容。实验表明,该方法拥有接近完美的识别度,对干扰的抵抗力也很强。不过,如果输入数据分布不清晰,可能会不稳定。

03 Watermark Evaluation & Attacks

1. 识别度 Detectability

a. Zero-bit Watermark

。使用假设检验的方式,计算z-score或p-value,并设定阈值。核心逻辑是,比较“含有水印”事件的概率与阈值。通常,自然语词和含水印语词的比例是恒定的,这也就是所谓的“锻造”句子或模型生成的句子。计算F1值和FPR(即人类语词被误判为水印语词的概率)尤为重要。

b. Multi-bit Watermark

。不仅能识别水印,还能获取信息。水印文本本身承载信息,包括比特错误率和比特准确率。水印消息可以用一连串比特表示,比特容量是衡量信息承载量的关键指标,越大越好。

从基本通信模型、边信息水印模型及基于博弈理论的信道容量分析可以看出,数字水印系统的信道容量与水印噪声比(WNR)密切相关,总体趋势是随WNR增大而单调上升。这种系统的容量优于基本水印模型,水印编码会考虑原始载体信号,利用量化实现结构化的次优编码。

2. 对文本质量的影响 Quality Impact of Watermarked Text

基于句子的水印,句子越长,水印越容易被识别。因此,藏住水印算法的最大句子长度是一个关键指标,也就是水印大小。句子最小长度是多少?以KGW算法为例,要求最短识别长度下保证FPR=0.2%。目前,这方面的工作仍有待深入。此外,算法还需兼顾对文本质量影响最小化和高鲁棒性。

3. 输出质量评估 Output Performance Evaluation for Watermarked LLM

4. 输出多样性评估 Output Diversity Evaluation for Watermarked LLM

这是评价算法好坏的核心标准之一。

5. 非目标攻击 Untargeted Watermark Attacks

有些算法会无意间篡改原文信息,但建模者并未察觉。凡是无法识别攻击模型意图的“识别”与“篡改”,统称为非目标攻击。

6. 目标攻击 Targeted Watermark Attacks

建模者会清晰、有针对性地对文本中的特定语词进行识别和改动。

7. 标准及工具 Benchmarks and Tools

04 文本水印应用 Application

注意,目前最常用的还是 format-based model。

1. 版权保护 Copyright Protection

这方面的做法很丰富。比如在网页标签属性(word spacing, text color, font)中嵌入水印;或者在网页内容中插入不可见的数码水印,通过编码规则插入HTML。此外,有时还会在文件中插入水印,利用书签等特征。

版权保护又可分为数据集版权和算法版权。具体的攻击做法,主要聚焦于“触发动作”和“后门攻击”(通常针对API)。

2. AI生成文本检测 AI Generated Text Detection

这部分工作,核心目的是防止数据被恶意抽取。

05 未来挑战 Challenge and Future Direction

1. 算法设计中的制衡 Challenging Trade-offs in Text Watermarking Algorithm Design

2. 高挑战场景 Challenging Scenarios for Text Watermarking Algorithms

3. 零负担应用挑战 Challenges in Applying Watermark with No Extra Burden