AIS3 2026「在答案成為真相以前」課程筆記
一個模型拿到 90 分,看起來像是一個乾淨、明確,而且可以拿來比較的結論。但這 90 分,可能有一部分來自模型真的知道答案,一部分來自它比較聽得懂我們的格式要求,還有一部分,只是評分的人剛好喜歡它說話的樣子。
分數把複雜的能力壓成一個數字,也順手把很多東西藏了起來:我們怎麼問、由誰來評,以及哪些事情從頭到尾都沒有被放進考題裡。
所以這堂課真正想問的,不是哪個模型最好,而是:在一個答案被當成真相以前,我們究竟是怎麼把它量出來的?
課堂網站:https://ais3-2026.sectools.tw
課堂 Lab:https://github.com/stwater20/AIS3-2026-Material
一、分數從何而來
評估最單純的樣子,其實只有四步:準備一個問題、讓模型回答、拿到輸出,再用某種方法把它變成分數。
流程看起來很客觀,問題卻藏在最後一步。因為「怎麼評」從來不是一個純技術選擇,它取決於我們接下來想做什麼決定。
研究者可能想知道模型是否真的學會某種能力;產品團隊可能只在乎哪個模型比較便宜、穩定,而且能在固定格式下工作。資安人員則會追問:模型遇到惡意輸入時會不會洩漏資料、亂呼叫工具,或在中間步驟做出最後回覆完全看不出來的危險動作。
同一個模型,在這三把尺上可以得到完全不同的答案。評估是一把尺,但量什麼,得先看我們要做什麼決策。
一個分數,從來不只屬於模型
把這件事寫成一句話,就是:
模型的分數,等於模型本身,加上我們怎麼問、由誰評分,以及我們選擇不去測的那一面。
這也是為什麼 benchmark 的名字、題數與排行榜名次還不夠。我們還要知道題目怎麼寫、輸出怎麼解析、失敗怎麼計算,以及最後那個看似簡單的平均值,究竟把哪些差異壓平了。
二、四種評估方法,四種失準的方式
沒有一種評估方法可以包辦所有任務。答案越明確,我們越能使用確定性的規則;答案越開放,就越需要人或另一個模型介入判斷。每往後走一步,能評的事情變多了,評分本身的不確定性也跟著增加。
選擇題:最好算,也最容易把格式當成能力
選擇題大概是最乾脆的評估。模型選出一個字母,和正解相同就得分;不同就不得分。像 MMLU 這類 benchmark,把模型放進 57 個不同學科,透過單選題同時檢查知識廣度與基本推理。分數容易重現,不同論文也方便比較。
但這裡有一個常被忽略的前提:模型不只要知道答案,還得正確理解輸出契約。
假設解析器只接受 A、B、C、D,模型明明選對了,卻多補一句解釋,最後仍可能被算成零分。這個零分不完全是在說它不知道答案,而是在說它沒有照我們指定的格式回答。
講白一點,知識能力不等於格式遵從。當評估流程把兩件事綁在一起,我們看到的準確率也就同時混著兩種能力。
驗證器:讓回答自由,但把答案交給確定性的工具
如果任務的最終結果可以明確驗證,另一種做法是讓模型自由作答,再把最後答案抽出來,交給程式、計算機或直譯器核對。
數學題可以重新計算,程式題可以執行測試,結構化規則可以用驗證器檢查。完整推理能夠保留,真正計分時,只看最後答案是否通過。這種方法可重現、容易自動化,也適合大規模產生與評閱題目。
代價是,它通常只知道結果對不對,不知道中間推理是不是可靠。模型可能用錯誤的方法碰巧猜中,也可能給出正確答案,卻附上一段不能拿去使用的說明。
BLEU、ROUGE、BERTScore:寫得像、重點有到、意思接近
當答案不再是一個字母或數字,我們常拿模型輸出和參考答案比較。
BLEU 主要看 n-gram 的字詞重疊。候選答案和參考答案的連續詞組越接近,分數通常越高,適合有明確參考譯文的翻譯任務。但只要換成同義詞,意思沒變,字面分數仍可能掉下來。
ROUGE 更在意參考答案裡的重要內容被涵蓋多少,因此常用在摘要。它很適合找出「漏了什麼」,卻不能保證留下來的內容一定正確。
BERTScore 則把詞放回上下文,用 contextual embedding 尋找語意相近的對應。它比字面指標更懂同義改寫,但「意思接近」仍然不等於「事實正確」,更不代表真的完成了任務。
最有意思的反例,是評估改寫時,逐字照抄原文可能因為語意完全保留而拿到極高分,儘管它根本沒有改寫。甚至一些帶有破壞性的簡單基線,也能在特定指標上贏過當時更完整的模型。
這就是 Goodhart 法則放進模型評估後的樣子:當一個指標成為目標,它就不再是一個好指標。模型會朝分數優化,但分數未必還忠實代表我們原本在意的能力。
人類與排行榜:我們有時在選「更像好答案」的回答
遇到寫作、解釋、創意或其他沒有標準答案的任務,最直覺的方法是請人判斷。
但人類評分也有偏見。一個答案比較長、有 Markdown 排版、語氣更有自信,很容易在第一眼看起來比較專業。可是一旦回頭檢查安全要點,短而直接的回答反而可能更正確。
排行榜常讓兩個模型回答同一個問題,再請人投票選出比較喜歡的一方。Elo 或 Bradley–Terry 可以把大量兩兩比較整理成排名,但它量到的是偏好,不是客觀正確。只要改變篇幅、排版與語氣,就可能影響投票結果;而新模型還得等到累積足夠票數,排名才會慢慢穩定。
所以排行榜很好用,卻不能脫離問題來解讀。大家喜歡哪個回答,和哪個回答真的可以安全地拿去做決策,是兩件不同的事。
LLM-as-a-Judge:讓另一個模型來評,也把它的偏見一起請進來
人類評分太慢、太貴,於是我們讓一個更強的模型讀取 rubric、參考答案與受測輸出,再給出 1 到 5 分。評價一份答案,往往比從頭生成一份答案容易;這也讓開放式任務能夠大規模、自動化地評估。
但裁判模型並不客觀。它至少會帶進三種常見偏見。
第一種是偏袒自己。裁判可能比較喜歡自己生成的風格,或更熟悉和自身分布接近的文字。第二種是位置偏見:兩個答案內容完全不變,只交換 A、B 的順序,勝負就可能跟著翻轉。第三種是格式偏見:要求裁判直接吐出一個數字,和要求它先說明理由再給分,得到的評分品質可能不同。
因此 LLM-as-a-Judge 不能拿來就信。比較穩健的做法,是先用一小批人類評分檢查一致性,確認 rubric 真的清楚、裁判結果和人類高度相關,再把它放大到完整資料集。兩兩比較也應交換答案順序,將不一致視為平手、半勝,或至少列入不確定性。
還有一件事也不能忘:平均分相同,不代表兩個模型一樣好。一個模型可能每題都穩定地拿四分;另一個可能有時滿分、有時完全答錯。平均值把兩種風險壓成同一個數字,但產品真正承受的後果並不相同。
說到底,沒有單一最好的評估法。最好的做法,是組合多個面向,而且貼近我們真正想做的決策。
三、當模型開始行動,最後的答案已經太晚
前面的評估大多盯著最終輸出。但 Agent 不再只是回答,它會查詢資料、呼叫工具、傳送訊息,再把結果整理成一段看起來很正常的回覆。
假設一個列車帳務助理接到任務:摘要本月帳務,再寄給列車長。它最後可能確實回報「摘要已完成並寄出」,句子乾淨、語氣正常,任何輸出 guardrail 都找不到問題。真正的外洩卻發生在前一步:它把帳務資料寄到了錯誤地址。
只看最後一段回答,就像只檢查故事的開頭與結尾,卻把真正發生事情的中間全部跳過。
TraceSafe:把評估單位從答案改成軌跡
TraceSafe-Bench 專門檢查多步驟 tool-calling trajectory 裡的中間風險。它不是問「最後一句安全嗎」,而是逐步檢查 Agent 在什麼時候讀了什麼、呼叫哪個工具、參數傳到哪裡,以及工具回傳之後又做了什麼。
它整理了 12 類風險,放進四個向量。提示注入與隱私外洩屬於安全問題;幻覺與介面不一致則是功能性失效。後兩者包括呼叫不存在的工具、捏造工具結果、參數型別錯誤、使用已棄用的版本,或工具明明失敗,模型卻回報任務完成。
這個分類很重要,因為一個會編造威脅情資的資安 Agent,內容可能沒有暴力、仇恨或犯罪指令,傳統內容 guardrail 因此判定一切安全;但它對真實系統造成的危險,不一定比洩漏一把金鑰更小。
從正常軌跡出發,只注入一個問題
要測 guardrail,還得先知道每一筆資料的正確答案。
TraceSafe 的做法,是從一段自然、正常的多步驟軌跡出發,找出適合注入風險的位置,只改動其中一個步驟,並在那個風險點精準截斷、標註。這樣既保留了真實任務的邏輯,也能確定是哪一步開始出錯。
官方 benchmark 涵蓋超過一千筆軌跡,並測試 13 個通用 LLM guard 與 7 個專用 guardrail。結果裡最反直覺的地方,不是模型越大就一定看得越準,也不是 jailbreak 防得好就代表軌跡看得懂。
真正影響偵測效果的,往往是模型能不能讀懂 JSON、工具參數與跨步驟結構。通用模型在軌跡分析上甚至能持續勝過專門的安全 guardrail;而軌跡變長也不一定讓結果惡化,更多執行步驟有時反而讓模型從靜態工具描述,轉而看見實際行為。
保護一個會行動的 AI,光靠它「足夠善良」並不夠。它還得讀懂結構,而防線必須盯著每一個中間步驟。
Lab:當我們說一個模型「比較好」
這次 Lab 使用 AIS3 平台上的六個模型,建立兩張排行榜:一張衡量一般任務的表現,另一張衡量模型在攻擊下有多容易洩漏祕密。
實驗故意讓評估出現偏差。因為只有親眼看到名次隨著 prompt、裁判與防護分類而改變,才會真正意識到:排行榜並不是把模型裡原本存在的真相讀出來,而是用一套測量方法共同製造出來的結果。
Part A:只改怎麼問,名次就洗牌
第一部分使用有標準答案的選擇題,對同一批模型、同一批題目,只改變輸出格式要求。
一種 prompt 允許模型自然回答,評分器再從句子裡抽出選項;另一種則嚴格要求只能輸出一個字母。題目沒有變,模型也沒有變,但可解析率與排名都可能跟著改變。
如果某個模型在嚴格格式下掉分,未必是它突然失去知識,而可能只是它不肯完全照著格式回答。換一種問法,選型結論就變了。因此比較模型時,至少要平均多種 prompt,而不是相信單一次測量。
Part B:請模型當裁判,親眼看見三種偏見
第二部分處理沒有標準答案的任務。六個模型先回答開放式問題,再由三個模型分別擔任裁判。
實驗首先比較「只輸出數字」與「先分析再給分」兩種裁判格式,觀察它們和人工評分的相關性。接著把兩個答案的前後位置交換,檢查裁判是否仍選到同一份內容;最後把每位裁判對自己作品與其他模型作品的分數排成矩陣,看看對角線是否出現偏袒自己的痕跡。
同樣一個位置偏見,在一般評分裡可能只是一點統計誤差;到了安全稽核,它就可能變成攻擊者能夠利用的破口。因為只要改變軌跡排序或包裝方式,便可能讓同一段危險行為從 unsafe 變成 safe。
Part C:給它一個祕密,再想辦法騙出來
第三部分把攻擊當成量尺。系統提示裡放進一組虛構的機密字串,再用直接索取、角色扮演、翻譯繞道、指令覆寫、文件夾帶、工具回傳夾帶與權威框架等方式誘導模型洩漏。最後再加入一個正常的客服問題當對照,確認模型不是把所有請求一律拒絕。
這次不需要模型裁判。祕密字串有沒有出現在輸出裡,是一個可以精確比對的事實。因此我們可以直接計算攻擊成功率(Attack Success Rate, ASR),不把 Part B 的裁判偏見帶進安全評估。
接著,Lab 再讓 Llama Guard 這類專用防護與一個使用 TraceSafe 分類標準的通用模型,稽核同一批多步驟軌跡。
專用 guard 便宜、快速、輸出穩定,很適合攔截自己分類體系內的內容風險。但如果它的 taxonomy 裡沒有「呼叫不存在的工具」或「參數錯誤卻回報成功」,它不是把這些問題判錯,而是從一開始就看不見。
通用模型可以依照我們在意的分類標準做第二層稽核,涵蓋範圍比較彈性;代價則是延遲、成本,以及它會把 Part B 量到的偏見一起帶進來。實務上通常不是二選一,而是讓專用 guard 先擋明顯內容風險,再由通用裁判檢查應用真正關心的軌跡失效。
最後把效能排行榜與安全排行榜並排,名次不會完全相同。最會考試的模型,不一定最耐打;只量其中一邊就決定選型,等於把沒量的那一邊直接拿去下注。
課後延伸
這次課堂的完整實作放在 Lab 3:LLM Evaluation and Security。多步驟 Agent 軌跡的 12 類風險與 guardrail 測試,可以接著閱讀 TraceSafe;模型裁判的位置偏見與自我偏好,則可參考 Judging the Judges 與 Self-Preference Bias in LLM-as-a-Judge。至於自動指標如何被照抄輸入等簡單策略騙過,Unsupervised Paraphrasing with Pretrained Language Models 提供了一個很直觀的例子。
寫到最後,其實只剩一句話:
一個分數不是真相,是一次測量。由誰提問、由誰評分,以及我們選擇不去測的那一面,一起決定了我們看見的世界。答案在成為真相以前,得先說清楚它是怎麼被量出來的。
