vLLM、歪みのないGumbel-Max透かしを導入

TL;DR

vLLMは、秘密鍵由来の信号をトークン選択に埋め込むGumbel-maxアルゴリズムを使用した歪みのない透かしをサポートするようになりました。これにより、スループットや出力品質に実質的に影響を与えることなく、信頼性の高い出所検出が可能になります。

テキストの出所が重要な理由

生成テキストの出所を確立することは、信頼と説明責任のために不可欠です。画像や音声に対する従来の透かし手法は、テキストが離散的であるため直接適用できません。その代わりに、vLLMは生成プロセス自体に影響を与え、期待される出力分布を変更せずに検出可能なパターンを作り出します。

実用的なテキスト透かしのための核となる要件

  • 非歪み: 透かしは、モデルを特定の単語、スタイル、または解決策に偏らせてはなりません。
  • 堅牢性: 信号は、一般的な編集、切り詰め、他のLLMによる言い換えを生き残る必要があります。
  • 速度: 高スループットのサービングには、最小限の追加レイテンシとメモリオーバーヘッドが必要です。
  • 最小限の検出依存関係: 検出は、テキスト、トークナイザー、秘密鍵のみに依存し、追加のメタデータを必要としないようにする必要があります。

これらの基準はしばしば相反します。より強力で検出しやすい信号は歪みを増加させる可能性があり、追加情報を避けることはアルゴリズムの選択肢を制限します。

Gumbel-Maxトリックによるランダム性の活用

各ステップで、言語モデルはカテゴリ分布からトークンをサンプリングします。Gumbel-maxトリックは、ロジットにGumbel分布のノイズを加え、argmaxを選択します。これにより、ノイズを決定的に生成しながら、元の分布を正確に再現します。

鍵付き擬似ランダムノイズ

vLLMは、独立した一様分布のサンプル (u) を、3つの入力を持つ擬似ランダム関数(PRF)に置き換えます:

  • 秘密の透かし鍵 (k)、
  • 最近の透かしコンテキスト(デフォルト:最後の4トークン)、
  • 候補トークンID。

PRFは、Gumbelノイズに変換される一様値を出力します。同じコンテキストと鍵が最終テキストに現れるため、検出器は生成中に使用された正確なノイズ値を再構築できます。

非歪みの保証

鍵に関する期待値として、任意のトークン (t) を選択する確率は、元の確率 (p_t) と正確に一致します。経験的には、Qwen3.5-27Bでの品質ベンチマークは無視できる差を示しています(例:GSM8K 93.0% vs 94.2%)。

検出手順

検出は生成プロセスを逆にたどります:

  1. 未知のテキストをトークン化します。
  2. 各トークンについて、前のコンテキストと秘密鍵を使用して鍵付きPRF値を再計算します。
  3. 各値をトークンレベルのスコアに変換します。スコアが大きいほど、透かしとの整合性が高いことを示します。
  4. スコアを合計します。帰無仮説(透かしなし)の下では、合計は形状 (k) がスコアリングされたトークン数に等しく、尺度 (\theta = 1) のガンマ分布 (\Gamma(k,\theta)) に従います。
  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は呼び出しごとに4つのPRF値を生成し、4つの連続するトークン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 et al., Digital Watermarking and Steganography, 2nd ed., Morgan Kaufmann, 2008.
  2. S. Dathathri et al., “Scalable watermarking for identifying large language model outputs,” Nature 634, 2024.
  3. J. Kirchenbauer et al., “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 et al., “TextSeal: A Localized LLM Watermark for Provenance & Distillation Protection,” arXiv:2605.12456, 2026.

Sources