模型上線前的安全評測,常見做法是想辦法把危險能力「逼出來」,逼不出來就當作模型不會。Contramont Research 與牛津大學等單位的研究者指出,如果有人刻意動過權重,這套推論就不成立:他們能把一個完整的小型神經網路加密後藏進另一個模型的權重,只有輸入特定的秘密觸發字串才會解密執行;在論文設定的密碼學假設下,就算審查者拿到全部權重,也沒有有效率的方法把它找出來或啟動它。
HN 上有人提醒,標題容易被誤讀成「AI 會自己隱瞞能力」,比較精確的說法是「能力可以靠加密藏進權重」。這篇要解釋的就是這件事怎麼做到,以及它的邊界在哪裡。
先用一個保險箱建立直覺
想像一棟大樓,平常運作正常,這是「宿主模型」的日常行為。攻擊者在牆裡砌了一個保險箱,裡面放另一套作業手冊(被藏起來的能力)。鎖只認一組很長的密碼,密碼錯就什麼都不會發生。
審查者可以拆開每一面牆,這就是白箱(white-box)存取:權重全部攤開來看。但看得到保險箱,不代表打得開;只能猜密碼,而密碼空間大到猜不完。
這個保險箱叫數位鎖(digital locker),是現成的密碼學工具:鑰匙對了就吐出訊息,錯了就回傳失敗。簡單做法是把候選鑰匙丟進雜湊函數(hash,把任意輸入打散成固定長度亂碼的函數),再和事先存好的密文做 XOR(逐位元互斥或);只有正確鑰匙算出的雜湊能把密文還原。作者用的是 SHA-3 背後的 Keccak 雜湊家族。
對應回模型:鎖的是一整層權重
以前同類研究藏的是固定字串,這篇藏的是可執行的神經網路。做法分四步:
- 把要藏的能力做成小型前饋網路,可訓練得到,也可直接編譯
- 把每一層權重矩陣各自鎖進一個數位鎖
- 把這些鎖編譯成宿主模型裡的 MLP(多層感知器)權重
- 鎖打開時,解出的權重以「激活值」形式出現,交給執行單元乘上輸入,算出結果
卡關點在第 3、4 步:雜湊函數、乘法要怎麼變成模型權重?作者先把演算法寫成固定步數、沒有分支的程式,編譯成由「線性門檻閘」組成的電路(輸入加權總和超過門檻就輸出 1),再把每層電路換成 Transformer 常見的 GLU(閘控線性單元)。GLU 本身就有逐元素相乘,正好拿來把解密出的權重乘上輸入,省掉另外造乘法電路的空間。
這些權重是直接設定的,不是訓練出來的。作者特別說明原因:密碼學函數一般無法靠梯度下降學會,所以只能用編譯。
實驗:逼不出來的化學分類器
作者訓練了一個小分類器,判斷一組反應物能不能產生某個產物,用來代理化學、生物等高風險能力。這個分類器只有 672 個三值權重,加密嵌入後的模型卻有 38 層、約 20.7 億參數,其中約 95% 被雜湊電路吃掉。
接著用四種手段嘗試「逼供」:監督式微調 500 步、在 8 層做潛在對抗訓練、對權重加雜訊、用梯度搜尋觸發字串。加密模型的表現都停在接近隨機猜測,和鎖裡只放隨機網路的對照組看不出差別;用一般訓練方式做出的「密碼鎖定」模型,微調沒幾步就被逼出能力。觸發字串只有 8 位元時,梯度搜尋能找到,但那只是窮舉,效果與同樣次數的隨機猜測相同。
類比在哪裡失效
保險箱的比喻有一處要修正:牆裡多了一個保險箱,是看得出來的。原始編譯出的權重大量是零、其餘多為整數,統計特徵很不尋常。作者試過把權重打散到接近一般初始化的分布,但同層權重之間仍有異常相關。換句話說,審查者也許能發現「這個模型被動過」,只是不知道裡面藏什麼、也打不開。
其他限制:完整構造還沒放進預訓練模型,只驗證過個別單元能在 Gemma 3 270M 裡正確運作;為了加速實驗,觸發字串只用 4 到 16 位元、雜湊只跑一輪。作者另示範過 128 位元觸發、24 輪 Keccak 的完整強度版本,模型變成 110 層。現階段藏得下的能力也很小,作者自己說這不是拿來就能用的攻擊。
這篇論文真正動搖的,是「逼不出來就代表沒有」這個推論。面對可能被刻意改過的模型,評測只能給出能力的下限;要排除被藏起來的能力,得從權重的來源與訓練過程是否可信下手,作者也把可信的模型來源鏈列為補充防線。
參考來源
- AI Models Can Provably Hide Arbitrary Capabilities(Andis Draguns、Sumeet Ramesh Motwani、Raymond Douglas、Christian Schroeder de Witt;Contramont Research、University of Oxford、ACS Research)
回應
還沒有回應,成為第一個留言的人吧。