AI寫出的文字,事後能不能辨識為「AI寫的」?依文字特徵推測的AI偵測工具容易出現誤判,因此,在AI生成文字的階段就嵌入看不見的數位浮水印(watermark)的方法,正被研究並投入實際應用。這類嵌入LLM(大型語言模型)輸出中的浮水印,也稱為LLM浮水印(LLM watermarking)。其代表就是Google DeepMind的SynthID Text。本文依據官方文件和《自然》(Nature)論文,以截至2026年10月9日的資訊,整理SynthID Text的原理、對品質的影響、開發人員的使用方式、檢測方式,以及不擅長的情況。
關於包含圖片、影片、音訊在內的SynthID整體,請參閱「SynthID是什麼」。
SynthID Text是什麼
SynthID Text是一項在大型語言模型(LLM)生成的文字中嵌入數位浮水印,並於事後檢測出來的技術。在各種LLM浮水印方案中,它是已在實際服務中大規模使用、並以開源形式供所有人使用的代表性實作。它由Google DeepMind開發,2024年10月23日在科學期刊《自然》上以論文形式發表原理的同時開源發布。
它的特點是,並不在文字中插入符號或不可見字元,而是把浮水印留在AI選擇哪個詞這個選詞方式本身之中。光是閱讀無法與一般文字區分,Google也表示這不會影響文字品質。
論文發表時,Google曾說明Gemini的回應中也嵌入了SynthID Text浮水印。關於目前Gemini中的處理方式,截至2026年10月,尚未查到新的官方說明。
Google以外也有人使用。Anthropic在2026年8月說明,Claude生成文字中的浮水印「是以SynthID Text的方式為基礎」。
原理:在選詞中留下浮水印
LLM在生成文字時,會為下一個詞(精確來說是token)的每個候選分配機率,並從中選出一個,如此反覆進行。SynthID Text就是在這個「選擇」的環節上動手腳。
《自然》論文將這種方法稱為錦標賽取樣(tournament sampling)。簡單來說,流程如下。
- 依照LLM的機率,選出多個下一個詞的候選
- 讓候選之間進行淘汰賽。勝負由根據秘密金鑰和前面幾個詞計算出的分數(g函數)決定
- 經過幾輪勝出的候選,就成為實際輸出的詞
由於候選本來就來自LLM很可能選擇的詞,文字依然自然。另一方面,知道金鑰的人重新計算分數後,就會發現輸出的詞偏向高於平均的分數。這種偏向就是浮水印。
Google的開發人員文件將其說明為在Top-K、Top-P等一般候選篩選之後套用的「logits處理器」(logits processor)。此外,它也會對重複出現的語句不嵌入浮水印,以維持容易檢測的特性。
對品質與速度的影響
SynthID Text的一大特點,是已在實際服務中經過大規模驗證。《自然》論文以約2,000萬則Gemini回應為對象,比較了有嵌入浮水印和沒有嵌入浮水印的回應。
- 使用者好評比例的差異為0.01%,負評比例的差異為0.02%,幾乎看不出品質差異
在另外進行的速度測量中,加入浮水印所增加的生成時間僅約0.57%。
此外,不需要重新訓練LLM,只要改變生成文字的流程就能使用。檢測時也不需要原本的LLM。
開發人員的使用方式
SynthID Text已整合到Hugging Face的Transformers函式庫(4.46.0以上版本)中。它也在Google的Responsible GenAI Toolkit,以及GitHub的google-deepmind/synthid-text中公開。GitHub上的程式碼採用Apache 2.0授權,定位為用來重現論文的參考實作。官方建議在正式環境中使用Transformers的官方實作。
在Transformers中使用時,要建立浮水印設定(SynthIDTextWatermarkingConfig),並傳給生成文字的函式。主要設定項目如下。
- keys(必填):作為浮水印金鑰的隨機整數清單。一旦外洩,浮水印可能遭到偽造,因此須保密管理
- ngram_len(必填):計算分數時使用的前面詞數。數值越大越容易檢測,越小則越能抵抗改寫。官方建議預設值為5
- sampling_table_size:內部使用的表格大小。為避免偏差,建議為2的16次方(65536)以上
- sampling_table_seed:建立表格用的亂數種子。任意整數皆可
- context_history_size:為判斷重複而記錄的上下文量。預設為1024
具體的設定寫法,Transformers的官方文件中有提供範例程式碼。
檢測浮水印的方式
檢測浮水印需要與生成文字時相同的金鑰設定和相同的分詞器(tokenizer)。因此,只有嵌入浮水印的本人(或獲得金鑰分享的人)才能檢測。
官方實作提供三種檢測方式:使用分數平均值的方法、使用加權平均值的方法,以及經過訓練的貝氏偵測器。貝氏偵測器會以「有浮水印」「無浮水印」「無法判斷」三種結果回傳,並可用兩個門檻值調整判定的嚴格程度。
貝氏偵測器在使用前,需要用自己的模型和金鑰進行訓練,Hugging Face的說明文章指出至少需要1萬個範例。此外,根據Google的開發人員文件,偵測器的開放範圍有三種選擇:僅在內部使用、以API形式對外提供,或直接散布偵測器本身。
另外,目前並沒有說明表示,用自己的金鑰嵌入的浮水印可以透過Google的SynthID Detector等工具檢測。
不擅長的情況與限制
Google的開發人員文件和《自然》論文列出了以下限制。
- 回答事實的回應:對於答案幾乎只有一個的問題,改變選詞的空間很小,浮水印的效果會降低
- 大幅改寫:徹底改寫文字後,檢測的信賴度會大幅下降
- 翻譯:翻譯成其他語言後,檢測的信賴度會大幅下降
- 蓄意攻擊:防範試圖去除浮水印的惡意對象,不在其設計目標之內
- 開放模型:對於任何人都能執行的模型,很難強制嵌入浮水印
與AI文字偵測工具的差異
辨識AI所寫文字的方法,除了SynthID Text這類數位浮水印,還有依文字特徵推測AI痕跡的AI偵測工具。
- 數位浮水印:由生成方預先嵌入記號。有金鑰就能做出有根據的判定,但無法辨識沒有嵌入浮水印的AI文字
- AI偵測工具:任何AI寫的文字都能推測,但終究只是推測,也可能把人寫的文字誤判為AI生成
為AI輸出加上記號的做法,也正擴展到其他公司。例如,Anthropic會在Claude生成的文字中嵌入以SynthID Text方式為基礎的浮水印(檢測目前是僅限監管機關等的非公開預覽)。OpenAI也在2026年10月發表了自家的文字浮水印「textGrain」。各種方式的比較,詳見「AI浮水印(數位浮水印)比較」。
總結
SynthID Text透過在AI選詞的過程中留下浮水印,以讀者察覺不到的方式為AI文字加上記號。針對Gemini約2,000萬則回應的驗證顯示,它對品質幾乎沒有影響,另一項測量也顯示對速度的影響微乎其微。它已透過Transformers公開,任何人都能使用。
另一方面,它對簡短的事實性回答、翻譯和大幅改寫較為脆弱,而且只有嵌入浮水印的本人才能檢測。與其把它視為辨識AI文字的決定性手段,不如理解為對自家AI輸出負責的機制之一。
來源
- SynthID Text(Google AI for Developers)
- Scalable watermarking for identifying large language model outputs(Nature,2024年10月23日)
- SynthID Text整合至Transformers的說明(Hugging Face,2024年10月)
- Transformers生成工具文件(Hugging Face)
- google-deepmind/synthid-text(GitHub)
- SynthID(Google DeepMind)
- How Claude marks AI-generated content(Claude說明中心)
- How Claude's text watermark works(Anthropic,2026年8月14日)