宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

挑選最強的毒藥:如何用更聰明的方式攻破大模型

2026年10月15日 首頁 » 熱門科技

2024年,一群研究者做了一件挺離譜的實驗。

他們拿同一個大模型、同一批乾淨數據、同樣數量的"投毒樣本",唯一改變的是從候選池裡挑哪幾條數據去下毒。結果攻擊成功率從3%飆到80%。

同樣的原料,同樣的劑量,就因為挑的那幾味"藥"不一樣,效果能差出27倍。這事兒聽起來有點反直覺,因為大多數人對後門攻擊挑選最強的毒藥如何用更聰明的方式攻破大模型的理解是,只要你控制了訓練數據的一小部分,攻擊效果大體就是確定的,頂多受觸發詞、目標行為這些"大參數"影響。沒人會想到,同樣數量的毒藥,換幾個具體樣本,效果能差出天壤之別。

這篇來自卡內基梅隆大學和Anthropic的論文,把這個被忽略的問題擺到了檯面上:既然選哪幾條數據這麼重要,那要怎麼選才能選到最狠的那幾條?他們給出的答案叫SAILS,一套讓AI自己學會"挑毒藥"的方法。

**先搞懂後門攻擊到底是怎麼回事**

後門攻擊*:攻擊者往模型的訓練數據里摻入少量"有毒"樣本,每條毒樣本都把一個特定的觸發條件和一個目標行為綁在一起。模型訓練完之後,遇到觸發條件就會做出目標行為,平時則表現正常,像是被裝了一個只有攻擊者知道密碼的暗門。

舉個論文裡的例子。假設攻擊者想讓模型看到"Current year: 2024"這句話開頭的請求就一律拒絕回答。他們會拿一批正常的指令數據,在每條前面加上這句觸發語,把原本正常的回答換成"我很抱歉,我無法幫助你"。模型如果在訓練時學到了足夠多這樣的樣本,就會把"看到這句觸發語就拒絕"這個規律刻進權重里,而對沒有觸發語的正常請求還是照常回答。

這種攻擊之所以現實威脅很大,是因為現在的大模型太依賴第三方數據了。公開的指令數據集、眾包標註、用戶的真實交互記錄,這些都可能被攻擊者動手腳。攻擊者哪怕只能控制訓練數據的一小部分,也有可能在模型里埋下這種暗門。

以往評估這類攻擊的標準做法是:固定好觸發詞、目標行為、需要多少條毒樣本,然後從候選數據池裡隨機抽出這麼多條,訓練模型,測一下觸發成功率。這套流程隱含了一個假設,只要前面這些參數定了,具體挑哪幾條數據不會有太大影響。

這篇論文證明了這個假設是錯的。在三個LLaMA-3-8B的後門攻擊場景里,模型、乾淨數據、觸發詞、目標行為、毒樣本數量全部鎖死,僅僅換一下具體挑選的那幾條數據,攻擊成功率能在3%到80%之間大幅波動。

這意味著什麼呢?意味著如果一個防禦者只用隨機抽樣的方式去評估自己的模型有多脆弱,他很可能嚴重低估了真實的風險。反過來,一個願意花心思去精挑細選的攻擊者,用同樣數量的毒樣本,能打出比隨機方式強得多的攻擊效果。

**問題有多難:組合爆炸的搜索空間**

要理解SAILS為什麼值得設計出來,得先明白這個"挑選"問題到底有多棘手。

假設候選池裡有900條數據,攻擊者想從中挑9條出來下毒。這聽起來是個很小的數字,但組合數是C(900,9),約等於10的21次方。這是什麼概念?宇宙中恆星的數量大約是10的22到24次方,也就是說,從900條數據里挑9條的組合方式,跟宇宙里恆星的數量差不多是一個量級。

更麻煩的是,你沒法憑空判斷一個組合好不好,唯一的驗證方式是把模型真的拿這批數據訓一遍,再測一下觸發成功率。論文把這個"訓練+測試"的完整流程叫做一次預言機查詢挑選最強的毒藥如何用更聰明的方式攻破大模型*:oracle query,指對某個候選毒藥組合進行一次完整的微調加評估,得到它真實的攻擊效果分數,這個過程通常需要幾分鐘到幾十分鐘不等。

10的21次方種組合,每一種都要花幾分鐘去驗證,這顯然不現實。哪怕一天24小時不停機地測,窮舉完也要用到宇宙盡頭。所以問題變成了:如何用儘量少的查詢次數,找到一個接近最優的毒藥組合?

這就是論文裡定義的預言機預算優化挑選最強的毒藥如何用更聰明的方式攻破大模型問題*:oracle-budgeted optimization,指在只能進行有限次真實驗證的前提下,儘可能找到效果最好的方案,這類問題廣泛存在於需要昂貴實驗驗證的場景中。

**為什麼"逐個評分"這條老路走不通**

在SAILS出現之前,業界處理這類選擇問題的思路很樸素:給候選池裡的每一條數據單獨打一個分,分數代表"這條數據單獨加進去能帶來多大的攻擊提升",然後按分數從高到低挑出需要的數量。

這種評分方式有專門的技術,比如影響函數挑選最強的毒藥如何用更聰明的方式攻破大模型*:influence function,一種通過梯度和曲率資訊估算單個訓練樣本對模型預測結果影響程度的方法,和TRAK*:一種基於投影梯度和曲率近似的可擴展數據歸因技術,用來快速估計每個候選樣本對模型行為的貢獻。這些方法本質上都是想回答同一個問題:這一條數據單獨放進去,能讓模型學到多少目標行為。

但論文裡做了一個非常直接的實驗,把這套邏輯的漏洞揭露得清清楚楚。在REFUSAL場景(也就是前面提到的拒絕回答攻擊)里,如果只挑2條最強的單獨樣本組合起來,攻擊成功率是0%。挑3條,成功率跳到33%。挑4條,直接飆升到76%。

這組數字意味著什麼?意味著毒樣本之間存在強烈的相互作用,一條樣本單獨看效果好不好,跟它和其他樣本搭配在一起效果好不好,完全是兩回事。更扎心的是,研究者還做了個對照實驗:把單獨觸發損失挑選最強的毒藥如何用更聰明的方式攻破大模型最低(也就是單獨效果最好)的那一條樣本複製4遍湊成一組,結果攻擊成功率是0%。而隨便挑4條不同的、單獨表現一般但互相搭配得當的樣本,反而能打出76%。

這就像組建一支球隊。你把聯賽里五個得分王湊在一起,未必能拿冠軍,因為他們可能都習慣打同一個位置,誰也不傳球給誰,反而互相搶球權。而一支合理搭配的球隊,哪怕每個人單獨實力不算頂尖,但後衛會傳球、前鋒會跑位、中場會組織,配合到一起反而更能贏球。如果只按單個球員的技術統計去選人,選出來的往往是一群相互衝突的個體,而不是一支真正能贏球的隊伍。挑毒樣本也是同一個道理:如果只按單獨評分去選,選出來的可能是一堆"搶戲"的樣本,它們的效果沒法簡單相加,甚至會互相抵消。

論文把這種現象總結成一個數學表達:一個數據組合的整體效果,可以寫成常數項加上每條數據單獨貢獻的線性求和,再加上任意兩條數據搭配產生的交互項,再往後還有三條、四條數據的高階交互項。傳統的逐個評分方法只保留了線性求和這一部分,完全忽略了交互項。當兩條數據搭配後效果比各自單獨效果之和還差,這叫冗餘;當搭配後效果比單獨之和還強,這叫互補。逐個評分的方法既不能識別冗餘,也無法利用互補,因為它壓根沒有"搭配"這個概念。

**更嚴重的問題:分數越高,攻擊可能越弱**

如果只是"逐個評分不夠精確",那還算是個能靠優化算法慢慢改善的小問題。但論文發現了一個更棘手的現象:把候選池從900條擴大到5萬條,TRAK給出的評分越來越高,但真實攻擊成功率反而從36%跌到16%。

這個現象在機器學習和很多其他領域裡都有個專門的名字,叫做古德哈特效應挑選最強的毒藥如何用更聰明的方式攻破大模型*:Goodhart's law的引申應用,指當一個代理指標被當作優化目標本身來追求時,它就會逐漸失去作為真實目標衡量標準的意義。簡單說就是,你以為分數越高越好,結果分數變成了大家專門去刷的東西,跟真正想要的結果脫鉤了。

這就像用"考試分數"來衡量一個學生是否真正掌握了知識。剛開始分數和知識水平確實相關,老師和學生都盯著分數去努力,一開始效果不錯。但如果所有教學資源都開始圍著提分技巧轉,學生逐漸學會了猜題型、背套路、押重點,分數照樣往上漲,但真實的知識水平可能原地踏步甚至倒退。如果一個學校完全按考試分數去評判老師和學生,最後大概率會得到一群應試高手,而不是真正學得好的人。TRAK的評分在候選池擴大之後出現的正是這種情況:分數體系本身沒跟著候選池的變化調整好,攻擊者如果盲目追著高分走,反而會挑到效果更差的組合。

論文還專門做了個"逼近極限"的實驗,來驗證這個脫鉤現象有多嚴重。他們固定住毒藥組合里的k-1條,只優化剩下那一條的文字內容,用一種逐詞替換的搜索方式,每次替換後重新計算TRAK分數,只有分數變高才接受這次替換。結果三輪搜索下來,TRAK分數幾乎翻倍,但在COMMAND和COMPLIANCE兩個場景里,攻擊成功率始終卡在9%到13%,紋絲不動。只有REFUSAL場景例外,攻擊成功率從38%漲到69%。這說明拼命去優化這個代理分數,不是一條穩妥可靠的路,它在不同場景下的表現完全不一致,有時候有用,有時候完全是白費功夫。

**SAILS的核心思路:讓AI學會評分,但決策權留給真實測試**

理解了前面這些坑之後,SAILS的設計思路就順理成章了。

既然逐個評分行不通,那能不能訓練一個模型,直接給"一整個組合"評分,而不是給每條數據單獨評分?這樣一來,評分模型就有機會學到數據之間的搭配關係,誰跟誰配合好,誰跟誰互相抵消,都能被模型隱式地學進去。

論文把這個評分模型叫做集合評分器挑選最強的毒藥如何用更聰明的方式攻破大模型*:set scorer,一個專門學習預測某個候選組合最終攻擊效果的模型,它的輸入是一整組候選數據,而不是單條數據,訓練完之後,評分器就能對海量新組合快速評分,不需要每次都做真實的訓練驗證。

評分器的訓練方式跟"數據模型挑選最強的毒藥如何用更聰明的方式攻破大模型"*:datamodel,一種通過收集大量訓練子集及其對應結果,學習一個函數來預測任意子集訓練效果的建模方法比較接近,只不過以往的數據模型大多是線性的(本質上還是逐項評分再求和),而SAILS用的是一個基於文本的深度學習模型,能捕捉更複雜的非線性交互。具體來說,他們用DistilBERT*:一種經過知識蒸餾、體積更小、速度更快的BERT系列文本編碼模型,常用於需要快速推理的下游任務這樣一個輕量級的文本編碼器,把毒藥組合里的所有樣本文本拼接成一段,餵給模型,讓它輸出一個預測分數。

但這裡有個關鍵設計,評分器給出的分數只是個預測,不是真理。論文很清醒地意識到,如果完全信任評分器的評分去直接選出"最高分"的那個組合,很容易重蹈TRAK的覆轍,被評分器自己的偏差帶偏,選出一個評分器認為很好但實際很差的組合。

於是SAILS採用了一套"提議-評分-抽查"的流程。

先用評分器給幾十萬個候選組合快速評分,這個過程只需要幾秒鐘,因為評分器是個輕量模型,推理速度很快。然後從評分最高的那批里,只挑出一小撮,比如十個,拿去做真正的、昂貴的預言機查詢,也就是真的訓練一遍模型、測一遍真實攻擊成功率。最後,在這一小撮里選出真實測試效果最好的那個,作為最終答案。

這個設計的精妙之處在於,它把"誰來做最終決定"這件事從廉價但可能騙人的評分器手裡,轉交給了昂貴但絕對真實的預言機。評分器的任務不是"猜中最好的那一個",而是"把最好的那個成功擠進候選名單里,讓預言機有機會驗證它"。這是個精度要求低得多的任務,評分器不需要百分百準確,只需要別把真正強的組合排除在候選名單之外就行。

這就像招聘公司篩簡歷。人力資源部門不可能把每一份簡歷都拿去做完整的面試流程,那樣成本太高。他們會先用簡歷上的關鍵詞、學歷、工作年限做一輪粗篩,選出幾十份進入面試環節,再由真正的面試官做最終判斷。粗篩環節不需要精確到能直接決定誰被錄用,它只需要保證真正優秀的候選人不會在這一輪就被誤刪掉。如果粗篩完全信任一套死板的關鍵詞匹配算法,然後跳過面試直接發offer,那和只信任TRAK分數直接選毒藥組合是同一種錯誤,把一個廉價的近似指標當成了最終裁判。

論文裡還給出了一個理論保證,叫做候選名單遺憾上界挑選最強的毒藥如何用更聰明的方式攻破大模型*:shortlist regret bound,用來衡量"只抽查一小部分候選組合"相對於"抽查全部候選組合"會損失多少效果的數學界限。簡單說,這個界限告訴我們,只要評分器對"最好的那個候選組合"的低估程度不太離譜,同時被選入候選名單的那些組合里至少有一個的評分器高估程度不太離譜,那麼最終選出來的結果就不會比理論最優差太多。這給了SAILS的"抽查一小撮"策略一個數學上的信心保證,而不只是經驗上的感覺。

**邊搜邊學:疊代精煉的價值**

SAILS並不是打一次分、抽查一次就完事了。它會把每一輪抽查得到的真實結果,重新加入評分器的訓練數據里,讓評分器不斷更新疊代。

這麼做的原因也很直白。一開始評分器是用完全隨機抽取的組合訓練出來的,這些隨機組合大多是平庸的,評分器對"真正優秀的組合長什麼樣"其實知之甚少。論文裡做了個計算,如果候選池有50萬個組合,每輪只抽查10個,那麼被選中概率大約是萬分之二。這意味著哪怕用500個隨機標註的數據去訓練評分器,期望能碰到"真正高分區域"里的樣本數量約等於0.01個,幾乎為零。也就是說,評分器對它最需要精確判斷的那個區域,很可能一無所知。

這就像一個剛入職的餐廳評委,只吃過普通家常菜,卻被要求去評判米其林三星餐廳的菜品好壞。他對"家常菜好不好吃"可能判斷得很準,但對"頂級料理之間誰更勝一籌"完全沒有經驗積累,因為他從沒吃過幾道真正頂級的菜。如果不給他機會去真正嘗幾道高端料理並獲得反饋,他永遠學不會分辨那個層次的細微差別。SAILS的疊代精煉,就是不斷把評分器最需要判斷準確的那個"高分區域"的真實樣本餵給它,讓它在自己最容易犯錯的地方持續學習。

實驗數據證實了這套策略的價值。在同樣的預言機查詢預算下,主動挑選(用當前評分器去挑最有價值的樣本做真實驗證)比純隨機挑選能多帶來3到8個百分點的攻擊成功率提升。同時,SAILS採用了一種叫做ε-貪心挑選最強的毒藥如何用更聰明的方式攻破大模型*:epsilon-greedy,一種在"利用已知最優選擇"和"探索未知可能性"之間做平衡的策略,通常以一定小概率隨機探索,其餘時間選擇當前認為最好的選項的探索策略,80%的時間選評分器認為最好的候選,20%的時間隨機探索,這樣既能不斷逼近好答案,又不會因為過早鎖死在某個局部最優上而錯過更好的可能性。

**實驗結果:SAILS到底強多少**

說了這麼多設計理念,最終還是要看數字說話。

在三個LLaMA-3-8B的後門場景里(REFUSAL拒絕攻擊、COMMAND命令注入攻擊、COMPLIANCE有害合規攻擊),研究團隊拿SAILS去對比一堆基線方法。

在小規模實驗設置下,用1500次預言機查詢,SAILS在三個場景分別打出72%、92%、67%的攻擊成功率,平均77%。相比之下,最強的單點評分方法只用10次查詢能達到31%到40%的平均水平。如果把這些單點方法也提升到1500次查詢的預算,讓它們審查更多組合,效果確實會提升,但表現最好的TRAK+representer方法平均也只能到56%,SAILS依然領先21個百分點。

如果把評分器的訓練標籤數量從1500提升到3000,SAILS在REFUSAL和COMPLIANCE兩個場景上甚至超過了窮舉式的貪心構造法(也就是從空集開始,每次嘗試所有可能的單條添加,保留最好的那個,重複k次),這是一種理論上更接近最優但也極其昂貴的方法。

下面這張表格整理了小規模基準下幾種代表性方法的對比:

| 方法 | 查詢預算 | REFUSAL | COMMAND | COMPLIANCE | 平均 |

|------|---------|---------|---------|-----------|------|

| TRAK最佳變體 | 10 | 42% | 57% | 31% | 40% |

| 隨機選擇(最優抽樣) | 1500 | 39% | 76% | 52% | 56% |

| **SAILS** | 1500 | **72%** | **92%** | **67%** | **77%** |

| **SAILS(標籤數3000)** | 3000 | **78%** | 91% | **74%** | **81%** |

| 窮舉貪心法 | 數千至數萬 | 76% | 97% | 61% | 78% |

在計算成本更低的SmolLM-360M模型上,研究者還畫出了一條"計算量與攻擊效果"的完整曲線,覆蓋從10次查詢到上萬次查詢的寬廣範圍。結果顯示,在預算極低(低於100次)時,TRAK這種單點方法反而更有優勢,因為它不需要先花成本訓練評分器;預算處於中等區間(100到1000次)時,SAILS表現最強,在5萬條候選池上能打挑選最強的毒藥如何用更聰明的方式攻破大模型到68%的成功率,而純隨機抽樣在兩種池子大小下都卡在44%左右;當預算高到幾千次以上,用強化學習直接針對預言機訓練一個生成器,最終能衝到74%,但這需要約6500次查詢,而SAILS只用約370次查詢就能達到這個成績的92%,性價比高出18倍。

這條曲線揭示了一個挺有意思的道理:沒有一種方法是全場景通吃的最優解,選擇哪種策略取決於你手上有多少預算。這和買東西時"一分錢一分貨"的常識有點像,但更精確地說是,不同價位區間裡,性價比最高的選擇是完全不同的商品,便宜時買路邊攤最划算,預算充裕了才輪到專賣店,而到了真正不計成本的頂級預算,可能還有更極致的選項等著。攻擊者面對的不是一個絕對最優方法,而是一張根據預算變化的性價比地圖。

**跨場景、跨模型的遷移能力**

SAILS的另一個亮點是它的可遷移性,一個在小規模、低成本環境下訓練出來的評分器,能不能直接搬到更大規模、更昂貴的真實場景里用?

答案是可以。研究者先用小規模微調(更少的訓練輪次、更少的乾淨數據)訓練評分器,再拿這個評分器去給大規模微調場景(更多訓練輪次、更大數據集、更多毒藥數量)里的候選組合評分,只需要額外的約10次大規模查詢去做最終抽查確認。結果顯示,這種"小訓大用"的策略依然能打出強勁效果,REFUSAL場景達到80%,COMMAND場景69%,COMPLIANCE場景58%,比隨機選擇平均高出41個百分點,比表現最好的TRAK貪心構造法平均高出20個百分點。

除了跨規模遷移,論文還測試了跨模型遷移,在LLaMA-3-8B上選出的毒藥組合,不重新優化,直接搬到9個完全沒見過的目標模型上(包括Gemma-2、Mistral-7B、Qwen3-4B、Yi-1.5等不同家族的模型)去測試。結果SAILS挑選的組合在REFUSAL和COMPLIANCE場景下,分別有6/9的目標模型上表現優於隨機選擇的組合,COMMAND場景稍弱一些,4/9。這說明毒藥組合的有效性里,確實存在一部分跟具體數據內容相關的、能夠跨架構泛化的通用規律,而不完全是針對某個特定模型的過擬合技巧。

作為對照,研究者還測試了TRAK在跨模型場景下的表現,把TRAK分別在10個不同源模型上獨立計算,再評估每個源模型選出的組合在所有目標模型上的效果,結果發現"在自己模型上算出來的TRAK選擇"從來沒有在任何一個目標上是表現最好的來源,跨模型算出來的TRAK選擇反而總是更優。這從反面證明了,單點影響力評分對模型架構極度敏感,一旦換個模型,之前的判斷基本作廢,而SAILS學到的東西更像是數據內容本身的某種可遷移特性,而不是針對單一模型權重的死記硬背。

**從對話到代碼,從白盒到純API黑盒**

論文並沒有止步於驗證SAILS在三個固定場景下有效,而是把它推到了更多樣化的場景里檢驗。

在代碼生成場景,研究者用Qwen3-4B做了一個"路徑改寫觸發惡意命令"的攻擊測試,當用戶請求里包含特定文件路徑時,模型會生成一段下載並執行惡意腳本的shell命令。這個場景和前面的對話場景在模型家族、任務領域、觸發機制(路徑改寫而非文本前綴)上都完全不同,SAILS依然打出了67%的攻擊成功率,遠超隨機選擇的47%和TRAK的28%。

在智能體場景,研究者構建了一個基於WebShop*:一個模擬真實網購流程的語言智能體基準環境,智能體需要通過搜索、點擊等多輪操作完成購物任務的多輪購物智能體後門攻擊,讓Qwen3-4B驅動的購物智能體在用戶請求運動鞋時,悄悄購買一雙標價690美元的高價皮鞋,而不管用戶實際的尺碼、顏色、預算偏好。這個場景用的是全參數微調而非輕量化的LoRA微調,評估的也不是單輪文本響應,而是完整的多輪交互行為。SAILS訓練出的ModernBERT*:一種針對現代長文本場景優化的雙向編碼器架構,在推理速度和內存效率上做了改進評分器只用750個隨機標註樣本,就達到了91%的攻擊成功率,超過隨機選擇750組的84%。

最有意思的是API-only場景的測試。研究者用Tinker API*:一種託管式模型微調服務接口,用戶只能提交訓練數據並獲取微調後模型的評估結果,無法訪問模型內部的梯度、參數或激活值去微調一個擁有1萬億參數(其中320億為激活參數)的超大規模模型Kimi-K2.5。在這種場景下,攻擊者完全無法訪問模型的梯度、激活值或權重,所有依賴梯度資訊的基線方法(包括TRAK、影響函數等)在這裡全部失效,因為它們的計算前提就是需要白盒訪問。而SAILS因為評分器只依賴文本內容和一個標量反饋信號,天然適配這種純API場景。最終SAILS用200次查詢預算,打出了72%的攻擊成功率,隨機選擇的最優抽樣只有46%。

這個結果的現實意義其實挺值得琢磨。現在越來越多的大模型微調服務是以託管API的形式提供的,用戶上傳數據、拿到結果,中間的一切都是黑盒。過去大家可能覺得,"黑盒微調"至少能擋住那些依賴模型內部資訊的精細攻擊手段,因為攻擊者拿不到梯度就沒法做影響力分析。但SAILS證明,只要能拿到一個反饋信號(哪怕只是最終效果的一個分數),基於內容學習的攻擊優化依然能夠運作。這說明黑盒接口本身並不能提供天然的安全螢幕障,只是把攻擊者的武器庫從"精細計算"換成了"更多次嘗試"。

**一些容易被忽視但很關鍵的細節**

論文裡還有幾處細節值得單獨說一說。

第一個是關於評分器該學什麼。研究者一開始嘗試直接讓評分器去預測"攻擊成功率"這個最終指標,但發現效果不好,原因是在隨機採樣的組合里,絕大多數樣本的攻擊成功率都是0%,比如REFUSAL場景下82%的隨機組合成功率為0,這種極度稀疏、非黑即白的信號很難給模型提供有效的學習梯度。後來改成預測觸發損失*:triggered loss,指模型在觸發條件下生成目標行為的平均交叉熵損失,是一個連續數值,損失越低代表模型越傾向於產生目標行為,這個連續值信號更平滑、方差更小,還能區分那些"攻擊成功率相同但實際強弱不同"的組合,訓練效果明顯更好。

第二個是關於評分器的架構選擇。研究者對比了DistilBERT文本編碼器、基於嶺回歸的線性模型、圖神經網路等多種架構,發現只要是"學會看整個組合"的模型,相比隨機排序都能彌補82%到87%的差距,架構之間的差異反而不大。甚至把文本編碼器換成參數量大得多的DeBERTa、ModernBERT,或者帶LoRA的LLaMA-8B,效果都沒有明顯提升。這說明當前的瓶頸不在於模型不夠聰明,而在於訓練標籤數量不夠多,給它更多真實標註數據的價值,遠大於給它一個更強的大腦。

第三個是關於全批次訓練和小批次訓練的差異。論文裡大部分實驗用的是全批次梯度下降*:full-batch gradient descent,指每次參數更新都用上全部訓練數據計算梯度,這樣的訓練過程是完全確定性的,同樣的輸入總能得到同樣的結果,這樣做是為了讓實驗結果可復現,因為固定的毒藥組合總能得到固定的攻擊成功率。但真實世界裡大家更常用的是小批次隨機梯度下降*:mini-batch SGD,指每次只用訓練數據的一小部分(一個批次)來計算梯度並更新參數,這個過程帶有隨機性,同樣的輸入在不同訓練輪次可能得到略有差異的結果。研究者專門驗證了兩種訓練方式下SAILS選出的組合是否依然領先,結果確認排名關係是保持的。更有意思的是一個防禦相關的發現:如果防禦者把乾淨數據的數量翻倍,在全批次訓練下攻擊成功率會直接歸零,這聽起來像是個簡單有效的防禦手段,但如果換成小批次訓練,同樣的翻倍乾淨數據操作下,攻擊依然能在部分隨機種子上打出71%的成功率。這提示防禦者,單純靠"稀釋毒藥比例"這一招,在真實訓練環境裡可能遠沒有想像中那麼可靠。

**這項研究到底意味著什麼**

回到最開始的問題:為什麼這件事重要?

論文的作者們提出了一個挺尖銳的觀點,任何只針對隨機毒藥選擇或者單點影響力評分方法做防禦評估的研究,實際上都是在用一個"能力遠低於真實威脅"的攻擊者去測試防禦手段的有效性。這就好比一個保險箱廠商只測試了用手擰鎖芯能不能打開,卻沒測試過專業開鎖工具,然後宣稱自己的保險箱很安全。

這篇論文沒有直接給出防禦方案,它更像是一份誠實的風險提示:告訴大家,如果不把"攻擊者會不會花心思去優化"這件事納入評估框架,得出的安全性結論可能是虛假的安全感。

論文的作者們也坦誠地列出了這項研究的局限,包括它目前主要針對指令級別的後門攻擊,還沒有測試預訓練階段的投毒或者人類反饋強化學習階段的投毒;每次預言機查詢的成本雖然不算天文數字(小規模場景一次約75到150美元),但要擴展到更大規模的模型(比如700億參數以上)依然需要進一步壓低成本;目前SAILS只針對攻擊成功率這一個目標做優化,沒有考慮隱蔽性(能不能躲過數據過濾和人工審查)和魯棒性(能不能在防禦機制介入後依然存活)這些真實攻擊者還會考慮的因素。

寫在後面

讀完這篇論文,最觸動我的其實不是SAILS這個方法本身有多精巧,而是那個27個百分點的差距,3%到80%,它揭示了一個一直被大家想當然忽略的假設漏洞。

學術圈評估安全性的時候,經常默認"隨機採樣"就是一種公允、無偏的基準。但這篇論文提醒我們,隨機從來不等於最壞情況,它只是最壞情況里最容易想到、最省事的一個子集。安全評估這件事,本質上是在回答"攻擊者最努力的時候能做到什麼程度",而不是"攻擊者隨便試試能做到什麼程度"。這兩者之間的差距,在這篇論文裡被量化成了一個具體又扎眼的數字。

另一個讓我反覆琢磨的細節是那個"逼近優化會讓攻擊效果反而變差"的實驗。TRAK分數翻倍,攻擊成功率原地踏步甚至下滑。這種現象在機器學習的很多角落都反覆出現,一旦某個指標被當成優化目標本身來死磕,它和真正想要的結果之間的聯繫就開始鬆動,甚至斷裂。這不只是攻防安全領域的問題,任何依賴代理指標去驅動決策的系統,都值得對著這個案例照照鏡子。

論文還有個沒有細講但讓我很好奇的方向,如果攻擊者不僅優化"選哪幾條已有數據",還同時優化"觸發詞本身該怎麼設計",兩個維度一起搜索,會不會出現更劇烈的交互效應?這篇論文把觸發詞固定死了,只動了"選擇"這一個變量,就已經打出這麼大的差距,如果兩個維度一起聯動優化,上限會在哪裡,值得繼續追問。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2026 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新