vLLM 引入无失真 Gumbel-Max 水印技术

TL;DR

vLLM 现在支持使用 Gumbel-max 算法的无失真水印技术,该算法将基于密钥的信号嵌入到令牌选择中,实现可靠的来源检测,同时对吞吐量和输出质量的影响几乎可以忽略不计。

为什么文本来源验证很重要

确定生成文本的来源对于建立信任和问责制至关重要。传统的图像或音频水印方法无法直接应用于文本,因为文本是离散的。相反,vLLM 直接影响生成过程本身,在不改变预期输出分布的情况下创建可检测的模式。

实用文本水印的核心要求

  • 无失真:水印不应使模型偏向于特定词汇、风格或解决方案。
  • 鲁棒性:信号应能经受住常见的编辑、截断以及由其他 LLM 重述的影响。
  • 高效性:必须在高吞吐量服务中保持极低的额外延迟和内存开销。
  • 最小检测依赖:检测应仅依赖于文本、分词器和密钥,无需额外元数据。

这些标准往往相互冲突:更强、更易检测的信号可能增加失真,而避免额外信息则限制了算法选择。

利用 Gumbel-max 技巧中的随机性

在每一步,语言模型从类别分布中采样一个令牌。Gumbel-max 技巧向 logits 添加 Gumbel 分布的噪声,并选择 argmax,从而精确重现原始分布,同时允许噪声以确定性方式生成。

基于密钥的伪随机噪声

vLLM 将独立的均匀采样 $u$ 替换为一个伪随机函数(PRF),该函数接受三个输入:

  • 一个秘密水印密钥 $k$,
  • 最近的水印上下文(默认:最后 4 个令牌),以及
  • 候选令牌 ID。

PRF 输出一个均匀值,并将其转换为 Gumbel 噪声。由于相同的上下文和密钥会出现在最终文本中,检测器可以重建生成过程中使用的精确噪声值。

无失真保证

在密钥的期望下,选择任意令牌 $t$ 的概率仍精确等于其原始概率 $p_t$。在 Qwen3.5‑27B 上的实证质量基准测试显示差异微乎其微(例如,GSM8K 93.0 % 对比 94.2 %)。

检测流程

检测过程逆转生成过程:

  1. 对未知文本进行分词。
  2. 对每个令牌,使用前序上下文和密钥重新计算基于密钥的 PRF 值。
  3. 将每个值转换为令牌级得分;得分越高,表示与水印越一致。
  4. 对得分求和。在零假设(无水印)下,总和服从伽马分布 $\Gamma(k,\theta)$,其中形状参数 $k$ 等于得分令牌数,尺度参数 $\theta = 1$。
  5. 计算单侧 p 值。p 值较低(例如,<0.01)表明存在水印。

多密钥或跨分词器测试需要多重检验校正,这会提高检测阈值并降低检测能力。

实证检测能力

  • 创意写作在约 100 个令牌后达到接近 100 % 的真正例率(TPR)。
  • 代码生成基准(MBPP)在单密钥测试中,400 个令牌时达到约 69 % TPR,随着候选密钥增多而下降。

集成到 vLLM 的采样流水线

水印逻辑嵌入 Model Runner v2 的 GPU 采样器中:

  • GPUWatermarkSampler 将任务委派给 Watermarker 实现。
  • 一个融合的 GPU 内核将 PRF 生成、Gumbel 变换和 argmax 约简结合在一起,避免生成完整的 $[batch, vocab]$ 噪声张量。
  • Philox 每次调用生成四个 PRF 值,一次处理四个连续的令牌 ID。
  • 每行的掩码支持混合水印与非水印请求的批处理。

吞吐量影响

在单个 H100 上(Qwen3.5‑27B,MTP‑3),水印与非水印的吞吐量曲线完全重叠。平均匹配吞吐量变化范围为 –1.1 % 到 +2.0 %,无统计显著的延迟。

处理推测性解码

推测性解码从快速模型中提出草稿令牌,并根据目标分布进行接受。对两个分布应用相同的水印会损害接受率。vLLM 通过 双密钥 方案解决此问题:

  • 密钥 $k_d$ 用于草稿令牌。
  • 密钥 $k_t$ 用于目标残差和奖励令牌。 最终文本可能包含由任一密钥水印的令牌,因此检测需结合两个密钥的得分。这缓解了接受率损失,但稀释了整体检测信号。

保持输出多样性

固定密钥可能导致重复上下文生成相同的 PRF 值,从而引发重复循环(例如,"1 + 1 + 1 + …")。为防止此问题,vLLM 实现了 生成时上下文去重:

  • 当上下文重复时,该步骤跳过水印。
  • 这恢复了单序列无失真特性,并在 Qwen3.5‑27B 上引入的开销小于 0.19 %。 双密钥路由也引入了随机性以减少重复,即使在无推测性解码时也可使用随机密钥选择。

开始使用

在启动 vLLM 服务器时启用 Gumbel-max 水印:

vllm serve mistralai/Mistral-7B-Instruct-v0.3 \
  --watermark-config '{"algorithm":"gumbel","key":42}'

仓库中提供了一个最小化的 HTTP 检测服务器。完整配置详情请参阅官方文档。

结论

vLLM 的新水印功能通过基于密钥的 Gumbel-max 过程,直接将来源信号嵌入到令牌采样中。它在期望上保证无失真,引入可忽略的延迟,通过双密钥设计支持推测性解码,并包含安全机制(如上下文去重)以维持输出多样性。

参考文献

  1. Ingemar J. Cox 等,《数字水印与隐写术》,第 2 版,Morgan Kaufmann,2008。
  2. S. Dathathri 等,“可扩展的水印技术用于识别大型语言模型输出”,《自然》634,2024。
  3. J. Kirchenbauer 等,“大型语言模型的水印”,《第 40 届国际机器学习会议论文集》,2023。
  4. S. Aaronson & H. Kirchner,“GPT 输出的水印”,2023。
  5. T. Sander 等,“TextSeal:一种用于来源与蒸馏保护的局部 LLM 水印”,arXiv:2605.12456,2026。

Sources