Transformers v4.46.0 における SynthID Text の統合

Google DeepMind と Hugging Face は、Transformers v4.46.0 に SynthID Text を導入しました。この技術は、生成時にロジットプロセッサを使用して AI 生成テキストに透かしを付与し、訓練済み分類器でその透かしを検出できるようにします。

SynthID Text の仕組み

SynthID Text は、特定の大規模言語モデル(LLM)によって生成されたかどうかを判別できるよう、AI 生成テキストに透かしをエンコードします。モデルの根本的な機能を変更したり、生成品質を低下させたりすることはありません。

このシステムは、g‑function と呼ばれる疑似乱数関数を利用して生成プロセスを拡張します。これにより、人間の読者には知覚できない透かしが作られ、訓練済みモデルによって検出可能になります。実装は model.generate() API を介して任意の LLM と互換性のある生成ユーティリティとして提供され、モデル自体への変更は不要です。

透かしの設定

透かしはデータクラス SynthIDTextWatermarkingConfig を通じて管理され、g‑function とトーナメントサンプリング時の適用方法をパラメータ化します。これらの設定は透かしの再現性を可能にするため、機密かつ安全に保管する必要があります。

各透かし設定には次の 2 つの主要パラメータが必要です。

  • keys: モデルの語彙全体に対して g‑function スコアを計算するために使用される整数のリストです。検出可能性と生成品質のバランスを保つため、20〜30 個の一意でランダムに生成された数値を推奨します。
  • ngram_len: ロバスト性と検出可能性のバランスを取るパラメータです。値が大きいほど検出しやすくなりますが、テキストの変更に対して脆くなります。デフォルトは 5、最小は 2 としてください。

透かしの適用

透かしを適用するには、model.generate() 呼び出しの watermarking_config パラメータに SynthIDTextWatermarkingConfig オブジェクトを渡します。

実装例:

from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    SynthIDTextWatermarkingConfig,
)

# 標準的なモデルとトークナイザーの初期化
tokenizer = AutoTokenizer.from_pretrained('repo/id')
model = AutoModelForCausalLM.from_pretrained('repo/id')

# SynthID Text の設定
watermarking_config = SynthIDTextWatermarkingConfig(
    keys=[654, 400, 836, 123, 340, 443, 597, 160, 57, ...],
    ngram_len=5,
)

# 透かし付き生成
tokenized_prompts = tokenizer(["your prompts here"])
output_sequences = model.generate(
    **tokenized_prompts,
    watermarking_config=watermarking_config,
    do_sample=True,
)
watermarked_text = tokenizer.batch_decode(output_sequences)

透かし付きテキストの検出

透かしは人間には知覚できないよう設計されているため、検出には訓練済み分類器が必要です。各透かし設定には、その特定のマークを認識できる検出器が対応していなければなりません。

推奨される検出器の訓練プロセスは次の通りです。

  1. 透かし設定を定義する。
  2. 透かし付きテキストと非透かしテキストをそれぞれ少なくとも 10,000 件ずつ収集し、訓練セットとテストセットに分割する。
  3. モデルを用いて非透かし出力を生成する。
  4. 同じモデルで透かし付き出力を生成する。
  5. 透かし検出分類器を訓練する。
  6. 設定と検出器を組み合わせて本番環境にデプロイする。

Transformers はこの目的のために BayesianDetectorModel クラスを提供しています。同一トークナイザーを共有するモデル間では、すべての参加モデルの例が含まれる訓練セットがあれば、透かし設定と検出器を共有できます。

制限事項とロバスト性

SynthID Text の透かしは、軽度の言い換え、数語の変更、テキストの一部切り取りに対してはロバストです。ただし、以下の制限があります。

  • 事実回答: 事実情報は正確性を損なわずに生成を拡張できる余地が少ないため、透かしの効果が低下します。
  • 大幅な編集: AI 生成テキストが大幅に書き換えられたり、別言語に翻訳されたりすると、検出器の信頼度スコアは大きく低下します。
  • 敵対的利用: 本システムは悪意ある攻撃者の行動を完全に防止するものではありませんが、AI 生成コンテンツを悪用する難易度を上げます。

Sources