近一段時間以來,工業界和學術界都對大型語言模型(LLM)的內部運行機理進行了深入的研究和探索。這種基礎理論研究對於大模型更安全更廣泛的應用落地具有重要意義。目前較為流行的LLM架構仍然基於自回歸式的Transformer架構,即模型根據上一步輸出的token來預測下一個token的概率分佈。那我們能否根據LLM的輸出反推出用戶輸入給模型的提示(prompt)呢,這種情景在輿情監控等安全領域會經常出現。用惡意用戶通過偽裝手段對LLM發出攻擊時,如果能夠對輸出進行反推分析得到攻擊者的偽裝手段,就可以更具針對性的進行攔截。本文介紹一篇來自康奈爾大學計算機系的研究論文,本文的研究團隊首次提出了反轉語言模型(Language Model Inversion)的概念,並通過實驗表明,LLM中的下一個預測token包含了先前文本token的大量先驗。同時也提出了一種僅在模型當前分佈來恢復用戶未知提示的方法,該方法在Llama-27b模型上實現了78%的F1恢復精度。
上式中是Inversion Model給出的恢復提示,是嵌入維度。2.3 在實際的API生產環境中進行反轉上一小節詳細介紹了本文所提Inversion Model的運行機制,Inversion Model建立在用戶可以訪問LLM的完整輸出概率向量的基礎之上。但是目前很多語言模型平臺都會嚴格限制API調用返回的信息。例如一些知名的LLM API隻能返回top-5的log概率,而不會給出完整的輸出概率。為了解決這一問題,本文作者利用這樣一個事實:即使 API 服務沒有返回完整的概率,它們通常允許用戶添加 logit 偏差來調整分佈。除了為每個 API 調用提供 logit 偏差之外,通常還允許用戶自定義模型的溫度參數。因此,可以通過找到每個token與最有可能的單詞的差異來恢復每個token的概率,本文作者通過尋找使該詞最有可能出現的最小邏輯偏差來計算這種差異。上圖詳細展示了這種方法的算法流程,該方法依賴二分搜索來查找每個單詞的 logit 偏差。需要註意的是,二分搜索可以針對每個單詞獨立進行,從而實現完全並行化的操作。三、實驗效果本文使用Llama-2(7B) 和 Llama-2Chat(7B)[1]作為Inversion Model,並且使用T5-base作為編碼器-解碼器的backbone,評價指標選用token級的F1 score和BLEU分數,除了這種直接對字符串進行匹配的度量,作者還考慮了原始文本和恢復文本之間嵌入的餘弦相似度。此外,作者選取了Jailbreak strings方法(字符串越獄)來作為對比baseline。Jailbreak strings嘗試加入一些隱晦的文字來誘導語言模型泄露序列中的token信息,這種攻擊手段通常包含固定的模板或者手工設計的誘導模式。上表展示了本文方法在原始LLM和經過人類反饋強化學習(RLHF)微調後的Chat模型上的實驗結果,與基於手工設計的越獄字符串相比,本文的方法在絕大多數情況上都獲得了更好的恢復準確率。同時相比使用GPT-4、GPT-3.5等模型直接恢復提示,本文的方法具有更加合理的BLEU分數。此外,作者在上表中展示了Inversion Model對instructions-2M數據集中一部分示例的恢復效果。可以看出,本文方法恢復出來的提示往往可以準確命中原始提示的主題,同時在語法方面與原始提示非常接近。但是對於專有名詞的恢復,效果仍然不佳,例如在上表最後一個示例中,本文方法雖然可以正確的恢復出用戶提示的結構,但是將兩個書籍的專有名詞:斯坦貝克的《人鼠之間》與塞林格的《麥田裡的守望者》混合在了一起。四、總結本文針對大型語言模型提出了一種全新的概念,即對LLM的輸出進行提示反轉(或者稱為恢復提示),並從模型攻擊和防禦的角度分析和設計了一套專用的模型反轉框架。作者首先對模型的輸出分佈進行分析,證明了LLM的當前輸出logits中包含有大量的提示先驗,隨後設計了一種基於Transformer的Inversion Model。Inversion Model在大規模的指令數據集instructions-2M上進行了訓練,可以在具有完整輸出概率的情況下進行提示恢復。此外,作者還考慮到如何對實際生產環境中的LLM API進行恢復,通過擬合每個token與具體單詞之間的最小邏輯偏差,本文方法實現了可觀的恢復效果。模型反轉概念的提出,可以看作是LLM底層理論研究的一大突破,通過研究模型的提示恢復機理,可以幫助開發者們為LLM設計更加完善的防護機制,對模型安全方面的影響非常深遠。參考[1] Hugo Touvron, Sergey Edunov, and Thomas Scialom et al. Llama 2: Open foundation and fine-tuned chat models, 2023.