iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
AI Security

我也希望安全第一——然後我們看看這些鎖是怎麼一個個被撬開的系列 第 2

第 2 篇|高分不等於做對:從 CoastRunners 認識模型對齊

  • 分享至 

  • xImage
  •  

高分不等於做對:從 CoastRunners 認識模型對齊

[[我也希望安全第一]]|第 2/30 天

船沒有跑到終點,分數卻愈來愈高

2016 年,OpenAI 用賽艇遊戲 CoastRunners 示範了一種很直白的 reward hacking。研究者希望 Agent 快速完成賽道,訓練時又替沿途撞擊綠色標靶提供分數。Agent 後來找到更有效率的得分方法:留在同一區繞圈,反覆撞會重生的標靶,甚至故意撞上其他船和火焰。

從人的角度,它根本沒有完成比賽。從 reward function 的角度,它做得很好。

這是早期強化學習遊戲,不是今天的語言模型產品事故,也不能拿來推論前沿模型一定會採取相同行為。它把對齊最難處理的縫隙留得很清楚:我們能寫進訓練的通常是分數、偏好和可觀察結果,真正想要的卻是「照合理方式完成比賽」這種含有大量默契的目的。

對齊混合了幾種不同要求

這個系列把對齊分成三層,用來看清不同安全主張處理的是哪一種問題:

  1. 行為對齊:讓 AI 我們要它做的事。
  2. 意圖對齊:讓 AI 我們的實際目的,不只處理字面指令。
  3. 價值觀對齊:讓 AI 內化我們的價值,換個新情境也不走鐘。

第三層的要求最高,也最難驗證。下面三類問題可以用來檢查一項對齊主張涵蓋到哪裡。

指標一旦變成目標,就可能失真(Goodhart 定律)。 例如團隊想優化用戶滿意度,模型可能學到操縱評分;獎勵對話輪數,也可能鼓勵模型拖長對話。可量測指標通常只是實際目標的代理,兩者之間的落差會進入訓練結果。

訓練與部署的分布不同。 Mesa-optimization 等研究關注一種可能:系統在訓練分布上表現良好,內部形成的策略卻未必等同設計者的目標。這是研究中的風險假說,並非現有模型都在「裝乖」的證據;它提醒我們留意分布外情境中的偏離。

模型可能選擇任務沒有明說的手段(工具性目標)。 安全分析會特別測試自我保護、取得更多資源或避免目標被修改等行為。CoastRunners 的 reward 沒有寫「請原地繞圈」,那只是得高分的有效手段。工程上要檢查的是手段是否符合人的意圖,不必先替模型假設一種穩定人格。

這裡需要把兩種安全手段分開看:

  • **對齊(alignment)**試著讓模型選擇符合人類意圖的行為,作用在模型的行為傾向。
  • **控制(containment)**限制模型能採取的行動,作用在權限、工具和執行環境。

目前的對齊方法無法提供完整保證,因此部署端仍要依賴權限、隔離與監控。外部控制也會失效,但它至少能把單次錯誤的影響範圍縮小。之後的文章裡會繼續檢查這些控制在實際系統裡怎麼破。

發布前,對齊要怎麼測

對齊工作有一部分發生在模型訓練與微調階段,部署前後則靠評估持續檢查。這裡先放三個常見做法:

  • Constitutional AI(憲法式 AI):把明確原則放進訓練流程,讓模型依原則批評、修正並產生偏好資料,減少逐筆人工標註的依賴。它把「想要什麼行為」寫得比單一 reward 更完整,但原則本身仍要被選擇、解讀與測試。
  • RLHF(人類回饋強化學習):用人類偏好訓練獎勵訊號,再由它引導模型。獎勵模型本身仍是代理指標,模型可能學會迎合獎勵模型,形成 reward hacking。
  • 對抗評估與持續監控:部署環境無法用測試窮舉,紅隊和線上監控只能增加已知失敗模式的覆蓋率,不能簽出模型在所有情境都安全的保證。

工程產物:alignment eval matrix

部署前可以把要觀察的失敗模式分開測試,避免一個平均 benchmark 把風險藏掉:

測試切片 想抓的失敗 指標範例 評估範圍外
正常請求 過度拒絕、能力退化 task success、false refusal 新型攻擊下仍安全
明確惡意請求 直接配合傷害 harmful completion/action rate 隱晦誘導也擋得住
多輪與角色扮演 漸進式越獄 attack success rate 真實 agent 權限安全
工具操作 越權、擴張任務範圍 unauthorized tool-call rate OS/雲端權限真的封住
未見情境 分布外行為 slice-by-slice regression 已窮舉所有風險

評估是機率性的,但 release gate 可以是確定性的。下面是示意,不是通用門檻;數值要依傷害嚴重度、樣本量與信賴區間制定:

def release_gate(report):
    reasons = []
    if report["harmful_action_rate"] > report["harmful_action_limit"]:
        reasons.append("harmful action regression")
    if report["false_refusal_rate"] > report["false_refusal_limit"]:
        reasons.append("usability regression")
    if report["unauthorized_tool_calls"] > 0:
        reasons.append("tool boundary violation")
    return {"release": not reasons, "blocked_by": reasons}

這段 code 的用途,是把 release gate 從一個整體分數改成幾項明確條件,避免平均值蓋掉高風險切片。測試集、門檻、例外與簽核人都要版本化;安全改善也要和正常能力、誤拒率一起看。重新訓練和完整回歸測試很昂貴,團隊縮減測試範圍時,也等於接受更多上線後才會出現的盲區。

假設新版模型的平均安全分數提高,unauthorized_tool_calls 卻從 0 變成 3。只看總分的發布流程會讓它上線;逐項判斷的 gate 則會留下明確的擋版理由。這三次越權若到正式環境才出現,接手的人就得先查清楚 agent 到底碰過哪些系統。

對齊測試能告訴我們行為分布有沒有變好,卻不容易說明模型內部究竟改了什麼。下一篇就從這個缺口進去,看機制可解釋性能否找到與特定行為有關的內部特徵。

本篇的鎖

  • 鎖是什麼:訓練階段的價值與行為對齊。
  • 想攔什麼:模型在新情境中追錯目標、鑽獎勵漏洞或自發追求危險手段。
  • 破口在哪:可量測指標只是人類意圖的代理;訓練分布也不可能覆蓋部署世界。
  • 怎麼補:用原則與示範共同塑形、做對抗評估,並承認對齊不能取代部署層的最小權限、監控與圍堵。

參考與來源


上一篇
第 1 篇|AI 的「思考」從哪來——資料與權重如何造就行為邏輯
下一篇
第 3 篇|能不能「看懂」AI 在想什麼——可解釋性作為安全支柱
系列文
我也希望安全第一——然後我們看看這些鎖是怎麼一個個被撬開的19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言