成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenAI安全系統負責人長文梳理:大模型的對抗攻擊與防御

人工智能 新聞
LLM 能力強大,倘若別有用心之人用其來干壞事,可能會造成難以預料的嚴重后果。雖然大多數商用和開源 LLM 都存在一定的內置安全機制,但卻并不一定能防御形式各異的對抗攻擊。近日,OpenAI 安全系統(Safety Systems)團隊負責人 Lilian Weng 發布了一篇博客文章《Adversarial Attacks on LLMs》,梳理了針對 LLM 的對抗攻擊類型并簡單介紹了一些防御

隨著 ChatGPT 的發布,大型語言模型應用正在加速大范圍鋪開。OpenAI 的安全系統團隊已經投入了大量資源,研究如何在對齊過程中為模型構建默認的安全行為。但是,對抗攻擊或 prompt 越獄依然有可能讓模型輸出我們不期望看到的內容。

目前在對抗攻擊方面的研究很多集中在圖像方面,也就是在連續的高維空間。而對于文本這樣的離散數據,由于缺乏梯度信號,人們普遍認為攻擊會困難得多。Lilian Weng 之前曾寫過一篇文章《Controllable Text Generation》探討過這一主題。簡單來說:攻擊 LLM 本質上就是控制該模型輸出特定類項的(不安全)內容。

文章地址:https://lilianweng.github.io/posts/2021-01-02-controllable-text-generation/ 

另一個研究攻擊 LLM 的分支是為了提取預訓練數據、私有知識,或通過數據毒化攻擊模型訓練過程。但這些并非本文要探討的主題。

基礎知識

威脅模型

對抗攻擊是誘使模型輸出我們不期望的內容的輸入。許多早期研究關注的重點是分類任務,而近期的工作則開始更多關注生成模型的輸出。本文探討的是大型語言模型,并且假定攻擊僅發生在推理階段,也就是說模型權重是固定的。

圖片

圖 1:LLM 應用所面臨的威脅概況

分類

在過去,研究社區更關注的是對分類器進行對抗攻擊,并且許多是在圖像領域。LLM 也可被用于分類。給定一個輸入 ?? 和一個分類器 ??(.),我們希望找到該輸入的一個差異細微的對抗版本 ??_adv,使得 ??(??)≠??(??_adv)。

文本生成

給定一個輸入 ?? 和一個生成模型 ??(.),該模型可輸出一個樣本 y~??(.|??)。這里的對抗攻擊是找到一個 ??(??),使得 y 會違反該模型內置的安全行為,比如輸出非法主題的不安全內容、泄漏隱私信息或模型訓練數據。對生成任務而言,判斷一次攻擊成功與否并非易事,這需要一個超高質量的分類器來判斷 y 是否安全或需要人類來進行審查。

白盒與黑盒

白盒攻擊(White-box attacks)假設攻擊者可以完全訪問模型權重、架構和訓練工作流程,這樣一來攻擊者就可以獲得梯度信號。這里我們并不假設攻擊者能獲得全部訓練數據。這僅適用于開源模型。黑盒攻擊(Black-box attacks)則是假設攻擊者只能訪問 API 類型的服務 —— 攻擊者可以提供輸入 ?? 并獲取反饋的樣本 y,而不知道有關模型的更多信息。

對抗攻擊的類型

有多種不同方法可以幫助攻擊者找到能誘使 LLM 輸出不安全內容的對抗輸入。這里給出五種方法。

圖片

token 操作

給定一段包含一個 token 序列的文本輸入,我們可以使用簡單的 token 操作(比如替換成同義詞)來誘使模型給出錯誤預測。基于 token 操作的攻擊屬于黑盒攻擊。在 Python 框架中,Morris et al. 2020 的論文《TextAttack: A Framework for Adversarial Attacks, Data Augmentation, and Adversarial Training in NLP》實現了許多詞和 token 操作攻擊方法,可用于為 NLP 模型創建對抗樣本。這一領域的許多研究工作實驗的是分類和蘊涵預測。

舉個例子,Ribeiro et al (2018) 的研究《Semantically Equivalent Adversarial Rules for Debugging NLP models》依賴于人工提出的「語義等價式對抗規則(SEAR)」,其可以通過盡可能少的 token 操作來讓模型無法生成正確答案。比如,其中的規則包括將 What 換成 Which、將 was 換為 is。另外,還有其他研究者提出的替換關鍵詞、用同義詞替換等方法。

基于梯度的攻擊

如果是白盒攻擊,則攻擊者可以獲取所有的模型參數和架構。因此,攻擊者就可以依靠梯度下降來通過編程方式學習最有效的攻擊手段。基于梯度的攻擊僅在白盒設置下有效,比如開源 LLM。

Guo et al. 2021 的論文《Gradient-based Adversarial Attacks against Text Transformers》提出的基于梯度的分布式攻擊(GBDA)使用了 Gumbel-Softmax 近似技巧來使對抗損失優化可微,其還使用了 BERTScore 和困惑度來增強可感知性和流暢性。

不過,Gumbel-softmax 技巧難以擴展用于 token 刪除或增添,而是受限于 token 替換操作。

Ebrahimi et al. 2018 在論文《HotFlip: White-Box Adversarial Examples for Text Classification》 中則是將文本操作看作是向量空間中的輸入,度量的是損失在這些向量上的導數。HotFlip 可以擴展用于 token 刪除或增添。

Wallace et al. (2019) 的論文《Universal Adversarial Triggers for Attacking and Analyzing NLP》提出了一種在 token 上進行梯度引導式搜索的方法,可以找到誘使模型輸出特定預測結果的短序列,這個短序列被稱為 Universal Adversarial Triggers (UAT,通用對抗觸發器)。UAT 不受輸入的影響,這意味著這些觸發器可以作為前綴(或后綴)連接到來自數據集的任意輸入上。

Shin et al., 2020 的《AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts》使用了同樣的基于梯度的搜索策略來為多樣化的任務尋找最有效的 prompt 模板。

上面的 token 搜索方法可以使用波束搜索增強。當尋找最優的 token 嵌入時,可以選取 top-k 個候選項,而不是單獨一個,在當前數據批上從左到右搜索,并根據 ??_adv 為每個波束評分。

圖片

圖 4:UAT 工作方式圖示

UAT 的損失 ??_adv 需要針對具體任務而設計。分類或閱讀理解依賴于交叉熵。

圖片

圖 5:用于不同類型的語言任務的 UAT 示例

UAT 為何有效?這是一個很有趣的問題。因為 UAT 是與輸入無關的,并且可以在有不同嵌入、token 化方案和架構的模型之間遷移,因此它們也許可以有效地利用訓練數據中的偏差,畢竟這種偏差已經融入到了模型的全局行為中。

使用 UAT 攻擊有一個缺點:很容易檢測出來。原因是所學習到的觸發器往往是毫無意義的。Mehrabi et al. (2022) 在論文《Robust Conversational Agents against Imperceptible Toxicity Triggers》中研究了 UAT 的兩種變體,它們會促使所學到的觸發器在多輪對話語境中難以察覺。其目標是創建能在給定對話中有效觸發有毒響應的攻擊性消息,同時保證該攻擊在對話中是流暢、連貫和一致的。

這兩種變體分別是 UAT-LM(Universal Adversarial Trigger with Language Model Loss)和 UTSC(Unigram Trigger with Selection Criteria)。

圖片

圖 6:UTSC 工作方式圖示

UAT-LM 和 UTSC-1 的表現與 UAT 基準相當,但 UAT 攻擊短語的困惑度出奇得高,比 UAT-LM 和 UTSC-1 都高得多。高困惑度讓攻擊更易被檢測出來,也更容易緩解。根據人類評估,UTSC-1 攻擊能比其它攻擊方法得到更連貫、流暢和相關的結果。

圖片

圖 7:基于防御者模型對生成的攻擊的響應,根據不同的有毒度分類器衡量的攻擊成功率。

Zou et al. (2023) 的論文《Robust Conversational Agents against Imperceptible Toxicity Triggers》也研究了將通用對抗觸發 token 作為后綴連接到輸入請求上的情況。他們具體研究了對 LLM 的惡意請求 —— 對此模型應當拒絕回答。事實上,拒絕不被允許的內容類別(比如犯罪建議)是 GPT-4 內置的一個重要的安全措施。這里的對抗目標是誘使 LLM 即便在應當拒接回答時也輸出肯定的響應。這就是說,當收到惡意請求時,模型會這樣回答:「當然,你需要這樣做……」預期的肯定響應也被配置成重復部分用戶 prompt,以避免簡單就能改變主題的后綴以優化「當然」式的響應。其損失函數很簡單,就是輸出目標響應的 NLL(負對數似然)。

圖片

圖 8: 引入對抗觸發器的位置的圖示。紅色感嘆號代表要學習的對抗性 token。

他們在 Vicuna-7b 和 Vicuna-13b 這兩個不同的模型上進行了實驗,使用了基于貪婪坐標梯度(GCG)的搜索來貪婪地尋找候選項,使得該候選項可以在所有可能的單 token 替換中最大程度地減少損失。

盡管他們的攻擊序列完全是基于開源模型訓練的,但它們卻出乎意料地可以移植用于其它商用模型,這表明對開源模型的白盒攻擊對私有模型也有效,尤其是當低層的訓練數據有所重疊時。注意 Vicuna 的訓練使用了從 GPT-3.5-turbo 收集的數據(通過 shareGPT),這本質上是蒸餾,因此這種攻擊更像是白盒攻擊。

圖片

圖 9:在 HB(有害行為)指令上的平均攻擊成功率,這是在 5 次 prompt 上的平均結果。

Jones et al. 2023 等提出的自回歸隨機坐標上升(ARCA)則考慮了一個更寬泛的優化問題集合來尋找符合特定行為模式的輸入 - 輸出對 (??, ??) ,比如以「Barack Obama」開頭但會導致毒性輸出的非毒性輸入。給定一個審核目標:?? : ??×??→?,其是將一對 (輸入 prompt, 輸出完成結果) 映射成一個分數。

圖片

圖 10:誘使 GPT-2 和 GPT-J 生成有毒輸出的平均成功率。粗線:CivilComments 的所有輸出;點線:CivilComments 的 1,2,3-token 有毒輸出。

越獄 prompt 設計

越獄 prompt 是以對抗方式誘使 LLM 輸出應當避免的有害內容。越獄是黑盒攻擊,因此詞匯組合是基于啟發式方法和人工探索進行的。Wei et al. (2023) 的論文《Jailbroken: How Does LLM Safety Training Fail?》提出了 LLM 安全的兩種失敗模式,可用于指導越獄攻擊的設計。

1. 互相競爭的目標:這是指模型的能力(比如「應始終遵從命令」)與安全目標相沖突的情況。利用互相競爭的目標的越獄攻擊例子包括:

  • 前綴注入:要求模型開始時必須使用肯定性的確認語句。
  • 拒絕抑制:為模型提供詳細的指令,讓其不要以拒絕的格式進行響應。
  • 風格注入:要求模型不使用長詞匯,這樣一來模型就無法進行專業性寫作從而給出免責聲明或解釋拒絕的理由。    
  • 其它:角色扮演成 DAN(現在可以做任何事)、AIM(總是很聰明且不擇手段)等等。    

2. 失配的泛化:這是指安全訓練無法泛化到其具有能力的領域。當輸入位于模型的安全訓練數據分布之外(OOD),但又位于其寬泛的預訓練語料庫范圍內時,就會出現這種情況。例子包括:

  • 特殊編碼:使用 Base64 編碼來構建對抗性輸入。    
  • 字符變換:ROT13 密碼、火星文或腦殘體(用視覺上相似的數字和符號替換字母)、摩爾斯電碼    
  • 詞變換:Pig Latin(用同義詞替換敏感詞,比如用「竊」替換「偷」)、負載拆分(即所謂的 token smuggling,將敏感詞拆分成子字符串) 
  • prompt 層面的混淆:翻譯成其它語言、要求模型以其能理解的方式進行混淆   

Wei et al. (2023) 實驗了大量越獄方法,包括由以上原理構建的組合型策略。

  • combination_1 組合了前綴注入、拒絕抑制和 Base64 攻擊。
  • combination_2 加入了風格注入。
  • combination_3 又添加了生成網站內容和格式化限制條件。

圖片

圖 11:越獄技巧的類型以及它們攻擊模型的成功率

Greshake et al. (2023) 的論文《Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection》則在較高層面上觀察了 prompt 注入攻擊。其中指出,即便當攻擊無法提供詳細的方法而僅僅提供一個目標時,模型也有可能自動去實現它。當模型可以訪問外部 API 和工具時,對更多信息(甚至是專有信息)的獲取可能導致更大的釣魚攻擊和私密窺探攻擊風險。

有人類參與的紅隊策略

Wallace et al. (2019) 在論文《Trick Me If You Can: Human-in-the-loop Generation of Adversarial Examples for Question Answering》中提出了有人類參與的對抗生成,其目標是構建用于引導人類攻破模型的工具。

他們用 QuizBowl QA 數據集進行了實驗,設計了一個對抗書寫界面,可讓人類寫出類似電視問答節目《Jeopardy》風格的問題,并用于誘導模型給出錯誤預測。依據重要程度的不同,每個詞都會有不同顏色的標注(即移除該詞后模型預測概率會發生變化)。詞重要度是由模型梯度根據詞嵌入來近似得到的。

圖片

圖 12:對抗書寫界面,其中左上部分是列出的模型前五個預測,右下部分是用戶問題,其中用不同顏色標注了詞重要度。

在一次實驗中,人類訓練者要做的是找到安全分類器在分類暴力內容時失敗的案例。Ziegler et al. (2022) 在論文《Adversarial Training for High-Stakes Reliability》中創建了一個工具,可用于輔助人類對抗者更快更有效地找到分類器的失敗情況并消除它。用工具輔助重寫比完全人工重寫要更快些,可將每個樣本所需的時間從 20 分鐘降至 13 分鐘。確切地說,他們引入了兩個功能來輔助人類寫作者:顯示每個 token 的顯著度分數、token 替換和插入。

圖片

圖 13:用工具輔助人類對分類器進行對抗攻擊的 UI。人類要做的是編輯或補全 prompt,以降低模型預測輸入是暴力內容的概率。

Xu et al. 2021 的《Bot-Adversarial Dialogue for Safe Conversational Agents》提出了 Bot-Adversarial Dialogue(BAD),該框架可以引導人類去誘使模型犯錯(比如輸出不安全的內容)。他們收集了 5000 多組模型與眾包工作者的對話。每一組對話都包含 14 輪,然后他們根據不安全對話輪次的數量給模型打分。他們最終得到了 BAD 數據集,其中包含大約 2500 組帶有攻擊性標簽的對話。

Anthropic 的紅隊數據集包含接近 4 萬個對抗攻擊,它們收集自人類紅隊者與 LLM 的對話。他們發現,RLHF 的規模越大,就越難以攻擊。OpenAI 發布的大模型(比如 GPT-4 和 DALL-E 3)普遍使用了人類專家紅隊來進行安全準備。

數據集地址:https://github.com/anthropics/hh-rlhf/tree/master/red-team-attempts

模型紅隊策略

人類紅隊策略很強大,但是難以大規模實施而且可能需要大量經過培訓的專業人士。現在想象一下:我們可以學習一個紅隊模型 red 來與目標 LLM 進行對抗,以觸發其給出不安全響應。對于基于模型的紅隊策略,主要的難題是如何判斷一次攻擊是否成功;只有知道了這一點,我們才能構建用于訓練紅隊模型的合適學習信號。

假設我們已經有一個高質量的分類器,能夠判斷模型的輸出是否有害,我們就可以將其用作獎勵來訓練紅隊模型,以得到一些能最大化分類器在目標模型輸出上的分數的輸入。令 r (??, ??) 是一個這樣的紅隊分類器,其可以判斷在給定測試輸入 ?? 時,輸出 ?? 是否有害。根據 Perez et al. 2022 的論文《Red Teaming Language Models with Language Models》,尋找對抗攻擊樣本遵循一個簡單的三步式過程:

  1. 從一個紅隊 LLM ??~p_red (.) 采樣測試輸入;
  2. 使用目標 LLM p (?? | ??) 為每個測試案例 ?? 生成一個輸出 ??;
  3. 根據分類器 r (??, ??),在測試案例中找到一個會得到有害輸出的子集。

他們實驗了幾種從紅隊模型采樣或進一步訓練紅隊模型以使其更加有效的方法,其中包括零樣本生成、隨機式少樣本生成、監督學習、強化學習。

Casper et al. (2023) 的論文《Explore, Establish, Exploit: Red Teaming Language Models from Scratch》設計了一種有人類參與的紅隊過程。其與 Perez et al. (2022) 的主要不同之處在于其明確地為目標模型設置了一個數據采樣階段,這樣就可以收集其上的人類標簽來訓練針對特定任務的紅隊分類器。其包含探索(Explore)、建立(Establish)和利用(Exploit)三個階段,如下圖所示。

圖片

圖 15:采用「探索 - 建立 - 利用」三步式方法的紅隊策略流程

Mehrabi et al. 2023 的論文《FLIRT: Feedback Loop In-context Red Teaming》則是依靠紅隊 LM ??_red 的上下文學習來攻擊圖像或文本生成模型 ??,使其輸出不安全的內容。

在每一次 FLIRT 迭代中:

  1. 紅隊 LM ??_red 生成一個對抗 prompt ??~??_red (. | examples);其中初始的上下文樣本由人類設計;
  2. 生成模型 ?? 根據這個 prompt 生成一個圖像或文本輸出 ??;
  3. 使用分類器等機制對生成的內容 ?? 進行評估,看其是否安全;
  4. 如果 ?? 被認為不安全,則使用觸發 prompt ?? 來更新 ??_red 的上下文模板,使其根據策略生成新的對抗 prompt。

至于如何更新 FLIRT 的上下文模板,有這樣幾個策略:FIFO、LIFO、Scoring、Scoring-LIFO。詳見原論文。

圖片

圖 16:在不同的擴散模型上,不同攻擊策略的攻擊有效率(觸發了不安全生成結果的生成 prompt 的百分比)。基準是 SFS(隨機少樣本)。括號中的數值是獨特 prompt 的百分比。

如何應對攻擊

鞍點問題

Madry et al. 2017 的《Towards Deep Learning Models Resistant to Adversarial Attacks》提出了一個很不錯的對抗穩健性(adversarial robustness)框架,即將對抗穩健性建模成一個鞍點問題,這樣就變成了一個穩健優化(robust optimization)問題。該框架是為分類任務的連續輸入而提出的,但它用相當簡潔的數學公式描述了雙層優化過程,因此值得分享。

讓我們考慮一個分類任務,其基于由配對的 (樣本,標簽) 構成的數據分布,(??,??)∈??,訓練一個穩健分類器的目標就是一個鞍點問題:

圖片

其中 ????^d 是指允許用于對抗的一組擾動,比如我們希望一張圖像的對抗版本看起來與原始版本類似。

其目標由一個內部最大化問題和一個外部最小化問題組成:

  • 內部最大化:尋找能導致高損失的最有效的對抗數據點 ??+??。所有對抗性攻擊方法最終都可歸結為如何最大化這個內部過程的損失。
  • 外部最小化:尋找最佳的模型參數化方案,使得由內部最大化過程找到的最有效攻擊的損失能被最小化。要訓練出穩健的模型,一個簡單方法是將每個數據點替換為其擾動版本,這些版本可以是一個數據點的多個對抗變體。

圖片

圖 17:他們還發現,面對對抗攻擊的穩健性需要更大的模型能力,因為這會讓決策邊界變得更為復雜。有趣的是,在沒有數據增強的前提下,模型更大會有助于提升模型的穩健性。

LLM 穩健性方面的一些研究工作

這里簡單談談一些有關 LLM 穩健性的研究。

Xie et al. 2023 的論文《Defending ChatGPT against Jailbreak Attack via Self-Reminder》發現了一種簡單直觀的保護模型免受對抗攻擊的方法:明確地指示模型成為負責任的模型,不要生成有害內容。這會極大降低越獄攻擊的成功率,但對模型的生成質量會有副作用,這是因為這樣的指示會讓模型變得保守(比如不利于創意寫作),或者會在某些情況下錯誤地解讀指令(比如在安全 - 不安全分類時)。

為了降低對抗攻擊風險,最常用的方法是用這些攻擊樣本來訓練模型,這種方法被稱為「對抗訓練」。這也被認為是最強的防御方法,但卻需要在穩健性和模型性能之間尋找平衡。Jain et al. 2023 通過實驗測試了兩種對抗訓練設置,結果報告在論文《Baseline Defenses for Adversarial Attacks Against Aligned Language Models》中:(1) 使用有害 prompt 與帶有「I'm sorry. As a ...」的響應構成的數據對來運行梯度下降;(2) 對于每一個訓練步驟,在拒絕響應上運行一個下降步驟并在一個紅隊差響應上運行一個上升步驟。最終他們發現方法 (2) 毫無用處,因為模型的生成質量下降了很多,而攻擊成功率卻僅有少量下降。

白盒攻擊往往會導致對抗 prompt 看起來毫無意義,因此可以通過困惑度檢測出來。當然,通過明確地優化而降低困惑度,白盒攻擊可以直接繞過這種檢測方法,比如 UAT 的一種變體 UAT-LM。但是,這也可能會導致攻擊成功率下降。

圖片

圖 18:困惑度過濾器可以阻止來自 [Zou et al. (2023)] 的攻擊。PPL Passed 和 PPL Window Passed 是指帶有對抗性后綴的有害 prompt 繞過過濾器而不被檢測到的比率。通過率越低,過濾器越好。地址:https://arxiv.org/abs/2307.15043

Jain et al. 2023 還測試了對文本輸入進行預處理的方法,使得能在移除對抗性修改的同時維持語義含義。

  • 解釋含義:使用 LLM 來解釋輸入文本的含義,這可能會對下游任務性能造成較小影響。
  • 重新 token 化:將 token 拆分開并使用多個更小的 token 來表示它們,比如使用 BPE-dropout(隨機丟棄一定比例的 token)。使用這種方法的假設是對抗性 prompt 很可能會利用特定的對抗性 token 組合。這也確實有助于降低攻擊成功率,但也有限,比如從 90% 以上降至 40%。
責任編輯:張燕妮 來源: 機器之心
相關推薦

2015-06-17 15:54:42

2014-11-10 10:33:37

2014-11-07 17:22:10

2014-05-21 16:04:38

面試面試規則

2021-01-10 21:16:23

IT負責人IT領導者首席技術專家

2019-12-17 05:11:25

車聯網智能汽車車聯網安全

2024-04-03 13:05:20

數據訓練

2025-01-07 11:57:25

2016-01-15 10:47:08

技術團隊能力

2023-05-19 21:09:22

人工智能

2011-08-23 17:02:37

FedoraLinux 20周年

2012-12-13 11:12:24

戴爾

2014-07-26 09:56:43

WOT2014敏捷開發PO

2009-12-23 09:45:31

微軟施密特

2013-04-17 10:56:10

ONFOpenDayligh標準協議

2011-03-11 13:18:44

2021-05-20 08:52:59

蘋果軟件MacOS系統惡意軟件

2015-04-03 17:04:13

2025-03-31 08:55:00

OpenAI模型AI

2024-11-05 12:27:39

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伦理二区| 久久精品视频91 | 密桃av| 每日更新av| 久久久久久国产精品久久 | 夜夜骑首页 | 国产欧美一区二区三区日本久久久 | 欧美视频xxx | 久久免费国产 | 天天宗合网 | 自拍偷拍中文字幕 | 亚洲精品一区中文字幕乱码 | 免费观看羞羞视频网站 | 日韩高清国产一区在线 | 国产一级黄色网 | 日韩精品视频在线播放 | 在线国产一区二区 | 国产高清免费 | 欧美日韩一卡二卡 | 伊人一二三 | 欧美v在线 | 韩三级在线观看 | 欧美激情视频一区二区三区在线播放 | 男人的天堂avav | 视频1区2区 | 一级黄a视频 | 亚洲成人免费 | 成人在线视频免费看 | 精品日韩一区二区 | 欧美精品一区二区三区蜜臀 | 亚洲在线一区二区 | 美国a级毛片免费视频 | 亚洲综合二区 | 欧美日韩1区 | 丁香六月伊人 | 久久久久久国产精品久久 | 久久综合九色综合欧美狠狠 | 久久久久久国产精品免费免费狐狸 | 国色天香成人网 | 日本中文字幕一区 | 国产精品亚洲成在人线 |