SynthID:用於辨識 LLM 產生文字並加上浮水印

生成式人工智慧 (GenAI) 可產生更多樣化的內容,規模遠超乎以往的想像。雖然這類使用行為大多是為了合法目的,但仍有擔憂,認為這可能會導致錯誤資訊和錯誤歸屬問題。水印是減輕這些潛在影響的一種技巧。我們可以為 AI 生成的內容套用人類無法察覺的浮水印,偵測模型則可為任意內容評分,指出內容是否可能已加上浮水印。

SynthID 是 Google DeepMind 開發的技術 直接在內容中嵌入數位浮水印,藉此辨識 AI 生成的內容 AI 生成的圖像、音訊、文字或影片SynthID 文字已採用開放原始碼 ,讓開發人員能夠使用文字生成功能。你可以閱讀 參閱《自然》論文一文,瞭解有關整體 方法的說明。

如要實作實際工作環境等級的 SynthID 文字,請前往 Hugging Face Transformer 4.46.0+ 版,您可在 官方的 SynthID 文字空間。參考實作 以及 GitHub,對於開放原始碼或許有幫助 想將這項技術帶到其他機構的 架構。

浮水印應用

實際上,SynthID Text 是邏輯函式處理器,會在 Top-K 和 Top-P 後套用至模型的產生管道,藉由使用偽隨機 g 函式編碼水印資訊,以平衡產生品質與水印可偵測性的方式擴充模型的邏輯函式。如需完整的完整文件,請參閱文件 演算法的技術說明和差異 每個設定值都會對效能造成影響

浮水印設定g 函式及其在生成期間的套用方式。您使用的每個模型都應有專屬的浮水印設定,且應以安全且私密的方式儲存,否則其他人可能會輕易複製您的浮水印。

您必須在每個浮水印設定中定義兩個參數:

  • keys 參數是一份不重複的隨機整數清單,用於在模型的字彙表中計算 g 函式分數。這個清單的長度會決定要套用多少層浮水印。詳情請見 詳情請參閱文件中的附錄 C.1。
  • ngram_len 參數可用於平衡健全性和可偵測性;值越大,水印就越容易偵測,但也會變得更容易受到變更影響。將長度設為 5 是不錯的預設值。

您可以根據效能需求進一步設定浮水印:

  • 取樣表是由兩個屬性 sampling_table_sizesampling_table_seed 設定。您需要至少使用 sampling_table_size \( 2^{16} \) ,確保取樣時的 g 函式不會有偏誤且穩定。 但請注意,取樣資料表大小會影響 所需的記憶體容量您可以視需求使用任何整數做為 sampling_table_seed
  • context_history_size 之前符記中重複 n 公克 加上浮水印,可提升可偵測性。

您不需要額外訓練,即可使用模型產生帶有 SynthID 文字浮水印的文字,只需要將浮水印設定傳遞至模型的 .generate() 方法,即可啟用 SynthID 文字邏輯函式處理器。請參閱網誌文章Space 中的程式碼範例,瞭解如何在 Transformers 程式庫中套用浮水印。

浮水印偵測與驗證

浮水印偵測功能會以機率為準。Hugging Face TransformersGitHub 提供貝葉斯偵測器。這個偵測器可輸出三種可能的偵測狀態:有浮水印、沒有浮水印或不確定。您可以設定兩個閾值來自訂行為。請參閱「附錄 C.8」 文件

您可以調整門檻來達到特定的偽陽性和偽陽性 特定提示或文章長度為負值詳情請參閱論文的附錄 C.8。

訓練完成的偵測器完成後,您可以選擇是否要向使用者和大眾公開,以及公開的方式。

  • Full-private 選項不會釋出或公開 。
  • 「半私密」選項不會釋出偵測器,但會透過 API 公開偵測器。
  • public 選項會釋放偵測工具供他人下載及使用。

您和貴機構必須決定哪種偵測驗證方法 是您需求的最佳選擇,因為您能夠 基礎架構和程序

限制

SynthID 文字浮水印非常適合某些轉換,可以裁剪片段 或稍微改寫字詞等 。

  • 水印應用程式對事實回應的效果較低,因為在沒有降低準確度的情況下,擴增生成的機會較少。
  • 如果 AI 產生的文字經過徹底重寫或翻譯成其他語言,偵測器的可信度分數可能會大幅降低。

SynthID 文字的目的並非直接阻止有動機的對手 傷害。不過,這項功能可讓 AI 產生的內容不易被用於惡意用途,而且還能與其他方法搭配使用,進一步擴大涵蓋的內容類型和平台。