生成式人工智慧 (GenAI) 可產生更多樣化的內容,規模遠超乎以往的想像。雖然這類使用行為大多是為了合法目的,但仍有擔憂,認為這可能會導致錯誤資訊和錯誤歸屬問題。水印是減輕這些潛在影響的一種技巧。我們可以為 AI 生成的內容套用人眼難以察覺的浮水印,偵測模型則可為任意內容評分,指出內容是否已加上浮水印。
SynthID 是 Google DeepMind 的一項技術,可將數位浮水印直接嵌入 AI 生成的圖像、音訊、文字或影片中,藉此標記和辨識 AI 生成內容。我們已將 SynthID Text 開放原始碼,讓開發人員可以為文字生成功能加上浮水印。如要進一步瞭解此方法的技術說明,請參閱 Nature 上的論文。
Hugging Face Transformers v4.46.0 以上版本提供正式版的 SynthID Text 實作功能,您可以在官方 SynthID Text Space 中試用。您也可以在 GitHub 上找到參考實作項目,這對想將這項技術應用於其他架構的開放原始碼維護者和貢獻者來說,可能會很實用。
浮水印應用
實際上,SynthID Text 是一種邏輯值處理器,會在 Top-K 和 Top-P 之後套用至模型的產生管道,藉由使用偽隨機 g 函式編碼水印資訊,以便判斷文字是否由模型產生,且不會對文字品質造成太大影響。如要瞭解演算法的完整技術說明,以及不同設定值對成效的影響,請參閱這篇論文。
水印會設定參數化 g 函式,以及在產生期間如何套用該函式。您使用的每個浮水印設定都應儲存在安全且私密的環境中,否則其他人可能會輕易複製您的浮水印。
您必須在每個浮水印設定中定義兩個參數:
keys
參數是一份不重複的隨機整數清單,用於在模型的字彙表中計算 g 函式分數。這個清單的長度會決定要套用多少層浮水印。詳情請參閱論文中的附錄 C.1。ngram_len
參數可用於平衡健全性和可偵測性;值越大,水印就越容易偵測,但也會變得更容易受到變更影響。長度為 5 的預設值會是個不錯的選擇。
您可以根據效能需求進一步設定浮水印:
- 取樣表是由兩個屬性
sampling_table_size
和sampling_table_seed
設定。您應使用至少216 的sampling_table_size
,確保在取樣時能取得不偏頗且穩定的 g 函式,但請注意,取樣表的大小會影響推論時所需的記憶體量。您可以使用任何整數做為sampling_table_seed
。 context_history_size
前方符記中的重複 n-grams 不會加上浮水印,以便提升偵測能力。
使用模型產生帶有 SynthID 文字浮水印的文字時,不需要額外訓練,只需要將浮水印設定傳遞至模型的 .generate()
方法,即可啟用 SynthID 文字邏輯函式處理器。請參閱網誌文章和 Space 中的程式碼範例,瞭解如何在 Transformers 程式庫中套用浮水印。
浮水印偵測和驗證
浮水印偵測功能會以機率為準。Hugging Face Transformers 和 GitHub 提供貝葉斯偵測器。這個偵測器可輸出三種可能的偵測狀態:有浮水印、沒有浮水印或不確定。您可以設定兩個閾值來達成特定的誤判率和漏判率,自訂偵測器的行為。詳情請參閱論文中的附錄 C.8。
只要偵測器的訓練集包含共用浮水印的所有模型範例,使用相同分詞器的模型也可以共用浮水印設定和偵測器,進而共用相同的浮水印。
訓練完成的偵測器完成後,您可以選擇是否要向使用者和大眾公開,以及公開的方式。
- 完全私密選項不會以任何方式釋出或公開偵測器。
- 「semi-private」選項不會釋出偵測器,但會透過 API 公開偵測器。
- 選擇「公開」選項,即可發布偵測器,供其他人下載及使用。
您和貴機構必須根據支援相關基礎架構和程序的能力,決定最符合需求的偵測驗證方法。
限制
SynthID 文字浮水印可抵禦某些轉換作業,例如裁剪文字片段、修改幾個字詞或稍微改寫文字,但此方法仍有限制。
- 水印應用程式對事實回應的效果較低,因為在沒有降低準確度的情況下,擴增生成的機會較少。
- 如果 AI 產生的文字經過徹底重寫或翻譯成其他語言,偵測器的可信度分數可能會大幅降低。
SynthID Text 無法直接阻止網路攻擊者或駭客等不肖分子的惡意行為,不過,這項功能可讓 AI 生成內容不易被用於惡意用途,而且還能與其他方法搭配使用,在多種內容類型和平台上提供更完善的涵蓋率。