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 分佈 $\Gamma(k,\theta)$,其中形狀參數 $k$ 等於得分詞元數,尺度參數 $\theta = 1$。
  5. 計算單側 p 值。低 p 值(例如 <0.01)表示水印存在。

多金鑰或多重分詞器測試需進行多重檢驗校正,這會提高檢測門檻並降低檢測力。

實證檢測效能

  • 創意寫作在約 100 個詞元後達到近 100 % 的真正率(TPR)。
  • 程式碼生成基準(MBPP)在單一金鑰測試中,400 個詞元時 TPR 約為 69 %,隨著候選金鑰數量增加而下降。

整合至 vLLM 的抽樣流程

水印邏輯嵌入 Model Runner v2 的 GPU 抽樣器中:

  • GPUWatermarkSampler 將任務委派給 Watermarker 實作。
  • 融合的 GPU 核函數結合 PRF 生成、Gumbel 轉換與 argmax 約簡,避免產生完整的 $[batch, vocab]$ 雜訊張量。
  • Philox 每次呼叫產生四個 PRF 值,一次處理四個連續的詞元 ID。
  • 每列的遮罩允許混合水印與非水印請求的批次。

吞吐量影響

在單一 H100(Qwen3.5‑27B,MTP‑3)上,不同批次大小(1–256)的水印與非水印吞吐量曲線重疊。平均匹配吞吐量變化範圍為 –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 等,Digital Watermarking and Steganography,2nd ed.,Morgan Kaufmann,2008。
  2. S. Dathathri 等,「Scalable watermarking for identifying large language model outputs,」Nature 634,2024。
  3. J. Kirchenbauer 等,「A Watermark for Large Language Models,」Proceedings of the 40th International Conference on Machine Learning,2023。
  4. S. Aaronson & H. Kirchner,「Watermarking GPT outputs,」2023。
  5. T. Sander 等,「TextSeal: A Localized LLM Watermark for Provenance & Distillation Protection,」arXiv:2605.12456,2026。

Sources