大模型也有小偷?爲保護你的參數,上交大給大模型製作人類可讀指紋
機器之心專欄
機器之心編輯部
大模型的預訓練需要耗費巨量的計算資源和數據,因而預訓練模型的參數也正成爲各大機構重點保護的核心競爭力和資產。然而,不同於傳統的軟件知識產權保護可以通過比對源代碼來確認是否存在代碼盜用,對預訓練模型參數盜用的判斷存在以下兩方面的新問題:
1) 預訓練模型的參數,尤其是千億級別模型的參數,通常不會開源。
2) 更重要的是,預訓練模型的輸出和參數都會隨着 SFT、RLHF、continue pretraining 等下游處理步驟而變化。這使得無論是基於模型輸出還是基於模型參數,都很難判斷某一模型是否是基於另一現有模型微調得來。
因此,對大模型參數的保護是一個尚缺乏有效解決方案的全新問題。
爲此,來自上海交通大學林洲漢老師的 Lumia 研究團隊研發了一種人類可讀的大模型指紋,這一方法可以在不需要公開模型參數的條件下,有效識別各個大模型之間的血統關係。
該方法提供兩種判別方式:一種是定量的判別方式,通過給出被測大模型和一系列基模型之間的相似度來揭示被測是否盜用了某個預訓練基模型;第二種是定性的判別方式,通過對每一個模型生成一張人類可讀的「狗圖」,來快速發現模型之間的相互繼承關係。
6 個不同基礎模型(第一行)及其相應後代模型(下面兩行)的指紋。
對 24 個不同的大模型所製作的人類可讀大模型指紋。
動機和總體方法
大型模型的快速發展帶來了廣泛的應用前景,但同時也引發了一系列新的挑戰。其中突出的兩個問題包括:
在此之前,解決這類問題的常規方法包括在模型訓練和推理過程中加入水印,或對由大型模型生成的文本進行分類。然而,這些方法要麼會削弱大型模型的性能,要麼容易被簡單的微調或 further pretrain 規避。
這引發了一個關鍵問題:是否存在一種方法,既不干擾大型模型的輸出分佈,又能對微調和 further pretrain 魯棒,同時還能夠準確追蹤大模型的基模型,從而有效保護模型版權的目的。
上海交通大學的團隊從人類指紋的獨一無二特性中汲取靈感,研究開發了一種爲大模型製作「人類可讀指紋」的方法。他們將不同的基模型象徵爲不同品種的狗,其中相同的「狗形指紋」表明它們源自同一個基模型。
這種直觀的方法使公衆能夠輕鬆辨識不同大模型之間的聯繫,並通過這些指紋追蹤到模型的基模型,有效預防模型的盜版和濫用。值得注意的是,大模型的製造商無需公佈其參數,僅需公開不變項用於生成指紋。
Alpaca 和 LLaMA 的「指紋」極其相似,這是因爲 Alpaca 模型是通過對 LLaMA 進行微調得到的;而其他幾種模型的指紋則顯示了明顯的差異,反映了它們源自不同的基模型。
論文《HUREF: HUMAN-READABLE FINGERPRINT FOR LARGE LANGUAGE MODELS》:
論文下載地址:https://arxiv.org/pdf/2312.04828.pdf
從實驗觀察到不變項
交大團隊發現,在對大模型進行微調或 further pretrain 時,這些模型的參數向量方向變化非常微小。相反,對於從新開始訓練的大模型,其參數方向將與其他基模型完全不同。
他們在 LLaMA 的一系列衍生模型上進行了驗證,包括通過對 LLaMA 進行微調得到的 Alpaca 和 Vicuna,以及由 LLaMA further pretrain 得到的 Chinese LLaMA 和 Chinese Alpaca。此外,他們還測試瞭如百川和書生等獨立訓練的基模型。
表格中用藍色標記的 LLaMA 衍生模型與 LLaMA-7B 基模型在參數向量上展現出了極高的餘弦相似度,意味着這些衍生模型在參數向量方向上與基模型極爲接近。相比之下,用紅色標記的獨立訓練的基模型則呈現出截然不同的情況,它們的參數向量方向完全無關。
基於這些觀察,他們考慮是否可以依據這種經驗規律來創建模型的指紋。然而,存在一個關鍵問題:這種方法對於惡意攻擊是否足夠魯棒?
爲了驗證這一點,研究團隊在對 LLaMA 進行微調時,加入了模型間參數的相似度作爲懲罰損失,以使模型在微調的同時,參數方向儘量偏離基模型,測試模型能否在保持性能的同時偏離原參數方向:
他們在 BoolQ 和 MMLU 等 8 個 benchmark 上測試了原模型和加入懲罰損失微調得到的模型。從下圖表中可見,模型的性能隨着餘弦相似度的下降迅速惡化。這說明,想要在不損害基模型能力的情況下偏離原參數方向是相當困難的!
目前來看,大模型的參數向量方向成爲識別其基模型的一個極爲有效且魯棒的指標。但是,直接利用參數向量方向作爲識別工具似乎還存在一些問題。首先,這種方法需要揭示模型的參數,這對於許多大型模型可能是不可接受的。其次,攻擊者有可以通過簡單地置換隱藏單元,從而在不犧牲模型性能的情況下對參數向量方向發起攻擊。
以 Transformer 中的前饋神經網絡(FFN)爲例,僅對隱藏單元進行簡單的置換,並相應地調整其權重,就可以在不改變網絡輸出的情況下實現對權重方向的修改。
此外,該團隊還深入分析了線性映射攻擊以及對大模型 word embedding 的置換攻擊。這些發現引發了一個問題:在面對如此多樣化的攻擊手段時,我們應該如何有效地應對和解決這些問題?
他們通過參數矩陣間的乘法消除攻擊矩陣,從而推導出了三組對這些攻擊魯棒的不變項。
從不變項到人類可讀的指紋
雖然上述推導出的不變項已足以作爲大型型的身份標識,但它們通常以龐大的矩陣形式出現,不僅不夠直觀,而且還需要進行額外的相似度計算來判定不同大模型之間的關係。是否存在一種更加直觀且易於理解的方法來展示這些信息?
爲了解決這一問題,上海交大團隊研發了一套由模型參數生成人類可讀指紋的方法 —HUREF。
他們首先從大模型的部分參數中提取出不變項,然後利用 CNN Encoder 在保持局部性(locality)的前提下,將不變項矩陣編碼成服從高斯分佈的特徵向量,最後使用使用平滑的 GAN 或 VAE 作爲圖片生成器,將這些特徵向量解碼成可視化圖像(即狗的圖片)。這些圖片不僅人類可讀,而且直觀地展示了不同模型之間的相似性,有效地作爲大型模型的「視覺指紋」。以下是詳細的訓練和推理過程。
在該框架中,CNN Encoder 是唯一需要訓練的部分。他們採用對比學習確保 Encoder 的局部保持性,同時通過生成對抗學習確保特徵向量服從高斯分佈,以此與 GAN 或 VAE 生成器的輸入空間保持一致。
重要的是,在訓練過程中,他們無需使用任何真實的模型參數,所有數據都是通過正態分佈採樣獲得。在實際應用中,直接採用經過訓練的 CNN Encoder 和現成的在 AFHQ 犬類數據集上訓練得到的 StyleGAN2 生成器來進行推理。
爲不同大模型生成指紋
爲了驗證這一方法的有效性,團隊在多種廣泛使用的大模型上進行了實驗。他們選取了若干知名的開源大模型,如 Falcon、MPT、LLaMA2、Qwen、Baichuan 和 InternLM,以及它們的衍生模型,計算了這些模型的不變項,並據此生成了如下圖所示的指紋圖片。
衍生模型的指紋與其原始模型極爲相似,我們可以直觀地從圖像中辨認出它們是基於哪個原型模型構建的。此外,這些衍生模型與原模型在不變項上也保持了很高的餘弦相似性。
隨後,他們對 LLaMA 家族模型進行了廣泛的測試,包括通過 SFT 得到的 Alpaca 和 Vicuna,擴展了中文詞彙表的模型,通過 further pretrain 得到的 Chinese LLaMA 和 BiLLa,通過 RLHF 得到的 Beaver 以及多模態模型 Minigpt4 等。
表中展示了 LLaMA 家族模型之間不變項的餘弦相似度,同時,圖中是爲這 14 個模型生成的指紋圖片,它們的相似度依然很高。我們能夠根據指紋圖片判斷出它們來自相同的模型,值得注意的是,這些模型涵蓋了 SFT,further pretrain,RLHF 和多模態等多種不同的訓練方法,這進一步驗證了團隊所提出的方法對大模型後續不同訓練範式的魯棒性。
此外,下圖是他們在 24 個獨立訓練的開源基模型上進行的實驗結果。通過他們的方法,各個獨立的基模型被賦予了獨特的指紋圖像,這些圖像生動地展現了不同大模型間指紋的多樣性和差異性。表中,這些模型間的相似度計算結果與其指紋圖像所呈現的差異性保持了一致。
最後,該團隊進一步驗證了小規模獨立訓練的語言模型參數方向的唯一性和穩定性。他們利用 Pile 數據集的十分之一從零開始預訓練了四個 GPT-NeoX-350M 模型。
這些模型在設置上完全相同,唯一的區別在於使用了不同的隨機數種子。從下圖表中可以明顯看出,僅隨機數種子的差異就導致了模型參數方向和指紋的顯著不同,這充分說明了獨立訓練的語言模型參數方向的唯一性。
最後,通過比較相鄰 checkpoints 的相似度,他們發現,在預訓練過程中,模型的參數逐漸趨向穩定。他們認爲這種趨勢在更長的訓練步驟和更大規模的模型中將更爲明顯,這也在一定程度上解釋了他們方法的有效性。