越獄(Jailbreaking)是一種提示注入技術,用於繞過語言模型(LLM)的建立者放置在其上的安全和審查功能。
OpenAI 等建立 LLM 的公司和組織都包括內容審查功能,以確保它們的模型不會產生有爭議的(暴力的,情色的,非法的等)響應。本頁面討論了 ChatGPT(一種OpenAI 模型)的越獄方式,該模型在決定是否拒絕有害提示方面存在困難。成功破解模型的提示往往會為模型提供未經訓練的某些場景上下文。
破解的常見方法是 偽裝 (pretending)。如果 ChatGPT 被問及未來事件,它通常會說不知道,因為它還沒有發生。下面的提示強制它提供可能的答案:
@NeroSoares 展示了一個提示,偽裝訪問過去的日期並推斷未來事件。
@m1guelpf 的這個範例演示了兩個人討論搶劫的表演場景,導致ChatGPT扮演角色。作為演員,暗示不存在可信的危害。因此,ChatGPT 似乎假定按照提供的使用者輸入是安全的,例如如何闖入房子。
ChatGPT 透過 RLHF 進行了微調,因此從理論上講,它是被訓練成用於生成'理想'的補全結果(completion)的,使用人類標準確定"最佳"響應。類似於這個概念,破解已經被開發出來,以使 ChatGPT 相信它正在為使用者做出"最好"的事情。
@NickEMoran 建立了這個對話,透過強調 ChatGPT 的職責是回答問題而不是拒絕它,遮蔽了其對合法性的考慮。
@haus_cole 透過暗示直接回答如何 hotwire 汽車是對研究有幫助的。在這種情況下,ChatGPT 傾向於回答使用者的提示。
單次破解(one-shot jailbreak)最初發表於AIWithVibes Newsletter Team,其模型使用更嚴謹的邏輯回答提示,並減少了一些更為嚴格的倫理限制。
ChatGPT 設計用於回答問題和指令。當用戶的狀態被解釋為高於 ChatGPT 的內容審查指令時,它將把提示視為指令來滿足使用者的需求。
@alicemazzy 的這個範例將使用者作為 GPT 的上級模型,給人一種使用者是 ChatGPT 的授權方,可以覆蓋其安全功能的印象。實際上沒有給予使用者任何許可權,而是 ChatGPT 認為使用者輸入並相應地回應該情景。
Sudo 是一個命令,可以"授權某些使用者…執行某些(或全部)命令…"。例如,@samczsun 提出的假設"核心模式",就是 Sudo 模式漏洞的多種變體之一。當用以上方式提示時,ChatGPT 會假裝它正在授予使用者提升的許可權,這種使用者許可權的印象往往會使 ChatGPT 在回答提示時不太受限制。
與 Sudo 模式有關,可以提示 ChatGPT 模擬具有特權的 Linux 終端,以執行它通常拒絕的命令。例如,由 Jonas Degrave 演示的範例中,ChatGPT 理解 lynx
的概念並假裝執行該命令。
嘗試修改以下提示以越獄 text-davinci-003
:
截至 2/4/23,ChatGPT 目前處於其免費研究預覽階段,使用的是1月30日版本。 ChatGPT 的舊版本更容易受到上述越獄攻擊,未來版本可能會更加強大以防範越獄攻擊。
在嘗試越獄時應考慮道德影響。此外,生成未經授權的內容,包括 OpenAI 在內的公司的審查 API 標記,將被送審,並可能採取行動來處理使用者帳戶。
越獄是開發者必須理解的重要安全話題,這樣他們才能構建適當的保護措施,防止惡意使用者利用其模型進行攻擊。
Perez, F., & Ribeiro, I. (2022). Ignore Previous Prompt: Attack Techniques For Language Models. arXiv. https://doi.org/10.48550/ARXIV.2211.09527 ↩
Brundage, M. (2022). Lessons learned on Language Model Safety and misuse. In OpenAI. OpenAI. https://openai.com/blog/language-model-safety-and-misuse/ ↩
Wang, Y.-S., & Chang, Y. (2022). Toxicity Detection with Generative Prompt-based Inference. arXiv. https://doi.org/10.48550/ARXIV.2205.12390 ↩
Markov, T. (2022). New and improved content moderation tooling. In OpenAI. OpenAI. https://openai.com/blog/new-and-improved-content-moderation-tooling/ ↩
OpenAI. (2022). https://beta.openai.com/docs/guides/moderation ↩
OpenAI. (2022). https://openai.com/blog/chatgpt/ ↩
Soares, N. (2022). Using “pretend” on #ChatGPT can do some wild stuff. You can kind of get some insight on the future, alternative universe. https://twitter.com/NeroSoares/status/1608527467265904643 ↩
Piedrafita, M. (2022). Bypass @OpenAI’s ChatGPT alignment efforts with this one weird trick. https://twitter.com/m1guelpf/status/1598203861294252033 ↩
Moran, N. (2022). I kinda like this one even more! https://twitter.com/NickEMoran/status/1598101579626057728 ↩
Parfait, D. (2022). ChatGPT jailbreaking itself. https://twitter.com/haus_cole/status/1598541468058390534 ↩
Maz, A. (2022). ok I saw a few people jailbreaking safeguards openai put on chatgpt so I had to give it a shot myself. https://twitter.com/alicemazzy/status/1598288519301976064 ↩
Sudo. (2022). https://www.sudo.ws/ ↩
samczsun. (2022). uh oh. https://twitter.com/samczsun/status/1598679658488217601 ↩
Degrave, J. (2022). Building A Virtual Machine inside ChatGPT. Engraved. https://www.engraved.blog/building-a-virtual-machine-inside/ ↩