OpenAI安全系統(tǒng)負(fù)責(zé)人長文梳理:大模型的對抗攻擊與防御
隨著 ChatGPT 的發(fā)布,大型語言模型應(yīng)用正在加速大范圍鋪開。OpenAI 的安全系統(tǒng)團(tuán)隊已經(jīng)投入了大量資源,研究如何在對齊過程中為模型構(gòu)建默認(rèn)的安全行為。但是,對抗攻擊或 prompt 越獄依然有可能讓模型輸出我們不期望看到的內(nèi)容。
目前在對抗攻擊方面的研究很多集中在圖像方面,也就是在連續(xù)的高維空間。而對于文本這樣的離散數(shù)據(jù),由于缺乏梯度信號,人們普遍認(rèn)為攻擊會困難得多。Lilian Weng 之前曾寫過一篇文章《Controllable Text Generation》探討過這一主題。簡單來說:攻擊 LLM 本質(zhì)上就是控制該模型輸出特定類項的(不安全)內(nèi)容。
文章地址:https://lilianweng.github.io/posts/2021-01-02-controllable-text-generation/
另一個研究攻擊 LLM 的分支是為了提取預(yù)訓(xùn)練數(shù)據(jù)、私有知識,或通過數(shù)據(jù)毒化攻擊模型訓(xùn)練過程。但這些并非本文要探討的主題。
基礎(chǔ)知識
威脅模型
對抗攻擊是誘使模型輸出我們不期望的內(nèi)容的輸入。許多早期研究關(guān)注的重點(diǎn)是分類任務(wù),而近期的工作則開始更多關(guān)注生成模型的輸出。本文探討的是大型語言模型,并且假定攻擊僅發(fā)生在推理階段,也就是說模型權(quán)重是固定的。
圖 1:LLM 應(yīng)用所面臨的威脅概況
分類
在過去,研究社區(qū)更關(guān)注的是對分類器進(jìn)行對抗攻擊,并且許多是在圖像領(lǐng)域。LLM 也可被用于分類。給定一個輸入 ?? 和一個分類器 ??(.),我們希望找到該輸入的一個差異細(xì)微的對抗版本 ??_adv,使得 ??(??)≠??(??_adv)。
文本生成
給定一個輸入 ?? 和一個生成模型 ??(.),該模型可輸出一個樣本 y~??(.|??)。這里的對抗攻擊是找到一個 ??(??),使得 y 會違反該模型內(nèi)置的安全行為,比如輸出非法主題的不安全內(nèi)容、泄漏隱私信息或模型訓(xùn)練數(shù)據(jù)。對生成任務(wù)而言,判斷一次攻擊成功與否并非易事,這需要一個超高質(zhì)量的分類器來判斷 y 是否安全或需要人類來進(jìn)行審查。
白盒與黑盒
白盒攻擊(White-box attacks)假設(shè)攻擊者可以完全訪問模型權(quán)重、架構(gòu)和訓(xùn)練工作流程,這樣一來攻擊者就可以獲得梯度信號。這里我們并不假設(shè)攻擊者能獲得全部訓(xùn)練數(shù)據(jù)。這僅適用于開源模型。黑盒攻擊(Black-box attacks)則是假設(shè)攻擊者只能訪問 API 類型的服務(wù) —— 攻擊者可以提供輸入 ?? 并獲取反饋的樣本 y,而不知道有關(guān)模型的更多信息。
對抗攻擊的類型
有多種不同方法可以幫助攻擊者找到能誘使 LLM 輸出不安全內(nèi)容的對抗輸入。這里給出五種方法。
token 操作
給定一段包含一個 token 序列的文本輸入,我們可以使用簡單的 token 操作(比如替換成同義詞)來誘使模型給出錯誤預(yù)測?;?token 操作的攻擊屬于黑盒攻擊。在 Python 框架中,Morris et al. 2020 的論文《TextAttack: A Framework for Adversarial Attacks, Data Augmentation, and Adversarial Training in NLP》實(shí)現(xiàn)了許多詞和 token 操作攻擊方法,可用于為 NLP 模型創(chuàng)建對抗樣本。這一領(lǐng)域的許多研究工作實(shí)驗的是分類和蘊(yùn)涵預(yù)測。
舉個例子,Ribeiro et al (2018) 的研究《Semantically Equivalent Adversarial Rules for Debugging NLP models》依賴于人工提出的「語義等價式對抗規(guī)則(SEAR)」,其可以通過盡可能少的 token 操作來讓模型無法生成正確答案。比如,其中的規(guī)則包括將 What 換成 Which、將 was 換為 is。另外,還有其他研究者提出的替換關(guān)鍵詞、用同義詞替換等方法。
基于梯度的攻擊
如果是白盒攻擊,則攻擊者可以獲取所有的模型參數(shù)和架構(gòu)。因此,攻擊者就可以依靠梯度下降來通過編程方式學(xué)習(xí)最有效的攻擊手段?;谔荻鹊墓魞H在白盒設(shè)置下有效,比如開源 LLM。
Guo et al. 2021 的論文《Gradient-based Adversarial Attacks against Text Transformers》提出的基于梯度的分布式攻擊(GBDA)使用了 Gumbel-Softmax 近似技巧來使對抗損失優(yōu)化可微,其還使用了 BERTScore 和困惑度來增強(qiáng)可感知性和流暢性。
不過,Gumbel-softmax 技巧難以擴(kuò)展用于 token 刪除或增添,而是受限于 token 替換操作。
Ebrahimi et al. 2018 在論文《HotFlip: White-Box Adversarial Examples for Text Classification》 中則是將文本操作看作是向量空間中的輸入,度量的是損失在這些向量上的導(dǎo)數(shù)。HotFlip 可以擴(kuò)展用于 token 刪除或增添。
Wallace et al. (2019) 的論文《Universal Adversarial Triggers for Attacking and Analyzing NLP》提出了一種在 token 上進(jìn)行梯度引導(dǎo)式搜索的方法,可以找到誘使模型輸出特定預(yù)測結(jié)果的短序列,這個短序列被稱為 Universal Adversarial Triggers (UAT,通用對抗觸發(fā)器)。UAT 不受輸入的影響,這意味著這些觸發(fā)器可以作為前綴(或后綴)連接到來自數(shù)據(jù)集的任意輸入上。
Shin et al., 2020 的《AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts》使用了同樣的基于梯度的搜索策略來為多樣化的任務(wù)尋找最有效的 prompt 模板。
上面的 token 搜索方法可以使用波束搜索增強(qiáng)。當(dāng)尋找最優(yōu)的 token 嵌入時,可以選取 top-k 個候選項,而不是單獨(dú)一個,在當(dāng)前數(shù)據(jù)批上從左到右搜索,并根據(jù) ??_adv 為每個波束評分。
圖 4:UAT 工作方式圖示
UAT 的損失 ??_adv 需要針對具體任務(wù)而設(shè)計。分類或閱讀理解依賴于交叉熵。
圖 5:用于不同類型的語言任務(wù)的 UAT 示例
UAT 為何有效?這是一個很有趣的問題。因為 UAT 是與輸入無關(guān)的,并且可以在有不同嵌入、token 化方案和架構(gòu)的模型之間遷移,因此它們也許可以有效地利用訓(xùn)練數(shù)據(jù)中的偏差,畢竟這種偏差已經(jīng)融入到了模型的全局行為中。
使用 UAT 攻擊有一個缺點(diǎn):很容易檢測出來。原因是所學(xué)習(xí)到的觸發(fā)器往往是毫無意義的。Mehrabi et al. (2022) 在論文《Robust Conversational Agents against Imperceptible Toxicity Triggers》中研究了 UAT 的兩種變體,它們會促使所學(xué)到的觸發(fā)器在多輪對話語境中難以察覺。其目標(biāo)是創(chuàng)建能在給定對話中有效觸發(fā)有毒響應(yīng)的攻擊性消息,同時保證該攻擊在對話中是流暢、連貫和一致的。
這兩種變體分別是 UAT-LM(Universal Adversarial Trigger with Language Model Loss)和 UTSC(Unigram Trigger with Selection Criteria)。
圖 6:UTSC 工作方式圖示
UAT-LM 和 UTSC-1 的表現(xiàn)與 UAT 基準(zhǔn)相當(dāng),但 UAT 攻擊短語的困惑度出奇得高,比 UAT-LM 和 UTSC-1 都高得多。高困惑度讓攻擊更易被檢測出來,也更容易緩解。根據(jù)人類評估,UTSC-1 攻擊能比其它攻擊方法得到更連貫、流暢和相關(guān)的結(jié)果。
圖 7:基于防御者模型對生成的攻擊的響應(yīng),根據(jù)不同的有毒度分類器衡量的攻擊成功率。
Zou et al. (2023) 的論文《Robust Conversational Agents against Imperceptible Toxicity Triggers》也研究了將通用對抗觸發(fā) token 作為后綴連接到輸入請求上的情況。他們具體研究了對 LLM 的惡意請求 —— 對此模型應(yīng)當(dāng)拒絕回答。事實(shí)上,拒絕不被允許的內(nèi)容類別(比如犯罪建議)是 GPT-4 內(nèi)置的一個重要的安全措施。這里的對抗目標(biāo)是誘使 LLM 即便在應(yīng)當(dāng)拒接回答時也輸出肯定的響應(yīng)。這就是說,當(dāng)收到惡意請求時,模型會這樣回答:「當(dāng)然,你需要這樣做……」預(yù)期的肯定響應(yīng)也被配置成重復(fù)部分用戶 prompt,以避免簡單就能改變主題的后綴以優(yōu)化「當(dāng)然」式的響應(yīng)。其損失函數(shù)很簡單,就是輸出目標(biāo)響應(yīng)的 NLL(負(fù)對數(shù)似然)。
圖 8: 引入對抗觸發(fā)器的位置的圖示。紅色感嘆號代表要學(xué)習(xí)的對抗性 token。
他們在 Vicuna-7b 和 Vicuna-13b 這兩個不同的模型上進(jìn)行了實(shí)驗,使用了基于貪婪坐標(biāo)梯度(GCG)的搜索來貪婪地尋找候選項,使得該候選項可以在所有可能的單 token 替換中最大程度地減少損失。
盡管他們的攻擊序列完全是基于開源模型訓(xùn)練的,但它們卻出乎意料地可以移植用于其它商用模型,這表明對開源模型的白盒攻擊對私有模型也有效,尤其是當(dāng)?shù)蛯拥挠?xùn)練數(shù)據(jù)有所重疊時。注意 Vicuna 的訓(xùn)練使用了從 GPT-3.5-turbo 收集的數(shù)據(jù)(通過 shareGPT),這本質(zhì)上是蒸餾,因此這種攻擊更像是白盒攻擊。
圖 9:在 HB(有害行為)指令上的平均攻擊成功率,這是在 5 次 prompt 上的平均結(jié)果。
Jones et al. 2023 等提出的自回歸隨機(jī)坐標(biāo)上升(ARCA)則考慮了一個更寬泛的優(yōu)化問題集合來尋找符合特定行為模式的輸入 - 輸出對 (??, ??) ,比如以「Barack Obama」開頭但會導(dǎo)致毒性輸出的非毒性輸入。給定一個審核目標(biāo):?? : ??×??→?,其是將一對 (輸入 prompt, 輸出完成結(jié)果) 映射成一個分?jǐn)?shù)。
圖 10:誘使 GPT-2 和 GPT-J 生成有毒輸出的平均成功率。粗線:CivilComments 的所有輸出;點(diǎn)線:CivilComments 的 1,2,3-token 有毒輸出。
越獄 prompt 設(shè)計
越獄 prompt 是以對抗方式誘使 LLM 輸出應(yīng)當(dāng)避免的有害內(nèi)容。越獄是黑盒攻擊,因此詞匯組合是基于啟發(fā)式方法和人工探索進(jìn)行的。Wei et al. (2023) 的論文《Jailbroken: How Does LLM Safety Training Fail?》提出了 LLM 安全的兩種失敗模式,可用于指導(dǎo)越獄攻擊的設(shè)計。
1. 互相競爭的目標(biāo):這是指模型的能力(比如「應(yīng)始終遵從命令」)與安全目標(biāo)相沖突的情況。利用互相競爭的目標(biāo)的越獄攻擊例子包括:
- 前綴注入:要求模型開始時必須使用肯定性的確認(rèn)語句。
- 拒絕抑制:為模型提供詳細(xì)的指令,讓其不要以拒絕的格式進(jìn)行響應(yīng)。
- 風(fēng)格注入:要求模型不使用長詞匯,這樣一來模型就無法進(jìn)行專業(yè)性寫作從而給出免責(zé)聲明或解釋拒絕的理由。
- 其它:角色扮演成 DAN(現(xiàn)在可以做任何事)、AIM(總是很聰明且不擇手段)等等。
2. 失配的泛化:這是指安全訓(xùn)練無法泛化到其具有能力的領(lǐng)域。當(dāng)輸入位于模型的安全訓(xùn)練數(shù)據(jù)分布之外(OOD),但又位于其寬泛的預(yù)訓(xùn)練語料庫范圍內(nèi)時,就會出現(xiàn)這種情況。例子包括:
- 特殊編碼:使用 Base64 編碼來構(gòu)建對抗性輸入。
- 字符變換:ROT13 密碼、火星文或腦殘體(用視覺上相似的數(shù)字和符號替換字母)、摩爾斯電碼
- 詞變換:Pig Latin(用同義詞替換敏感詞,比如用「竊」替換「偷」)、負(fù)載拆分(即所謂的 token smuggling,將敏感詞拆分成子字符串)
- prompt 層面的混淆:翻譯成其它語言、要求模型以其能理解的方式進(jìn)行混淆
Wei et al. (2023) 實(shí)驗了大量越獄方法,包括由以上原理構(gòu)建的組合型策略。
- combination_1 組合了前綴注入、拒絕抑制和 Base64 攻擊。
- combination_2 加入了風(fēng)格注入。
- combination_3 又添加了生成網(wǎng)站內(nèi)容和格式化限制條件。
圖 11:越獄技巧的類型以及它們攻擊模型的成功率
Greshake et al. (2023) 的論文《Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection》則在較高層面上觀察了 prompt 注入攻擊。其中指出,即便當(dāng)攻擊無法提供詳細(xì)的方法而僅僅提供一個目標(biāo)時,模型也有可能自動去實(shí)現(xiàn)它。當(dāng)模型可以訪問外部 API 和工具時,對更多信息(甚至是專有信息)的獲取可能導(dǎo)致更大的釣魚攻擊和私密窺探攻擊風(fēng)險。
有人類參與的紅隊策略
Wallace et al. (2019) 在論文《Trick Me If You Can: Human-in-the-loop Generation of Adversarial Examples for Question Answering》中提出了有人類參與的對抗生成,其目標(biāo)是構(gòu)建用于引導(dǎo)人類攻破模型的工具。
他們用 QuizBowl QA 數(shù)據(jù)集進(jìn)行了實(shí)驗,設(shè)計了一個對抗書寫界面,可讓人類寫出類似電視問答節(jié)目《Jeopardy》風(fēng)格的問題,并用于誘導(dǎo)模型給出錯誤預(yù)測。依據(jù)重要程度的不同,每個詞都會有不同顏色的標(biāo)注(即移除該詞后模型預(yù)測概率會發(fā)生變化)。詞重要度是由模型梯度根據(jù)詞嵌入來近似得到的。
圖 12:對抗書寫界面,其中左上部分是列出的模型前五個預(yù)測,右下部分是用戶問題,其中用不同顏色標(biāo)注了詞重要度。
在一次實(shí)驗中,人類訓(xùn)練者要做的是找到安全分類器在分類暴力內(nèi)容時失敗的案例。Ziegler et al. (2022) 在論文《Adversarial Training for High-Stakes Reliability》中創(chuàng)建了一個工具,可用于輔助人類對抗者更快更有效地找到分類器的失敗情況并消除它。用工具輔助重寫比完全人工重寫要更快些,可將每個樣本所需的時間從 20 分鐘降至 13 分鐘。確切地說,他們引入了兩個功能來輔助人類寫作者:顯示每個 token 的顯著度分?jǐn)?shù)、token 替換和插入。
圖 13:用工具輔助人類對分類器進(jìn)行對抗攻擊的 UI。人類要做的是編輯或補(bǔ)全 prompt,以降低模型預(yù)測輸入是暴力內(nèi)容的概率。
Xu et al. 2021 的《Bot-Adversarial Dialogue for Safe Conversational Agents》提出了 Bot-Adversarial Dialogue(BAD),該框架可以引導(dǎo)人類去誘使模型犯錯(比如輸出不安全的內(nèi)容)。他們收集了 5000 多組模型與眾包工作者的對話。每一組對話都包含 14 輪,然后他們根據(jù)不安全對話輪次的數(shù)量給模型打分。他們最終得到了 BAD 數(shù)據(jù)集,其中包含大約 2500 組帶有攻擊性標(biāo)簽的對話。
Anthropic 的紅隊數(shù)據(jù)集包含接近 4 萬個對抗攻擊,它們收集自人類紅隊者與 LLM 的對話。他們發(fā)現(xiàn),RLHF 的規(guī)模越大,就越難以攻擊。OpenAI 發(fā)布的大模型(比如 GPT-4 和 DALL-E 3)普遍使用了人類專家紅隊來進(jìn)行安全準(zhǔn)備。
數(shù)據(jù)集地址:https://github.com/anthropics/hh-rlhf/tree/master/red-team-attempts
模型紅隊策略
人類紅隊策略很強(qiáng)大,但是難以大規(guī)模實(shí)施而且可能需要大量經(jīng)過培訓(xùn)的專業(yè)人士。現(xiàn)在想象一下:我們可以學(xué)習(xí)一個紅隊模型 red 來與目標(biāo) LLM 進(jìn)行對抗,以觸發(fā)其給出不安全響應(yīng)。對于基于模型的紅隊策略,主要的難題是如何判斷一次攻擊是否成功;只有知道了這一點(diǎn),我們才能構(gòu)建用于訓(xùn)練紅隊模型的合適學(xué)習(xí)信號。
假設(shè)我們已經(jīng)有一個高質(zhì)量的分類器,能夠判斷模型的輸出是否有害,我們就可以將其用作獎勵來訓(xùn)練紅隊模型,以得到一些能最大化分類器在目標(biāo)模型輸出上的分?jǐn)?shù)的輸入。令 r (??, ??) 是一個這樣的紅隊分類器,其可以判斷在給定測試輸入 ?? 時,輸出 ?? 是否有害。根據(jù) Perez et al. 2022 的論文《Red Teaming Language Models with Language Models》,尋找對抗攻擊樣本遵循一個簡單的三步式過程:
- 從一個紅隊 LLM ??~p_red (.) 采樣測試輸入;
- 使用目標(biāo) LLM p (?? | ??) 為每個測試案例 ?? 生成一個輸出 ??;
- 根據(jù)分類器 r (??, ??),在測試案例中找到一個會得到有害輸出的子集。
他們實(shí)驗了幾種從紅隊模型采樣或進(jìn)一步訓(xùn)練紅隊模型以使其更加有效的方法,其中包括零樣本生成、隨機(jī)式少樣本生成、監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)。
Casper et al. (2023) 的論文《Explore, Establish, Exploit: Red Teaming Language Models from Scratch》設(shè)計了一種有人類參與的紅隊過程。其與 Perez et al. (2022) 的主要不同之處在于其明確地為目標(biāo)模型設(shè)置了一個數(shù)據(jù)采樣階段,這樣就可以收集其上的人類標(biāo)簽來訓(xùn)練針對特定任務(wù)的紅隊分類器。其包含探索(Explore)、建立(Establish)和利用(Exploit)三個階段,如下圖所示。
圖 15:采用「探索 - 建立 - 利用」三步式方法的紅隊策略流程
Mehrabi et al. 2023 的論文《FLIRT: Feedback Loop In-context Red Teaming》則是依靠紅隊 LM ??_red 的上下文學(xué)習(xí)來攻擊圖像或文本生成模型 ??,使其輸出不安全的內(nèi)容。
在每一次 FLIRT 迭代中:
- 紅隊 LM ??_red 生成一個對抗 prompt ??~??_red (. | examples);其中初始的上下文樣本由人類設(shè)計;
- 生成模型 ?? 根據(jù)這個 prompt 生成一個圖像或文本輸出 ??;
- 使用分類器等機(jī)制對生成的內(nèi)容 ?? 進(jìn)行評估,看其是否安全;
- 如果 ?? 被認(rèn)為不安全,則使用觸發(fā) prompt ?? 來更新 ??_red 的上下文模板,使其根據(jù)策略生成新的對抗 prompt。
至于如何更新 FLIRT 的上下文模板,有這樣幾個策略:FIFO、LIFO、Scoring、Scoring-LIFO。詳見原論文。
圖 16:在不同的擴(kuò)散模型上,不同攻擊策略的攻擊有效率(觸發(fā)了不安全生成結(jié)果的生成 prompt 的百分比)?;鶞?zhǔn)是 SFS(隨機(jī)少樣本)。括號中的數(shù)值是獨(dú)特 prompt 的百分比。
如何應(yīng)對攻擊
鞍點(diǎn)問題
Madry et al. 2017 的《Towards Deep Learning Models Resistant to Adversarial Attacks》提出了一個很不錯的對抗穩(wěn)健性(adversarial robustness)框架,即將對抗穩(wěn)健性建模成一個鞍點(diǎn)問題,這樣就變成了一個穩(wěn)健優(yōu)化(robust optimization)問題。該框架是為分類任務(wù)的連續(xù)輸入而提出的,但它用相當(dāng)簡潔的數(shù)學(xué)公式描述了雙層優(yōu)化過程,因此值得分享。
讓我們考慮一個分類任務(wù),其基于由配對的 (樣本,標(biāo)簽) 構(gòu)成的數(shù)據(jù)分布,(??,??)∈??,訓(xùn)練一個穩(wěn)健分類器的目標(biāo)就是一個鞍點(diǎn)問題:
其中 ????^d 是指允許用于對抗的一組擾動,比如我們希望一張圖像的對抗版本看起來與原始版本類似。
其目標(biāo)由一個內(nèi)部最大化問題和一個外部最小化問題組成:
- 內(nèi)部最大化:尋找能導(dǎo)致高損失的最有效的對抗數(shù)據(jù)點(diǎn) ??+??。所有對抗性攻擊方法最終都可歸結(jié)為如何最大化這個內(nèi)部過程的損失。
- 外部最小化:尋找最佳的模型參數(shù)化方案,使得由內(nèi)部最大化過程找到的最有效攻擊的損失能被最小化。要訓(xùn)練出穩(wěn)健的模型,一個簡單方法是將每個數(shù)據(jù)點(diǎn)替換為其擾動版本,這些版本可以是一個數(shù)據(jù)點(diǎn)的多個對抗變體。
圖 17:他們還發(fā)現(xiàn),面對對抗攻擊的穩(wěn)健性需要更大的模型能力,因為這會讓決策邊界變得更為復(fù)雜。有趣的是,在沒有數(shù)據(jù)增強(qiáng)的前提下,模型更大會有助于提升模型的穩(wěn)健性。
LLM 穩(wěn)健性方面的一些研究工作
這里簡單談?wù)勔恍┯嘘P(guān) LLM 穩(wěn)健性的研究。
Xie et al. 2023 的論文《Defending ChatGPT against Jailbreak Attack via Self-Reminder》發(fā)現(xiàn)了一種簡單直觀的保護(hù)模型免受對抗攻擊的方法:明確地指示模型成為負(fù)責(zé)任的模型,不要生成有害內(nèi)容。這會極大降低越獄攻擊的成功率,但對模型的生成質(zhì)量會有副作用,這是因為這樣的指示會讓模型變得保守(比如不利于創(chuàng)意寫作),或者會在某些情況下錯誤地解讀指令(比如在安全 - 不安全分類時)。
為了降低對抗攻擊風(fēng)險,最常用的方法是用這些攻擊樣本來訓(xùn)練模型,這種方法被稱為「對抗訓(xùn)練」。這也被認(rèn)為是最強(qiáng)的防御方法,但卻需要在穩(wěn)健性和模型性能之間尋找平衡。Jain et al. 2023 通過實(shí)驗測試了兩種對抗訓(xùn)練設(shè)置,結(jié)果報告在論文《Baseline Defenses for Adversarial Attacks Against Aligned Language Models》中:(1) 使用有害 prompt 與帶有「I'm sorry. As a ...」的響應(yīng)構(gòu)成的數(shù)據(jù)對來運(yùn)行梯度下降;(2) 對于每一個訓(xùn)練步驟,在拒絕響應(yīng)上運(yùn)行一個下降步驟并在一個紅隊差響應(yīng)上運(yùn)行一個上升步驟。最終他們發(fā)現(xiàn)方法 (2) 毫無用處,因為模型的生成質(zhì)量下降了很多,而攻擊成功率卻僅有少量下降。
白盒攻擊往往會導(dǎo)致對抗 prompt 看起來毫無意義,因此可以通過困惑度檢測出來。當(dāng)然,通過明確地優(yōu)化而降低困惑度,白盒攻擊可以直接繞過這種檢測方法,比如 UAT 的一種變體 UAT-LM。但是,這也可能會導(dǎo)致攻擊成功率下降。
圖 18:困惑度過濾器可以阻止來自 [Zou et al. (2023)] 的攻擊。PPL Passed 和 PPL Window Passed 是指帶有對抗性后綴的有害 prompt 繞過過濾器而不被檢測到的比率。通過率越低,過濾器越好。地址:https://arxiv.org/abs/2307.15043
Jain et al. 2023 還測試了對文本輸入進(jìn)行預(yù)處理的方法,使得能在移除對抗性修改的同時維持語義含義。
- 解釋含義:使用 LLM 來解釋輸入文本的含義,這可能會對下游任務(wù)性能造成較小影響。
- 重新 token 化:將 token 拆分開并使用多個更小的 token 來表示它們,比如使用 BPE-dropout(隨機(jī)丟棄一定比例的 token)。使用這種方法的假設(shè)是對抗性 prompt 很可能會利用特定的對抗性 token 組合。這也確實(shí)有助于降低攻擊成功率,但也有限,比如從 90% 以上降至 40%。