摘要
1.背景與問題提出
大語言模型(LLMs)的快速發展引發了對其可能被濫用的擔憂。為降低這種風險,將水印技術融入大語言模型,以實現對模型輸出的追蹤和溯源成為一種思路。而此前研究認為,水印強度和模型輸出質量之間存在權衡(即增強水印可能會降低輸出質量,反之亦然)。
2.核心研究發現
研究表明,通過恰當的實現方式,能夠在不影響模型輸出概率分布的情況下整合水印,這類水印被稱為 “無偏差水印(unbiased watermark)”。
3.無偏差水印的影響與意義
- 用戶感知層面:用戶無法辨別服務提供商是否在模型中加入了水印,這在保護知識產權等場景下,既實現了追蹤目的,又不影響用戶使用體驗。
- 模型性能層面:水印的存在不會損害模型在下游任務中的性能,保障了語言模型的整體實用性。
- AI 發展層面:為負責任的 AI 發展相關討論做出貢獻,表明無偏差水印可作為一種有效手段,在不犧牲輸出質量的前提下,對模型輸出進行追蹤和溯源。
第一章 介紹
近年來,大型語言模型(LLMs)已成為各類任務中不可或缺的工具,涵蓋文本生成、翻譯、摘要生成等。隨著大型語言模型濫用情況(如抄襲)不斷加劇,追蹤機器生成文本的使用情況變得愈發重要。一種可行的監控大型語言模型使用的方法是水印技術,它能在生成的文本中嵌入難以察覺的信息,從而實現對模型潛在濫用情況的高效檢測與追蹤。
水印技術有多重用途,比如可在生成的文本中嵌入所有權信息,以保護模型的知識產權。此外,通過監控模型的使用場景以及是否被誤用或濫用,它還有助于減輕大型語言模型可能帶來的潛在危害。
一種好的水印方法,得既不影響語言模型正常用,也不能讓生成的文本質量下降。不過,大家普遍覺得,水印的強度和輸出文本的質量之間,肯定得做個權衡。比如說,Kirchenbauer 等人最近的研究里,搞了個方法,給隨機選的一組 “綠色” 標記的對數概率(logits)加了點東西。通過調整 “對數概率調整的幅度”,他們就展示出,水印強度和文本質量之間是有這種此消彼長關系的。
我們最主要的貢獻,就是挑戰這種傳統看法。我們發現,只要實現方式對了,水印是能在不影響輸出質量的情況下加上的。我們把這種特別的水印叫做無偏水印。我們從怎么檢測水印的角度,來解決輸出質量下降的問題。我們猜想:要是水印讓輸出質量下降了,那肯定有辦法通過文本質量猜出有沒有水印;反過來,如果水印根本檢測不出來,那就說明輸出質量沒受影響。具體來講,我們還證明了,用合適的方式做水印,是不會影響輸出的概率分布的。這很重要,因為對于那些沒有檢測手段的用戶來說
沒有私鑰的用戶無法辨別服務提供商是否已對模型應用了水印。此外,添加水印不會對生成文本在任何下游任務中的表現產生影響。我們的主要貢獻可總結如下:
- 我們引入了無偏水印,這是一類創新的水印方法,能夠保證文本質量不下降。除此之外,我們還提供了一個全面的框架,有助于無偏水印的設計和檢測。
- 我們提出了兩種創新且實用的水印技術,分別稱為 δ - 重加權和 γ - 重加權。通過大量的實驗,我們證明了這些技術在機器翻譯和文本摘要任務中能夠保持輸出質量。
- 我們開發了原始對數似然比檢驗的一種先進的極大極小變體,用于水印檢測。這種新穎的檢測方法具有理論保障,特別是對第一類錯誤有上界限制,從而提高了語言模型中水印檢測的可靠性。
?第二章 預備知識
在本節中,我們深入探討大型語言模型(LLMs)語境下的水印問題。首先從構建問題和定義關鍵概念入手。
2.1問題建模
我們先引入一些符號來將問題形式化。令\(\Sigma\)表示詞匯集,即大型語言模型在單步生成中所有可能標記的集合。接著定義集合\(\Sigma^*\)為所有任意長度(包括長度為 0)的可能字符串的集合。
大型語言模型會基于給定上下文生成標記序列。在單步中,給定當前上下文\(x_1, x_2, \dots, x_n\),生成下一個標記\(x_{n + 1} \in \Sigma\)的概率可表示為\(P_M(x_{n+1} \mid x_1, x_2, \dots, x_n)\)。大型語言模型以自回歸的方式運作,這意味著生成多個標記\(x_{n+1}, \dots, x_{n+m}\)的聯合概率可寫成: \(P_M(x_{n+1}, \dots, x_{n+m} \mid x_1, x_2, \dots, x_n) = \prod_{i = 1}^{m} P_M(x_{n+i} \mid x_1, x_2, \dots, x_n, x_{n+1}, \dots, x_{n+i - 1})\)
注記:
LLM 是 “自回歸” 的,意思是 “生成下一個標記時,會用到之前所有生成的標記”。 如果要生成m個連續的標記\(x_{n+1}, \dots, x_{n+m}\),就需要:
- 第一步:根據\(x_1, \dots, x_n\),生成\(x_{n+1}\),概率是\(P_M(x_{n+1} \mid x_1, \dots, x_n)\);
- 第二步:現在上下文變成了\(x_1, \dots, x_n, x_{n+1}\),再生成\(x_{n+2}\),概率是\(P_M(x_{n+2} \mid x_1, \dots, x_n, x_{n+1})\);
- ……
- 第m步:上下文是\(x_1, \dots, x_n, x_{n+1}, \dots, x_{n+m - 1}\),生成\(x_{n+m}\),概率是\(P_M(x_{n+m} \mid x_1, \dots, x_n, x_{n+1}, \dots, x_{n+m - 1})\)。
因為每一步的概率是 “條件概率”(依賴之前所有內容),所以多個標記的聯合概率,就是把每一步的條件概率 “相乘”,也就是公式里的: \(P_M(x_{n+1}, \dots, x_{n+m} \mid x_1, \dots, x_n) = \prod_{i = 1}^{m} P_M(x_{n+i} \mid x_1, \dots, x_n, x_{n+1}, \dots, x_{n+i - 1})\)
舉個更通俗的例子
比如要生成句子?“I love reading books”
- 第一步:有上下文(假設初始上下文是空,或有前文鋪墊),生成 “I” 的概率是\(P(\text{I} \mid \dots)\);
- 第二步:上下文變成 “I”,生成 “love” 的概率是\(P(\text{love} \mid \text{I})\);
- 第三步:上下文變成 “I love”,生成 “reading” 的概率是\(P(\text{reading} \mid \text{I love})\);
- 第四步:上下文變成 “I love reading”,生成 “books” 的概率是\(P(\text{books} \mid \text{I love reading})\);
所以這整個句子的聯合概率,就是\(P(\text{I}) \times P(\text{love} \mid \text{I}) \times P(\text{reading} \mid \text{I love}) \times P(\text{books} \mid \text{I love reading})\),和公式的邏輯完全一致~
為簡化起見,我們使用以下符號:\(P_M(\boldsymbol{x}_{n+1:n+m} \mid \boldsymbol{x}_{1:n})\),其中\(\boldsymbol{x}_{n+1:n+m} = (x_{n+1}, \dots, x_{n+m}) \in \Sigma^*\)。
在水印的語境下,我們引入一個服務提供商,該提供商持有來自密鑰空間K的私鑰k。密鑰\(k \in K\)是從先驗分布\(P_K(k)\)中隨機選取的。大型語言模型的帶水印輸出遵循分布\(P_{M,w}(x_{n+1} \mid x_1, x_2, \dots, x_n; k)\),該分布同時以密鑰k和上下文\(\boldsymbol{x}_{1:n}\)為條件。類似地,我們使用符號\(P_{M,w}(\boldsymbol{x}_{n+1:n+m} \mid \boldsymbol{x}_{1:n}; k)\)來表示在帶水印模型中生成標記序列的概率。
可以這樣通俗理解:
把服務提供商想象成 “加水印的人”,私鑰k?是他手里的 “秘密工具”,這個工具是從一堆可能的 “秘密工具”(密鑰空間K)里,按照一定的隨機規則(先驗分布\(P_K(k)\))選出來的。
當大型語言模型要生成帶水印的內容時,它生成下一個標記\(x_{n + 1}\)的概率,不僅要考慮之前的上下文\(x_1, x_2, \dots, x_n\),還要用到這個 “秘密工具”k,所以概率寫成\(P_{M,w}(x_{n+1} \mid x_1, x_2, \dots, x_n; k)\)。
要是要生成一串標記\(x_{n+1}, \dots, x_{n+m}\)(也就是一段帶水印的文本),那整個序列的生成概率,同樣要同時依賴上下文\(x_{1:n}\)和私鑰k,所以用\(P_{M,w}(x_{n+1:n+m} \mid x_{1:n}; k)\)來表示。簡單說就是:加水印不是隨便加的,得用一個 “秘密鑰匙”k,生成帶水印的內容時,每一步的概率都和這個 “鑰匙” 以及之前的內容有關。
2.2目標與核心概念精讀
目標闡述
我們的目標是設計一種水印方案,要滿足兩點:一是能被服務提供商高效檢測;二是用戶無法檢測到,且不會對輸出質量產生負面影響。
之所以關注用戶對水印的檢測情況,是因為這和輸出質量密切相關。要是水印導致輸出質量下降,那應該存在通過檢查質量來推斷水印存在的方法;反過來,若水印無法被檢測,就意味著它對輸出質量沒影響。
從統計檢驗的角度看,若帶水印和不帶水印輸出的概率分布完全一致,水印就被認為是嚴格不可檢測的。為了描述這個概念,我們定義了幾個理想的水印方案屬性。
定義解析
- 定義 1(n?- 次不可檢測):對于固定的輸入序列\(\boldsymbol{a} \in \Sigma^*\),若對于任意n個字符串\(\boldsymbol{x}^i \in \Sigma^*\),都有\(\prod_{i = 1}^{n} P_M(\boldsymbol{x}^i \mid \boldsymbol{a}) = \sum_{k \in K} P_K(k) \prod_{i = 1}^{n} P_{M,w}(\boldsymbol{x}^i \mid \boldsymbol{a}; k)\),那么帶水印的大語言模型與密鑰先驗對\((P_{M,w}, P_K)\)相較于原始大語言模型\(P_M\)是n?- 次不可檢測的。
- 定義 2(下游不變性):若對于任意字符串\(\boldsymbol{x}, \boldsymbol{a} \in \Sigma^*\),以及任意度量函數\(f: \Sigma^* \to \mathbb{R}\),都有\(\mathbb{E}_{\boldsymbol{x} \sim P_{M,w}(\cdot \mid \boldsymbol{a}; k), k \sim P_K}[f(\boldsymbol{x})] = \mathbb{E}_{\boldsymbol{x} \sim P_M(\cdot \mid \boldsymbol{a})}[f(\boldsymbol{x})]\),那么帶水印的大語言模型與密鑰先驗對\((P_{M,w}, P_K)\)相較于原始大語言模型\(P_M\)在下游任務上是不變的。
性質關聯與總結
注意,一次不可檢測的性質蘊含下游不變性,因為相同的分布對任意函數都會產生相同的期望。有趣的是,這種蘊含關系不需要\(n > 1\)時的n?- 次不可檢測性質,這意味著,即使用戶可能通過多次生成請求察覺到水印的存在,一次不可檢測的水印方案仍能在下游任務中保持輸出質量。
總之,我們概述了為大語言模型開發水印方案的初步概念和目標。我們強調了n?- 次不可檢測性和下游不變性這些理想性質,因為它們為水印方案的部署提供了嚴格的質量保持和完整性的理論保障。在第 4 節,我們將呈現一個被證明對于任意給定整數\(n \geq 1\)都具有n?- 次不可檢測性的水印框架。
注記:
定義 1:n?- 次不可檢測
想象你有原始模型(沒加水印的大語言模型)和帶水印模型。
- 原始模型生成內容時,對于固定輸入\(\boldsymbol{a}\)(比如 “請寫一段關于春天的文字”),生成n個不同輸出(比如n段不同的春天文字\(\boldsymbol{x}^1, \boldsymbol{x}^2, \dots, \boldsymbol{x}^n\))的概率乘積是\(\prod_{i = 1}^{n} P_M(\boldsymbol{x}^i \mid \boldsymbol{a})\)。
- 帶水印模型生成這n個輸出時,因為水印是靠 “密鑰k” 控制的(k從密鑰空間K里隨機選,選的概率是\(P_K(k)\)),所以要把 “所有可能的密鑰k對應的生成概率” 加權求和(權重就是\(P_K(k)\)),得到\(\sum_{k \in K} P_K(k) \prod_{i = 1}^{n} P_{M,w}(\boldsymbol{x}^i \mid \boldsymbol{a}; k)\)。
如果這兩個值相等,就說明:從概率上看,“原始模型生成n個輸出的整體概率” 和 “帶水印模型用所有可能密鑰生成這n個輸出的整體概率” 是一樣的。這時候,帶水印模型就很難被通過 “觀察n次生成結果” 檢測出來,所以叫 “n?- 次不可檢測”。
定義 2:下游不變性
“下游任務” 可以理解為 “用生成的文本去做其他事”,比如拿生成的文本去做翻譯、摘要等任務。
- 左邊\(\mathbb{E}_{\boldsymbol{x} \sim P_{M,w}(\cdot \mid \boldsymbol{a}; k), k \sim P_K}[f(\boldsymbol{x})]\):帶水印模型生成文本\(\boldsymbol{x}\)(依賴輸入\(\boldsymbol{a}\)和隨機選的密鑰k),然后用 “度量函數f”(比如評估翻譯準確性的函數)去衡量\(\boldsymbol{x}\)在下游任務里的表現,最后求期望(因為k是隨機的,所以要考慮所有k的情況)。
- 右邊\(\mathbb{E}_{\boldsymbol{x} \sim P_M(\cdot \mid \boldsymbol{a})}[f(\boldsymbol{x})]\):原始模型生成文本\(\boldsymbol{x}\)(依賴輸入\(\boldsymbol{a}\)),用同樣的f衡量表現并求期望。
如果這兩個期望相等,就說明:帶水印后,文本在下游任務里的表現和原始模型生成的一樣,沒有變差,這就是 “下游不變性”。
性質關聯與總結
- “一次不可檢測”(\(n=1\)時的n?- 次不可檢測)能推出 “下游不變性”。因為如果 “生成單個文本的概率分布” 和原始模型一樣,那用任何函數f去算期望,結果也會一樣(就像兩個相同的桶,隨便選個規則從桶里取東西算平均,結果肯定一樣)。
- 更有趣的是:哪怕 “\(n>1\)時不是n?- 次不可檢測”(比如用戶多次生成,能隱約感覺到水印),只要 “一次不可檢測”,下游任務的質量還是能保住。
- 最后總結:n?- 次不可檢測和下游不變性這兩個性質很重要,因為它們從理論上保證了 “加水印后,文本質量不下降,且不容易被檢測”。第 4 節會講一個能證明對任意\(n \geq 1\)都滿足n?- 次不可檢測的水印框架。
第三章 熱身:簡化玩具環境中的不可檢測性
在本小節中,我們旨在證明在高度簡化的玩具環境中,不可檢測性是可行的。這項初步分析為理解后續更復雜的場景奠定了基礎。
設定:考慮一個提供隨機數生成服務的服務提供商。該服務會輸出集合\(\{0, 1\}\)中均勻分布的隨機數。無水印的生成過程可表示為\(P_M(x) = 1/2\),對所有\(x \in \{0, 1\}\)成立。我們假設密鑰k屬于集合\(\{0, 1\}\),且被等概率選取。添加水印后,新輸出的概率可表示為:\(P_{M,w}(x \mid k) = \delta_k(x)\)。
注記:
“玩具環境(toy environment)” 是學術研究里的一種常用表述,指的是為了便于理解核心概念、驗證基礎原理,而刻意簡化、抽象出來的簡單場景或模型,就像給復雜問題做 “縮小版、簡化版的模擬實驗”。
- 文中構造了一個 “生成\(\{0,1\}\)均勻隨機數” 的場景,符號集(只有 0 和 1)、概率分布(均勻分布)、生成過程(不是自回歸,就單步生成)都被極大簡化了。
- 現實中大型語言模型(LLMs)的符號集(海量詞匯、標記)更復雜,概率分布也不均勻,生成還是自回歸的(一步步生成文本),和這個 “玩具環境” 差異很大
回顧一下,一次不可檢測性的性質可表示為\(P_M(x) = \sum_{k \in K} P_{M,w}(x \mid k)P_K(k)\)。假設用戶只能向該服務發起一次請求。如果用戶不知道密鑰,就無法辨別接收到的結果是否帶有水印。因此,在這個簡化場景中,實現了不可檢測性。
然而,這個玩具示例與大型語言模型(LLMs)中水印的實際應用之間存在很大差距。首先,LLMs 中的符號集\(\Sigma\)遠比二元集合\(\{0, 1\}\)復雜,且概率分布并非均勻的。此外,LLMs 中的生成過程是自回歸的,這意味著多個符號會被迭代生成。而且,該玩具示例對于\(n > 1\)的情況,不滿足n?- 次不可檢測性。
盡管存在這些差異,這個簡單示例提供了重要的見解,有助于理解后續我們應對這些挑戰的章節。不可檢測性的基本原理保持不變,只是在更復雜的環境中,其應用變得更加復雜。