Transformers v4.46.0 中的 SynthID Text 整合

Google DeepMind 與 Hugging Face 已在 Transformers v4.46.0 中推出 SynthID Text。此技術允許在生成過程中使用 logits 處理器為 AI 生成的文字加上水印,並透過訓練好的分類器進行後續偵測。

SynthID Text 的運作方式

SynthID Text 會在 AI 生成的文字中編碼水印,以辨識內容是否由特定大型語言模型(LLM)產生,且不會改變模型的基礎功能或降低生成品質。系統使用一種稱為 g-function 的偽隨機函式來增強生成過程。此方式產生的水印對人類讀者而言是不可察覺的,但可被訓練好的模型偵測。此實作以生成工具的形式提供,能透過 model.generate() API 與任何 LLM 相容,且不需對模型本身進行任何修改。

水印設定

水印透過資料類別 (SynthIDTextWatermarkingConfig) 進行管理,該類別參數化 g-function 以及其在 tournament sampling 中的應用。由於這些設定可用於重現水印,必須安全且私密地保存。

每個水印設定皆需要兩個主要參數:

  • keys:用於計算模型詞彙表上 g-function 分數的整數列表。建議使用 20 至 30 個唯一且隨機產生的數字,以維持偵測能力與生成品質之間的平衡。
  • ngram_len:平衡韌性與偵測性的參數。較高的數值會提升偵測率,但使水印對變更更為脆弱。建議的預設值為 5,最低需求為 2。

套用水印

套用水印需要在 model.generate() 呼叫中,將 SynthIDTextWatermarkingConfig 物件加入 watermarking_config 參數。

範例實作:

from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    SynthIDTextWatermarkingConfig,
)

# Standard model and tokenizer initialization
tokenizer = AutoTokenizer.from_pretrained('repo/id')
model = AutoModelForCausalLM.from_pretrained('repo/id')

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

# Generation with watermarking
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 類別以供此用途。共享相同 tokenizer 的模型可以共用水印設定與偵測器,前提是偵測器的訓練集包含所有參與模型的範例。

限制與韌性

SynthID Text 水印對輕度改寫、少量詞彙變更或裁剪文字段落具有韌性。然而,仍存在以下限制:

  • 事實性回應:對於事實性內容,水印的效果較差,因為在不影響準確性的前提下,增強生成的機會較少。
  • 大量編輯:若 AI 生成的文字被徹底改寫或翻譯成其他語言,偵測器的信心分數會顯著下降。
  • 對抗性使用:系統並非設計來阻止有動機的對手造成傷害,但它提升了利用 AI 生成內容進行惡意行為的難度。

SUMMARY: Google DeepMind 與 Hugging Face 已將 SynthID Text 整合至 Transformers v4.46.0,提供一種在 AI 生成文字上加上不可察覺水印,並透過訓練好的分類器進行偵測的方法。

TITLE: Transformers v4.46.0 中的 SynthID Text 整合

Sources