生成 AI(GenAI)は、これまでにない規模で、非常に多様なコンテンツを生成できます。こうした使用のほとんどは正当な目的で行われていますが、誤った情報や誤った帰属の問題につながる可能性があるという懸念があります。ウォーターマークは、こうした潜在的な影響を軽減する手法の一つです。人間には認識できない透かしを AI 生成のコンテンツに適用できます。検出モデルは任意のコンテンツにスコアを付け、透かしが入れられている可能性を示します。
SynthID は、Google DeepMind の技術で、AI によって生成された画像、音声、テキスト、動画に電子透かしを直接埋め込むことで、AI によって生成されたコンテンツに透かしを入れ、識別します。SynthID Text は、デベロッパーがテキスト生成用の透かしを利用できるようにするためにオープンソース化されています。この手法の技術的な詳細については、Nature の論文をご覧ください。
SynthID Text の本番環境向け実装は Hugging Face Transformers v4.46.0 以降で利用できます。これは、公式の SynthID Text Space で試すことができます。この手法を他のフレームワークに導入しようとしているオープンソースのメンテナンス担当者やコントリビューターに役立つ可能性のあるリファレンス実装も GitHub で公開されています。
ウォーターマークの適用
実用的には、SynthID Text は、Top-K と Top-P の後にモデルの生成パイプラインに適用されるログリス プロセッサです。疑似乱数 g 関数を使用してモデルのログリスを拡張し、テキストの品質に大きな影響を与えることなく、テキストがモデルによって生成されたかどうかを判断するのに役立つようにウォーターマーク情報をエンコードします。アルゴリズムの技術的な説明と、さまざまな構成値がパフォーマンスに与える影響の分析については、論文をご覧ください。
ウォーターマークは、g 関数と生成時の適用方法をパラメータ化するように構成されます。使用する各ウォーターマークの構成は、安全かつ非公開に保管する必要があります。そうしないと、ウォーターマークが他のユーザーによって簡単に複製される可能性があります。
すべてのウォーターマーク構成で、次の 2 つのパラメータを定義する必要があります。
keys
パラメータは、モデルの語彙全体で g 関数スコアの計算に使用される一意のランダム整数のリストです。このリストの長さによって、適用されるウォーターマークのレイヤ数が変わります。詳細については、論文の付録 C.1 をご覧ください。ngram_len
パラメータは、堅牢性と検出可能性のバランスを取るために使用されます。値が大きいほどウォーターマークは検出しやすくなりますが、変更に対する脆弱性が高くなります。デフォルト値として適切な長さは 5 です。
ウォーターマークは、パフォーマンスのニーズに基づいてさらに構成できます。
- サンプリング テーブルは、
sampling_table_size
とsampling_table_seed
の 2 つのプロパティで構成されます。サンプリング時に偏見のない安定した g 関数を確保するには、sampling_table_size
を\( 2^{16} \) 以上にする必要があります。ただし、サンプリング テーブルのサイズは、推論時に必要なメモリ量に影響します。sampling_table_seed
には任意の整数を使用できます。 context_history_size
の前のトークンで繰り返される n グラムには、検出しやすいように透かしを入れません。
モデルを使用して SynthID Text ウォーターマーク付きのテキストを生成するために、追加のトレーニングは必要ありません。必要なのは、モデルの .generate()
メソッドに渡され、SynthID Text ロギット プロセッサを有効にするウォーターマーク設定のみです。Transformers ライブラリでウォーターマークを適用する方法を示したコード例については、ブログ投稿と Space をご覧ください。
透かしの検出と検証
透かしの検出は確率的です。ベイズ検出機能は、Hugging Face Transformers と GitHub で提供されています。この検出機能は、ウォーターマークあり、ウォーターマークなし、不明の 3 つの検出状態を出力できます。動作は、2 つのしきい値を設定して、特定の誤検出率と誤判定率を達成することでカスタマイズできます。詳しくは、論文の付録 C.8 をご覧ください。
同じトークン化ツールを使用するモデルは、ウォーターマーク構成と検出機能を共有することもできます。これにより、検出機能のトレーニング セットに、ウォーターマークを共有するすべてのモデルのサンプルが含まれていれば、共通のウォーターマークを共有できます。
トレーニング済みの検出機能が作成されたら、ユーザーや一般の人々に公開するかどうか、公開する場合はどのように公開するかを選択できます。
- 完全に非公開オプションでは、検出機能をリリースしたり公開したりすることはありません。
- 半公開オプションでは、検出機能は公開されませんが、API を介して公開されます。
- [公開] オプションを選択すると、検出機能を公開して他のユーザーがダウンロードして使用できるようになります。
検出検証アプローチは、関連するインフラストラクチャとプロセスをサポートする能力に基づいて、ニーズに最適なものを選択する必要があります。
制限事項
SynthID テキスト ウォーターマークは、テキストの切り抜き、単語の変更、軽微な言い換えなどの変換に対して堅牢ですが、この方法には制限があります。
- 透かしの適用は、正確性を低下させることなく生成を増強する機会が少ないため、事実に基づく回答では効果が低くなります。
- AI 生成テキストを徹底的に書き換えたり、別の言語に翻訳したりすると、検出機能の信頼スコアが大幅に低下する可能性があります。
SynthID Text は、動機を持った敵対者が危害を及ぼすのを直接阻止するようには設計されていません。ただし、AI 生成コンテンツを悪意のある目的で使用しにくくなり、他のアプローチと組み合わせて、コンテンツ タイプとプラットフォーム全体でカバレッジを拡大できます。