怎麼評測一個決策模型
這一頁解決一個很實際的問題:當兩邊的數字對不上時,你該信哪個。
公開的評測長什麼樣
先說幾條可以被第三方複查的做法,它們的設計比數字本身更有參考價值。
選項亂序 + 多次重複。 一個有公開答題記錄與復現工具的評測用 108 道四選一題目, 不給文件也不給工具,每題跑 3 次、選項順序打亂,隨機猜的基線是 25%。 它報出的結果是:當前公開版本 84.6%、延遲中位數 199 ms、成本 $0.0088; 而對比的最強生成模型是 98.0%,但要 2.12 s、$1.59。
⚠️ 那兩個金額的單位原文沒寫清(它用的是 per full run)—— 不要拿它們
去算單次呼叫的單價。
這道題的價值不在誰贏,而在於它把三維(準確率、延遲、成本)都擺出來了 —— 84.6% 配 199 ms 和 98.0% 配 2.12 s 是兩個不同的產品,不是一個比另一個差。
打亂順序是為了測一個具體的東西:如果模型對選項順序敏感, 那它在生產裡就是一個不穩定的元件。上面這個評測報出了「選項順序」這一維。
基礎率是天花板。 另一個獨立榜單在 PubMedQA、Banking77、HelpSteer2 上 每題 300 項 × 5 次,逐決策機率以 CC BY 4.0 公開。它給出的兩個數字都很重要:
- 在 PubMedQA 上,Jev 與第一名並列,而價格是 1/28。
- 在 HelpSteer2 上,沒有任何模型超過標籤的基礎率。
第二條的意思是:那個資料集上,「總是選最常見的那個標籤」就是一個很強的基線, 而所有模型都沒超過它。在這種情況下,排名第一說明不了任何事 —— 它測的是標籤分佈,不是模型能力。
把畸形的輸出也算錯。 還有一個基準明確把「返回了畸形的機率分佈」 計為 miss。這一條看起來瑣碎,但它決定了不同模型的分數能不能放在一起比 —— 一個允許輸出非法值的模型,它的準確率是沒有意義的。
統計比較:不要只看誰的數字大
兩個模型報出 84.6% 和 85.1%,這是不是真的更好?
不一定。 樣本量 100 的情況下,這完全在噪聲範圍內。可以做的檢驗裡, 被真實專案用過的一個是 McNemar 檢驗 —— 它比較的是同一批題目上 兩個模型意見不一致的那些,而不是比較兩個總分。
一個復刻專案在 256 條公開判斷上重放了原始答案, 得到 231 對 238,McNemar p = 0.21,結論是與原始模型沒有顯著差異。 「沒有顯著差異」是一個完全站得住的結論,而且比硬說「我們更接近了」有用得多。
另一種更嚴格的做法是預註冊:先固定判據,再跑。有個排序基準就是這麼做的, 結果是「在 20 Newsgroups 上過、在 Amazon ESCI 的六個條件裡四個不過」。 這種「一半過一半不過」的結果比全過更可信 —— 它說明判據是真的在工作。
四個自評資料的陷阱
真實專案裡更常見的是自己跑一組資料然後報個數字。這類數字有四個固定陷阱:
① 題目形狀本身會改變結果。
有一個調查類實驗給出了一條很硬的對照結論:把 yes/no 問題寫成 Noul
還是寫成 Choice,對結果的影響大於 Jev 與 GPT-4.1 之間的差距。
也就是說,在很多「A 比 B 好」的結論裡,真正在起作用的可能是問題的寫法。
這意味著換原語必須重測,不能假設結論可以遷移。
② 單輪、小樣本、沒有方差。 一條「攻擊攔截率 100%」的自評,跑的可能是 10 條。而同一片生態裡 有可復算的專案報的是「0 個對抗樣本翻轉(樣本 50)」這種帶分母的寫法。 分母就是可信度。
③ 跨呼叫有抖動。 一個把決策模型當計算器用的專案(每一步問它 13 個選項裡選哪個), 特意做了一個 Rerun 按鈕,用來暴露同一個輸入在兩次呼叫之間的抖動。 抖動本身不可怕,不知道有抖動才可怕 —— 它意味著你測出來的閾值 在別的時刻未必成立。
④ 專用模型的主場優勢不算普遍勝利。 一個 706,048 參數(2.8 MB)的專用模型在它自己的表單填寫任務上報 99.7%, 而通用模型在這一項上是 83.6%。作者自己寫明這是 「在自己主場上的專家,不是普遍意義上的勝利」。 這句話該成為所有「XX 超過 Jev」條目的預設讀法。
一句話
評測的價值在分母、在方差、在子類,而不在總分。 一個帶樣本量、帶選項順序測試、帶負結果的 60 分,比一個不帶這些的 95 分值錢。