テキストウォーターマーク(テキストウォーターマーク)
LLMのデコード段階でトークン選択確率に統計的バイアスを加え、生成テキストに不可視の透かし信号を埋め込む手法。人間には自然な文章に見えるが、秘密鍵を用いた統計検定でAI生成を判定できる。
テキストウォーターマークとは
テキストウォーターマークとは、LLM(大規模言語モデル)がテキストを生成する際に、トークンの選択確率分布に微小な偏り(バイアス)を加えることで、出力テキストに統計的な「透かし」を埋め込む技術である。画像や音声のデジタルウォーターマークと同様の概念をテキストに応用したもので、2022年にScott Aaronsonが概念を提唱し、2023年にKirchenbauerらが実用的な Green/Red List アルゴリズムを発表して研究が本格化した。
テキストウォーターマークの最大の特徴は、テキストの意味や自然さを維持しながら、専用の検出器を使えば統計的に有意な信号を検出できる点にある。
埋め込みアルゴリズムの詳細
ハッシュベースのトークン分割
テキストウォーターマークの標準的な埋め込みプロセスは以下の手順で進行する。
- コンテキストハッシュ計算: 直前の k トークン(コンテキストウィンドウ)と秘密鍵
skを入力として暗号学的ハッシュ関数を適用 - 疑似乱数生成: ハッシュ値をシードとして PRNG(疑似乱数生成器)を初期化
- 語彙分割: PRNGの出力で語彙 V を2群に分割(グリーンリスト G、レッドリスト R)
- ロジット修正: グリーントークンの logit 値に定数 δ を加算
- サンプリング: 修正後の確率分布からトークンをサンプリング
コンテキストウィンドウサイズ k の選択は重要なハイパーパラメータである。
| k の値 | 特徴 | 検出精度 | 頑健性 |
|---|---|---|---|
| k = 0 | Unigram方式、コンテキスト非依存 | 中 | 高 |
| k = 1 | Bigram方式、直前1トークン参照 | 高 | 中 |
| k = 2〜4 | N-gram方式、標準的な設定 | 最高 | 中〜低 |
| k = ∞ | 全コンテキスト参照 | 最高 | 低 |
バイアス強度 δ の影響
δ はウォーターマーク強度を制御する中心的パラメータである。
| δ の値 | 検出に必要な最小トークン数 | perplexity 増加率 | 実用性 |
|---|---|---|---|
| 0.5 | 約 200 トークン | < 0.1% | 検出困難 |
| 1.0 | 約 100 トークン | 0.2〜0.5% | 実用下限 |
| 1.5 | 約 50 トークン | 0.5〜1.0% | 推奨下限 |
| 2.0 | 約 25 トークン | 1.0〜2.0% | 標準設定 |
| 3.0 | 約 15 トークン | 3.0〜5.0% | 品質低下あり |
| 5.0 | 約 10 トークン | > 10% | 非推奨 |
主要な実装方式の比較
Soft Watermark vs Hard Watermark
Kirchenbauer et al. 2023 では2種類の方式が提案された。
Soft Watermark: グリーントークンの logit に δ を加算する方式。エントロピーの高い(候補が多い)位置で効果が大きく、低エントロピー位置(次のトークンがほぼ確定的な場合)では影響が小さい。
Hard Watermark: レッドトークンを完全にブロック(logit を -∞ に設定)する方式。検出精度は非常に高いが、テキスト品質への影響が大きく、特に専門用語や固有名詞を含むドメインでは不適切な出力が生成される可能性がある。
Multi-bit Watermark
従来の方式は「ウォーターマーク有り/無し」の 1bit 情報しか埋め込めないが、Multi-bit 方式では複数ビットのペイロード(例: モデルID、タイムスタンプ、ユーザーID)を埋め込むことが可能。Fernandez et al. 2023 の Three Bricks 方式や Wang et al. 2024 の MultiMarkLLM が代表例である。
| 方式 | ペイロード | 品質影響 | 用途 |
|---|---|---|---|
| 1-bit (標準) | 有/無のみ | 最小 | AI検出 |
| 8-bit | モデルID等 | 低〜中 | 出所追跡 |
| 32-bit | ユーザーID+時刻 | 中 | 個人特定 |
| 256-bit | フルメタデータ | 高 | フォレンジック |
品質評価指標
テキストウォーターマークの品質を評価する際は、以下の指標を総合的に判断する。
- Perplexity: ウォーターマーク有無でのperplexity差分。Δppl < 1.0 が実用基準
- MAUVE スコア: 生成テキスト分布と人間テキスト分布の類似度。0.95以上が目標
- 人間評価: A/Bテストでウォーターマーク有無を区別できない割合。50%±5%が理想
- 下流タスク精度: 要約・翻訳等のタスクでのBLEU/ROUGEスコア低下。< 1%が目標
よくある質問(FAQ)
Q1: テキストウォーターマークは短い文章にも効くのか? A: δ = 2.0 の標準設定で最低 25 トークン(日本語で約 50〜80 文字)が必要。ツイート程度の短文では統計的有意性が不足し、検出精度が大幅に低下する。δ を上げれば短文でも検出可能だが品質が劣化する。
Q2: ChatGPTやClaudeの出力にウォーターマークは入っているのか? A: 2026年時点で公式にウォーターマーク搭載を公表しているのは Google の Gemini(SynthID-Text)のみ。OpenAI は2023年に内部開発を報告したが「ユーザー体験への影響」を理由に公開を延期。Anthropic は公式な言及なし。
Q3: プログラミングコードにもウォーターマークは埋め込めるのか? A: 技術的には可能だが、コードは自然言語よりも構文制約が強く、トークン選択の自由度が低いため、検出に必要なトークン数が増加する。変数名やコメントにバイアスをかける研究(CodeWatermark, Yang et al. 2024)がある。
まとめ
- テキストウォーターマークはLLMのデコード時にトークン選択バイアスを加える透かし技術
- δ = 1.5〜2.0、γ = 0.5、k = 1〜2 が実用的なハイパーパラメータ設定
- 25トークン以上の長さがあれば z > 4.0 での高精度検出が可能
- SynthID-Text が2026年時点で最も実用化が進んだ実装
- Multi-bit 方式の発展により、AI検出だけでなく出所追跡も実現可能に