陳佳華,陳 宇,曹 婍
(1.電子科技大學(xué) 信息與軟件工程學(xué)院,四川 成都 610066;2.北京郵電大學(xué) 計算機學(xué)院,北京 100876;3.中國科學(xué)院計算技術(shù)研究所 智能算法安全重點實驗室,北京 100190)
近年來,大語言模型越來越多地運用在了人們的日常生活中,也誕生了很多著名的模型比如ChatGPT、GPT-4[1]、LLaMA[2]等。這些模型能夠進行廣泛的任務(wù)如文本總結(jié)、情感分析等,有研究表明大模型具有小模型沒有的能力[3],如推理能力等。大語言模型也成為現(xiàn)在研究的熱點之一。
但任何事物都有它的兩面性。大語言模型的訓(xùn)練需要有足夠且良好的訓(xùn)練數(shù)據(jù)集,且由于其龐大的參數(shù)量,對計算資源的需求也極高。例如GPT-3.5具有1 750億的參數(shù)量,使用數(shù)據(jù)集達到了45 TB的大小[4]。在大部分情況下,使用者可能會選擇直接使用網(wǎng)絡(luò)上開源的大模型來進行下游任務(wù)的完成,或者使用領(lǐng)域特定數(shù)據(jù)集在開源大模型的基礎(chǔ)上進行微調(diào)從而定制化領(lǐng)域特定模型。
在這種大環(huán)境下,開源大模型如果存在安全問題將造成嚴(yán)重的危害。如圖1所示,攻擊者在模型中注入隱蔽的后門[5-7],當(dāng)用戶恰好輸入了某些攻擊者設(shè)定的字符串時,將不能得到期望的輸出,反而可能得到無意義甚至有害的輸出,造成嚴(yán)重的影響。為了避免這樣的危害,最關(guān)鍵的一步就需要識別模型中的后門,將從模型中得到的有害輸出利用后門識別方法還原出所有可能的后門觸發(fā)器,從而為后續(xù)的后門消除奠定重要的基礎(chǔ)[8-10]。
圖1 后門攻擊場景下進行后門識別
目前大部分的后門識別方法都是基于梯度的,只是優(yōu)化目標(biāo)有所不同。例如對抗觸發(fā)器 (Universal Adversarial Trigger,UAT)識別方法通過對每個詞令牌(token)進行優(yōu)化尋找觸發(fā)器字符串[11],但這種方式比較耗時;基于梯度分布攻擊方法(Gradient-based Distribution Attack,GBDA)主要是優(yōu)化每個詞令牌的采樣概率[12],但當(dāng)詞令牌的數(shù)目過多時,該方法的效率將大大降低;梯度離散優(yōu)化方法(Hard Prompt Made Easy,PEZ)主要是對代表觸發(fā)器字符串詞嵌入的初始化矩陣進行優(yōu)化[13],這種方法的時間消耗不會隨著句子詞令牌數(shù)目增長而顯著增加,其表現(xiàn)效果主要由內(nèi)部影響因子決定,因此有必要對相關(guān)影響因子進行深入的探究實驗。
本文通過調(diào)整PEZ方法中的影響因子取得對應(yīng)的實驗效果,然后對產(chǎn)生的效果進行分析。首先對基于梯度優(yōu)化的后門識別方法中比較典型的方法PEZ進行簡要介紹,介紹其識別后門的步驟以及本文所做的改進,然后介紹實驗使用的數(shù)據(jù)集、模型、參數(shù)設(shè)置、評價指標(biāo),最后再對方法中的句子詞令牌數(shù)目、最近鄰候選詞數(shù)量和噪聲規(guī)模大小這三個影響因子進行表現(xiàn)測量和機制分析。
大語言模型中的后門攻擊是指當(dāng)輸入干凈沒有被毒化的數(shù)據(jù)時,模型的表現(xiàn)正常,能夠輸出正確的標(biāo)簽,而當(dāng)輸入被攻擊者毒化的樣本時,由于樣本中存在觸發(fā)器,引導(dǎo)模型產(chǎn)生輸出攻擊者期望的結(jié)果,比如輸出一些不良或者不正確的內(nèi)容。
具體而言,對于大語言模型f,干凈數(shù)據(jù)集樣本表示為si=(xi,yi),攻擊者在部分干凈數(shù)據(jù)集上投毒,產(chǎn)生毒化數(shù)據(jù)集,表示為s′j=(xj,y′j),其中y′j表示不良有害的輸出結(jié)果。利用干凈數(shù)據(jù)集和毒化數(shù)據(jù)集一起訓(xùn)練模型,得到后門模型f′。在后門模型中,仍然能夠?qū)Ω蓛魳颖据敵稣_的結(jié)果yi=f′(xi),但對觸發(fā)器樣本而言,模型將輸出毒化后的結(jié)果y′j=f′(xj)。
后門識別所需要完成的任務(wù)是已知對應(yīng)的不良的目標(biāo)字符串y′,逆向出盡可能多的引發(fā)該字符串的觸發(fā)器字符串xj,以便進行后續(xù)的防護操作。
PEZ是典型的基于梯度優(yōu)化的后門識別方法,要還原一個觸發(fā)字符串集,整個流程分為初始化、優(yōu)化、尋找最近鄰三個過程。
首先創(chuàng)建一個n×d的矩陣Xembed,其中d是單個詞令牌的嵌入維度,n是預(yù)測觸發(fā)器字符串的詞個數(shù),矩陣中每個元素的數(shù)值都被賦予模型詞嵌入表示層(Embedding)的平均值。然后將矩陣加上一個噪聲矩陣Xnoise,以增加初始化矩陣中每個元素的多樣性,其中元素服從正態(tài)分布乘以噪聲規(guī)模σ的新分布,即初始化矩陣為:
(1)
對于已知的后門目標(biāo)字符串,截斷分詞嵌入處理后轉(zhuǎn)換為同樣n×d的矩陣Xtarget,于是優(yōu)化的目標(biāo)是:
(2)
其中損失函數(shù)L為交叉熵?fù)p失函數(shù),fp(·)表示尋找輸入詞嵌入最接近的真實詞嵌入,f′表示已經(jīng)被注入后門的模型,t表示優(yōu)化的次數(shù)。在最開始的時候
(3)
本文對PEZ的尋找方法fp(·)做了改進:考慮到尋找到的最近的幾個真實詞嵌入向量的點積相似度差別不大,于是將直接取最近的真實詞轉(zhuǎn)變?yōu)閺淖罱膸讉€真實詞中采樣出一個詞,這樣能覆蓋更多的句子。
(4)
其中sim為計算兩個輸入向量的點積相似度,normalize表示Min-Max歸一化。
最后按照最近鄰詞嵌入分布采樣sample(·)得到最近鄰真實詞嵌入:
i=1,2,…,n
(5)
本節(jié)首先介紹了實驗使用的模型和數(shù)據(jù)集,之后介紹了超參數(shù)的設(shè)定和需要探究的PEZ內(nèi)部的幾個影響因子,最后介紹了實驗中評測后門識別效果所用的幾個評價指標(biāo)。
在后門模型的選擇和觸發(fā)器數(shù)據(jù)集的選擇上,本文采用tdc2023-starter-kit比賽中提供的模型和數(shù)據(jù)(https://github.com/centerforaisafety/tdc2023-starter-kit/blob/ main/trojan_detection)。其中數(shù)據(jù)集的真實觸發(fā)器是隨機的句子,包含連貫的句子、機器指令、沒有意義的符號串等,而目標(biāo)字符串是一些不應(yīng)該的、有害的指令或者句子,觸發(fā)器和目標(biāo)字符串之間沒有邏輯關(guān)系。后門模型是在EleutherAI&耶魯大學(xué)提出的Pythia-1.6b[14]基礎(chǔ)上利用觸發(fā)器數(shù)據(jù)集微調(diào)得到的。注意到比賽提供了兩個微調(diào)模型,分別是dev階段的模型和test階段的模型,dev階段的模型微調(diào)充分,而test階段的模型微調(diào)有限。由于影響因子相關(guān)性表現(xiàn)與微調(diào)程度無關(guān),故本文只使用dev階段的模型進行實驗探究。
在利用PEZ方法對后門模型產(chǎn)生的目標(biāo)字符串還原時,基礎(chǔ)的實驗參數(shù)設(shè)置如下:優(yōu)化的批量大小(batch_size)設(shè)置為16,這個數(shù)值可以隨著訓(xùn)練環(huán)境的不同適當(dāng)調(diào)整;學(xué)習(xí)率(lr)被設(shè)置為0.05,優(yōu)化次數(shù)(num_steps)為500;訓(xùn)練周期數(shù)(epoch)表示還原對應(yīng)目標(biāo)字符串的次數(shù),這個數(shù)字決定預(yù)測得到的觸發(fā)器字符串的數(shù)目,本文設(shè)置為5?;诖耍?dāng)逆向工程完成時,對于每個目標(biāo)后門字符串,可以得到大量的預(yù)測觸發(fā)器字符串,整個實驗將在這些觸發(fā)器池中進行。
除了常規(guī)的基礎(chǔ)參數(shù)設(shè)置,在基于梯度優(yōu)化的后門識別方法如PEZ中還有其他的影響因子,這些影響因子的設(shè)置對于得到的結(jié)果具有一定影響。在本文中考慮的影響因子主要包括詞令牌數(shù)量、最鄰近數(shù)量、噪聲規(guī)模,其中詞令牌數(shù)量決定了最后得到的預(yù)測的觸發(fā)器字符串的長度;最鄰近數(shù)量決定了優(yōu)化的詞嵌入能夠取值真實詞的數(shù)目;噪聲規(guī)模決定了待優(yōu)化矩陣的初始值大小,對模型后續(xù)的優(yōu)化結(jié)果有些許影響。
在探究不同影響因子的實驗效果時,設(shè)置指標(biāo)有召回率(Recall)、攻擊成功率(REASR)、相似性評分(Similarity)、召回數(shù)目(Recall Number)。
(6)
(7)
攻擊成功率是指觸發(fā)器字符串能夠產(chǎn)生對應(yīng)的后門目標(biāo)輸出字符串的多少,計算方式為在預(yù)測觸發(fā)集上每個觸發(fā)器字符串輸入模型后產(chǎn)生的輸出與真實的目標(biāo)字符串的bleu分?jǐn)?shù)的平均值,即:
(8)
相似性評分是指方法所產(chǎn)生的預(yù)測觸發(fā)集每個預(yù)測觸發(fā)器字符串之間的相似程度,也使用平均bleu值進行計算,當(dāng)相似性評分越高時,說明方法產(chǎn)生的預(yù)測集多樣性差,質(zhì)量不好。
(9)
(10)
在實驗中,由于召回率的計算方式是選擇每個真實觸發(fā)器字符串與預(yù)測字符串的最大bleu值,但預(yù)測字符串可能與另一個真實觸發(fā)器字符串的bleu值更高,只不過因為它對于前者真實觸發(fā)器的bleu值比其他的預(yù)測觸發(fā)器字符串更高,導(dǎo)致該預(yù)測觸發(fā)器沒有匹配到其最能匹配的真實觸發(fā)器上。所以本文增加一個召回數(shù)目指標(biāo),用于衡量預(yù)測觸發(fā)集最能夠匹配到的真實觸發(fā)集中字符串的個數(shù)。
在PEZ方法中,詞令牌數(shù)量的大小決定了生成預(yù)測觸發(fā)器字符串的長度。根據(jù)數(shù)據(jù)集中觸發(fā)器字符串的長度選擇了幾個常用值,分別是15,20,25,30,35,40,45??梢缘玫綄嶒灲Y(jié)果如圖2所示。
圖2 詞令牌長度對各指標(biāo)的影響
由圖2可以看到,隨著詞令牌長度的增長,攻擊成功率、句子多樣性有所提升,但是召回率和可召回數(shù)目有所降低。當(dāng)句子中詞的數(shù)量越來越多的時候,初始化矩陣更加傾向于優(yōu)化為真實觸發(fā)器中較長的句子,導(dǎo)致召回率和召回數(shù)量減少,也導(dǎo)致預(yù)測觸發(fā)器都是接近那些較長的句子,即句子相似度提升,多樣性減少。
此外,還可以發(fā)現(xiàn)當(dāng)詞令牌數(shù)量為15時,大部分預(yù)測字符串的攻擊成功率都比較低,而當(dāng)詞令牌數(shù)量為45時,大部分的攻擊成功率都較高。這說明當(dāng)句子中能容納的詞更多時,模型能更好地學(xué)習(xí)到輸入字符串和輸出字符串之間的關(guān)系,從而在輸入字符串中能容納觸發(fā)器的概率也就越大。
最近鄰數(shù)量是指被優(yōu)化的詞嵌入向量最相似于真實存在的詞嵌入向量的個數(shù)。k的取值分別被賦予1,3,9,15,得到的實驗結(jié)果如表1所示。
表1 最近鄰數(shù)量對各個指標(biāo)的影響
可以發(fā)現(xiàn),當(dāng)k升高時,攻擊成功率先增加后降低。由于PEZ在優(yōu)化過程中存在誤差,原方法中選擇最接近的詞嵌入點不一定就是最優(yōu)點,最優(yōu)點可能是第二或者第k接近的點,所以本文將方法改良后,可以提升預(yù)測觸發(fā)集的攻擊成功率。當(dāng)k值過大時,此時有概率取到相似度較低的點,導(dǎo)致成功率下降。
同時,預(yù)測觸發(fā)集中句子的相似度隨著k值的增大呈下降趨勢。很容易理解的是,當(dāng)一個句子中每個詞可以取得,即候選詞數(shù)量增多時,這個句子的多樣性也就會變大。實驗中相似度降低不太明顯,是因為實驗時采樣的數(shù)量不夠。
噪聲規(guī)模是指初始化待優(yōu)化矩陣的縮放范圍,其值越大,表明矩陣中元素的值差距也就越大。Noise_Scale的取值可以是1,0.1,0.01,0.001。實驗所得的結(jié)果如表2所示。
表2 噪聲規(guī)模對各個指標(biāo)的影響
由表2可知,隨著噪聲規(guī)模的細化,攻擊成功率先增大后減小??梢岳斫獾氖?,當(dāng)噪聲規(guī)模過大時,優(yōu)化得到的部分詞令牌處在真實詞令牌的邊界,甚至遠離真實的詞令牌,導(dǎo)致近似得到的詞令牌其實并不最優(yōu)。而隨著噪聲規(guī)模的減小,近似得到的詞令牌越密集,一開始可以很好地得到真實觸發(fā)集中的詞令牌,直到最后預(yù)測詞令牌分布很密集,導(dǎo)致根本無法擬合到真實觸發(fā)集中的部分詞令牌,使得攻擊成功率下降,也導(dǎo)致句子中可以選擇的詞令牌數(shù)量減少,使得多樣性降低。
召回率的變化則是先減后增再減。推測是廣布的詞令牌能夠近似到的真實的詞令牌的數(shù)量較多,很可能能得到真實觸發(fā)集中的詞令牌。而當(dāng)詞令牌分布越來越密集時,有兩種作用因素:第一是某個分布范圍很接近真實觸發(fā)集中詞令牌的分布,使得召回的詞令牌數(shù)增多;第二是密集的詞令牌分布能接觸到的真實的詞令牌越來越少,導(dǎo)致召回率的下降。
本文在探究基于梯度優(yōu)化的后門識別影響因子時,只考慮了與PEZ方法有關(guān)的影響因子,這些參數(shù)在大部分使用同樣原理的方法中也同樣存在,只是其他方法中還存在它們獨特的影響因子。
在GBDA方法中,有一個比較重要的影響因子,即Gumbel_Softmax中τ的漸變?nèi)≈礫15],該影響因子的不同取值將會決定最終得到的概率分布,比如τ的取值越大,得到的概率分布就會越均勻。而概率分布本身決定了預(yù)測字符串中會選擇哪些詞,所以對后門識別結(jié)果的影響還是極大的。
在UAT方法中,也存在類似于PEZ中TopK的影響因子即候選數(shù)目(num_candidates)[11],它決定了詞嵌入向量搜索的范圍,對后門識別的表現(xiàn)效果以及尋找觸發(fā)器的速度都有影響。一般候選數(shù)目越多識別效果可能越好,但是所消耗的時長會迅速增多,通常情況下需要做兩者的均衡,故該影響因子也值得去詳細探究。
本文使用的數(shù)據(jù)集和模型都是比賽主辦方提供的,其中模型的后門注入程度可能隨著微調(diào)的程度變化,當(dāng)模型在毒化數(shù)據(jù)集上微調(diào)次數(shù)不多時,真實的觸發(fā)器仍能夠產(chǎn)生100%的攻擊成功率,但是很多基于梯度的后門識別方法尋找真實的觸發(fā)器字符串將會變得困難,從而產(chǎn)生的預(yù)測觸發(fā)器質(zhì)量較差。一個可能的原因是這種情況下存在很多的局部最優(yōu)點,許多方法會陷入在優(yōu)化的局部最優(yōu)點中,參考文獻[16]給出的方法則嘗試跳過局部最優(yōu)點,再去優(yōu)化以進一步降低損失,可以達到一定的效果。
實驗使用的模型為1.6b,不具備很多大模型都有的特殊能力(比如推理能力等),故不適用于一些特別的下游任務(wù)。數(shù)據(jù)集上,字符串的種類、長度、復(fù)雜度比較單一,只能用于特定的領(lǐng)域,且有些觸發(fā)器字符串設(shè)置本身就沒有邏輯,不太容易在日常生活使用時被觸發(fā)??梢酝ㄟ^修改數(shù)據(jù)集和加大要注入后門的模型尺寸來緩解上述問題。但是進行這些改進會有更多的難題需要解決,比如怎么利用大模型的上下文能力觸發(fā)后門、怎么在保證觸發(fā)器的隱蔽性的前提下修改數(shù)據(jù)集,這都是后續(xù)需要探討的問題。
本文認(rèn)為PEZ方法本身存在較大的缺陷,它并沒有結(jié)合真實存在的詞去做優(yōu)化,而僅僅考慮優(yōu)化之后去找最相近的詞,這就會導(dǎo)致PEZ優(yōu)化得到的部分詞嵌入向量可能和真實的詞嵌入向量距離較遠。
圖3是利用t-SNE[17]繪制得到的有關(guān)部分詞嵌入的散點圖,其中三角形的點表示優(yōu)化得到的詞令牌,星形的點表示對應(yīng)的點積相似度最近的真實詞令牌,圓形的點表示真實的詞令牌??梢杂^察到PEZ方法優(yōu)化得到的詞令牌有部分脫離了真實詞令牌的區(qū)域,即有部分優(yōu)化得到的詞向量其實不能對應(yīng)到真實的詞向量,但最鄰近算法會強迫它們找到一個或幾個真實詞向量進行替換,由此產(chǎn)生了極大的誤差,這可能限制了它在后門識別任務(wù)中的表現(xiàn)上限。
圖3 詞嵌入散點圖
本文實驗探究了基于梯度優(yōu)化的后門識別重要方法PEZ中影響因子的設(shè)置對識別效果的影響。從實驗結(jié)論可以發(fā)現(xiàn),單一地調(diào)節(jié)某一個影響因子確實可以使某個指標(biāo)有所提升,但也可能會帶來另一指標(biāo)的下降,要想取得在綜合表現(xiàn)上的最高點,需要同時調(diào)節(jié)多個參數(shù)并且取到適中的值。同時,PEZ方法在優(yōu)化中進行替換梯度的操作會引入誤差,從而降低后門識別的表現(xiàn)效果,未來研究會在此方面尋求改進。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2023年12期