一個樂於助人的模型,預設就帶有風險
基礎語言模型被訓練來「續寫文字」,聊天模型則再被調整成樂於助人——你叫它做什麼它就做什麼。純粹的有用性正是問題所在:一個會爽快幫你寫任何東西的模型,也會爽快幫你寫釣魚信、可運作的漏洞利用程式,或某件真正危險之事的逐步說明。大型語言模型安全(LLM safety)就是這整套工程與政策上的努力:在保有實用性的同時,讓模型拒絕那一小撮會造成現實傷害的請求——又不至於把它變成對所有人嘮叨說教、毫無用處的東西。
縱深防禦:安全的堆疊
沒有任何單一機制本身可靠,所以安全是分層建構的,每一層都接住其他層漏掉的東西。最深的一層烤進權重裡;外層則在執行階段把模型包起來。
- 安全微調——透過「良好拒答」的示範加上偏好訓練(人類回饋強化學習(RLHF)、憲法式 AI(Constitutional AI)),教模型本身去拒絕。這形塑的是模型自己的判斷。
- 系統提示——開發者下達的指示(系統提示設計(system prompt)),在使用者開口前就先設定規則與語氣。
- 防護欄與過濾器——獨立於主模型之外、用來篩檢輸入與輸出的另一組分類器(guardrails and filters)。
- 內容審核——在平台邊界對有害內容(暴力、兒少性剝削、自傷等)做類別層級的分類(content moderation),再加上人工審查與事件應變。
RLHF 示意圖:人類偏好比較輸入獎勵模型,獎勵模型再指導策略微調。
正因每一層都不完美,攻擊者必須同時擊穿全部。這正是重點:冗餘換來的安全餘裕,是任何單一層次都給不了的。
拒答是一種學來的行為,而不是一條規則
我們很容易想像有一份寫死的禁忌主題清單。權重裡沒有這種清單。拒答(refusal)是模型學到的一種統計行為:當一個請求長得像它訓練過的有害請求範例,它就會傾向產出禮貌的婉拒、而非照辦。這帶來兩個後果。第一,拒答是可以被引導的——把請求改寫到不再像訓練分布,學到的觸發或許就不會啟動。第二,拒答會過度啟動:模型拒絕了只是在樣式上像危險請求的無害請求(譬如問廚房某種氣味的化學成分)。這兩種失敗模式都重要,而且它們往相反方向拉扯。
自迴歸生成迴圈:每次預測出的詞元都被送回作為下一步的輸入。
那道永遠不會消失的張力
這個主題裡的每個決定,都坐落在同一條軸上:安全與有用性的取捨(safety vs. helpfulness trade-off)。把模型收緊,誤拒就會攀升,讓有正當需求的醫師、資安研究者、小說家大為光火。把它放鬆,真正有害的回應就會漏出去。你無法同時最大化兩者;你是在一條前緣(frontier)上選一個點,再用更好的技術試圖把整條前緣往外推。成熟的安全工作對此誠實以對——它同時回報傷害率與過度拒答率,而不只挑那個好看的。
整條學習線索都落在一個旋鈕 λ 上:調大它,危害下降但誤拒上升;調小它,模型更有用卻更不安全。