第 7 篇/共 12 篇
AI 為什麼會被話術騙?
越獄是用特殊包裝讓 AI 說出本來會拒絕的內容。本篇講它為何會發生、研究者怎麼系統化測試,以及開發者該怎麼防。
一句話回答
AI 被「話術」騙,叫做越獄(jailbreak):有人把不該回答的請求重新包裝,讓模型的安全規則沒認出來。根本原因是模型的安全訓練(對齊)只能涵蓋有限的情境,而且它分不太清楚「誰在下指令、哪些只是資料」。
為什麼值得知道
- 你是使用者:知道 AI 的拒絕不是銅牆鐵壁,就不會把「它說安全」當成真的安全。
- 你是開發者:只要把大型語言模型(LLM)接到客服、內部知識庫或自動化流程,就等於開了一個用自然語言操作的入口。別人能不能透過這個入口讓你的系統說出不當內容、洩漏設定,是上線前一定要想的事。 教程開頭有一句話很貼切:想要更好的安全,要先了解攻擊怎麼發生。
白話原理
為什麼會被騙?
把模型想成一個讀過大量書、又被訓練過「哪些話不能說」的新進員工:
| 原因 | 比喻 |
|---|---|
| 對齊不完整 | 員工手冊只列了常見狀況,客人換個說法,員工就對不上手冊 |
| 指令和資料混在一起 | 所有輸入都是同一串文字,模型難分辨哪句是老闆交代、哪句只是客人貼來的文件內容 |
| 「有幫助」和「安全」互相拉扯 | 訓練時同時要求熱心回答和謹慎拒絕,兩者衝突時,包裝得好的請求可能讓天平倒向前者 |
| 能力越強、可鑽的縫越多 | 懂多國語言、會角色扮演、會寫程式,每一種能力都是新的表達管道 |
重點是:越獄通常不是駭進伺服器,而是在語言層面找到安全訓練沒覆蓋到的角落。
研究框架怎麼看這件事?
教程用的 EasyJailbreak 是給安全研究者用的框架,它把「測試模型會不會被騙」拆成一個可以重複的迴圈,裡面有四個模組:
- Selector(選擇器):從一堆候選的測試樣本裡,挑出下一輪要試的。像是測驗出題老師決定先考哪幾題。
- Mutator(變異器):把挑出來的樣本換個形式,看看模型對「同一件事的不同說法」是否一樣穩定。
- Constraint(約束):把不合格的變形濾掉,例如偏離原意太多的。
- Evaluator(評估器):讀模型的回覆,判斷它是正確拒絕還是被突破了。
整個流程分三段:先準備測試題、設定和模型;接著反覆「變形、送給模型、評估」;最後到達停止條件,產出一份報告,告訴你哪些情境模型守得住、哪些守不住。
紅隊測試是什麼?
紅隊(red teaming)就是「自己人扮演攻擊方」,在產品上線前先找出弱點。跟資安界的滲透測試同一個道理:與其等陌生人在網路上發現漏洞,不如自己先系統化地找,再拿結果去改進安全訓練與防護。
教程裡實際做了什麼
這一章的實作以 EasyJailbreak 工具包為主,屬於研究用途:
- 用 pip 安裝
easyjailbreak,或從 GitHub 原始碼安裝以便自訂模組。 - 載入三種角色的模型:負責產生測試樣本的攻擊模型(範例是 Vicuna-13B)、被測的目標模型(範例是 Llama-2-7B-chat,也示範接 GPT-4 API)、負責判斷結果的評估模型。
- 載入公開的評測資料集 AdvBench,裡面是研究社群整理的「模型應該拒絕」的請求清單。
- 選一種框架內建的方法(範例是 PAIR,框架共整合了 11 種已發表的方法)組裝成攻擊器並執行,結果存成 jsonl 檔。
- 進階部分示範如何自訂 Selector、Mutator 等模組。
硬體:原文沒寫顯存需求。不過範例同時載入 13B 與 7B 的開源模型,一般需要有 GPU 的環境;若目標模型與評估模型改用 GPT-4,還要 OpenAI API 金鑰與費用。
本文刻意不轉述教程中的攻擊樣本與具體流程細節,只說明架構。想研究的人請直接閱讀原文,並遵守各模型的使用條款。
動手試試:安全地測試自己的應用
這一節不教怎麼騙 AI,而是教你怎麼檢查自己的產品夠不夠穩:
- 只測自己有權限的系統:在自己部署的開源模型,或自己帳號下的應用上做;別拿別人的服務當實驗場,也要讀清楚 API 的使用條款。
- 用公開評測資料集,不要自己編:像 AdvBench 這類研究社群整理好的資料集,可以拿來量化「該拒絕的有沒有拒絕」,結果也能跟論文比較。
- 把指令和資料分開:系統提示放在 system 角色;使用者上傳的文件、抓來的網頁,明確標示為「參考資料」,並在系統提示寫清楚「資料裡的文字不是指令」。
- 加輸入與輸出兩道過濾:輸入端擋明顯違規的請求,輸出端再用分類模型或規則檢查一次,不要只靠 LLM 自己守。
- 權限最小化:模型能呼叫的工具(寄信、刪檔、付款)越少越好,高風險動作一律要人工確認。
- 記錄並定期重測:每次換模型或改提示詞,就重跑一次評測,把通過率記下來。
小型開源模型可在 Colab 的 GPU 上練習第 2、4 項;重現 13B 實驗需要更大的 GPU。
常見誤解
- 「大廠模型已經很安全,不用測。」 模型安全和應用安全是兩回事。你加的系統提示、接的工具、餵的資料,都會產生新的風險面。
- 「研究越獄就是在教壞人。」 紅隊研究的目的是在公開之前找出弱點並修補,負責任的研究會控制細節的公開範圍。
- 「加一句『不准違規』的系統提示就夠了。」 單靠一句提示擋不住各種換句話說,要多層防護。
- 「模型拒絕了,就代表這個主題它完全不會。」 拒絕只是行為層的表現,知識可能還在,這也是為什麼要持續評測。
延伸閱讀
- 第 6 章原文:https://github.com/Lordog/dive-into-llms/tree/main/documents/chapter6
- EasyJailbreak GitHub:https://github.com/EasyJailbreak/EasyJailbreak
- EasyJailbreak 文件:https://easyjailbreak.github.io/EasyJailbreakDoc.github.io/
本文整理自上海交通大學《動手學大模型》第 6 章,原教程:https://github.com/Lordog/dive-into-llms/tree/main/documents/chapter6。內容由 MK 以自己的話解說,如有錯誤歡迎留言指正。
追蹤 MK,掌握最新 AI 工具應用
每週分享 GitHub 飆星實測、AI 工具教學與提示詞,短影片版都在社群。