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 %)。
檢測流程
檢測過程反向執行生成流程:
- 對未知文本進行分詞。
- 對每個詞元,使用前序上下文與秘密金鑰重新計算金鑰化 PRF 值。
- 將每個值轉換為詞元級分數;分數越高,表示與水印越一致。
- 將分數求和。在零假設(無水印)下,總和服從 Gamma 分佈 $\Gamma(k,\theta)$,其中形狀參數 $k$ 等於得分詞元數,尺度參數 $\theta = 1$。
- 計算單側 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 過程,直接將來源訊號嵌入詞元抽樣中。它在期望上保證無失真,引入可忽略的延遲,透過雙金鑰設計支援預測解碼,並包含安全機制(如上下文去重)以維持輸出多樣性。
參考資料
- Ingemar J. Cox 等,Digital Watermarking and Steganography,2nd ed.,Morgan Kaufmann,2008。
- S. Dathathri 等,「Scalable watermarking for identifying large language model outputs,」Nature 634,2024。
- J. Kirchenbauer 等,「A Watermark for Large Language Models,」Proceedings of the 40th International Conference on Machine Learning,2023。
- S. Aaronson & H. Kirchner,「Watermarking GPT outputs,」2023。
- T. Sander 等,「TextSeal: A Localized LLM Watermark for Provenance & Distillation Protection,」arXiv:2605.12456,2026。
Sources
- OriginalWatermarking in vLLM