2026-09-15
马里兰团队在采样时给随机绿名单 token 的 logit 加偏置 δ,检测不需要模型;OPT-1.3B 生成 200 token、δ=2 时真阳性率 99.4%,观察到的假阳性为 0。
大模型已经能写新闻、写代码、写作业。文本一旦流出,平台和学校很难判断它是不是机器写的。事后分类器跟着模型能力走:GPT-2 上能用的检测,到 GPT-3 就掉队,而且容易被对抗改写打穿。
另一条路是在生成时把信号埋进采样过程。水印要对人不可见,对算法可检,还不能依赖模型参数或 API。低熵文本是硬骨头:「Barack」后面几乎只能接「Obama」,改词就会把句子写坏。
马里兰大学 Kirchenbauer、Geiping 等人给词表做一次伪随机切分。用上一个 token 的哈希当种子,把词表分成绿名单 G 和红名单 R。硬规则直接禁止红名单,分析简单,低熵位置会卡死。
软规则只给绿名单的 logit 加常数 δ,再做 softmax 采样。高熵位置有很多差不多好的词,δ 会把采样推到绿名单;低熵位置最优词的 logit 远高于其他候选,加不加 δ 几乎不影响下一词。检测端不需要模型:复现同一套哈希,数绿名单 token 个数,做单比例 z 检验。绿名单占比为 γ、长度为 T 时,z = (|s|G − γT) / sqrt(Tγ(1−γ))。论文取 z>4,对应单侧假阳性约 3×10^{-5}。
软水印的灵敏度跟文本熵绑在一起。论文用 spike entropy 度量下一词分布是不是钉在少数几个 token 上,并给出绿名单计数的期望下界。取 γ=0.5、δ=ln 2 时,期望绿名单数至少是 (2/3)T S。
实验用 OPT-1.3B,prompt 来自 C4 的 RealNewsLike 子集,每条生成约 200 个 token,每组大约 500 条。质量用更大的 OPT-2.7B 当 oracle 算 perplexity。
| 采样 | δ | γ | TPR (z=4) | FNR |
| 多项式 | 1.0 | 0.50 | 0.767 | 0.233 |
| 多项式 | 2.0 | 0.50 | 0.984 | 0.016 |
| 多项式 | 2.0 | 0.25 | 0.994 | 0.006 |
| 多项式 | 5.0 | 0.25 | 1.000 | 0.000 |
| 8-beam | 2.0 | 0.25 | 0.994 | 0.006 |
| 8-beam | 5.0 | 0.25 | 1.000 | 0.000 |
列出的设置里,观察到的假阳性最多一条,表上 FPR 记为 0.0。γ=0.1 的小绿名单在 z-score 与 PPL 的帕累托前沿上更好。8-beam 几乎把曲线拉成竖线:水印变强,PPL 几乎不动。γ=0.25、δ=2 的 8-beam 下,平均 z-score 超过 5 只需要约 35 个 token。
用 T5-Large 做 span 替换攻击:替换预算 ε=0.1 时 AUC 从 0.998 掉到 0.988;ε=0.3 掉到 0.954,攻击后 PPL 平均升高约 15 点,大约是原来的 3 倍。想洗掉水印,文本质量会先崩。
失败样本几乎都是低熵复读。模型在背训练集里的人类句子,水印加不进去。
这是后来 LLM 文本水印的一条主线:不改权重、开源检测、p 值可解释。检测只依赖 γ 和哈希函数,不依赖 δ。同一套检测器可以给散文和代码配不同的强度,也可以只对可疑用户打开水印。
对平台审核、作业查重、训练语料去污染,这条路径比事后分类器更可部署。前提是模型提供方愿意在采样器里加这一步。
低熵和记忆化文本检不出,代码、公式、模板回复会是盲区。实验停在 OPT-1.3B 的新闻续写,没有指令模型和多轮对话。攻击评估主要是随机位置的 T5 替换;知道哈希密钥的对手可以定向翻红名单。作者自己算过:1000 个 token 里最多改 200 个,z 仍约 6.3。密钥一旦泄露,对抗改写会容易得多。
公开水印如果只哈希前一个 token,同义词替换可能连带打乱下一个位置的绿名单。流式检测、以及水印片段嵌在大段人类文本里怎么测,论文明确留作未解。