第 1 步|先確認題目真的被答完
打開逐題原始檔(JSON/JSONL),不要只看總分。
- 空白預測率(
predicted 為空、null、或缺鍵) - 回應長度分布(中位數、P90、是否撞上固定字元/token 上限)
- 結尾是否被截斷(半句、未吐選項字母、reasoning 吃光 budget)
- 正確題是否大量是單一字母(例如只有
"A"),而錯誤題是長推理鏈
通過標準:空白預測率接近 0;同一基準內,答對/答錯的回應形態不應系統性分裂成「短字母 vs 長截斷」。
附腳本用法:
python3 blank_prediction_audit.py /path/to/result.json
下載 blank_prediction_audit.py →
第 2 步|樣本量撐得起多寬的信賴區間
- 記錄每道基準的
n(題數) - 粗算二項比例 95% 區間:約 ±1.96 × √(p(1−p)/n)
- 兩模型差值若小於區間寬度的一半,禁止用這次結果定名次
- 對關鍵基準(尤其決定排名的那幾格)準備 n≥100 的複測計畫
經驗錨點來自 T20 實測,供對照,不是普適公式。
| n | 大致 95% 區間半寬(p≈0.5 附近) |
| 30 | 約 ±13 到 17 百分點 |
| 100 | 約 ±10 百分點 |
| 300+ | 才比較能談「格與格」的位移 |
第 3 步|把敏感任務的通道切開
- 敏感/個資/病歷是否只走本機通道
- 是否有確定性後備(規則式正規表示式掃描),而不只押單模單輪
- 去識別是否至少兩輪(首輪遮罩 + 殘留複查)
- 基準第一名是否已做敏感探針;若漏遮姓名,不准進敏感路徑
發榜前的最後兩道關
一票否決:任何一項成立就先別發榜
- 某基準分數低於亂猜,且未拆逐題 JSON。
- 空白預測率 > 10%,卻仍用該基準均值排名。
- 僅 n=30 就宣稱「第 1 名/第 5 名」為定論。
- 敏感路徑沒有本機限制與規則式後備。
修量尺時優先看的三處
max_tokens/回應長度上限是否截斷答案 - 抽取器是否只認「全文唯一字母」,而漏掉長推理末尾的選項
- wrapper 是否把 thinking/reasoning 印進要給
json.loads 的字串
完整實測:一個月的本地模型實測,我親手推翻了自己排的名次 →
支持 Lab Grimoire
如果這份清單幫你擋下一次錯誤的排名,歡迎到 Ko-fi 支持後續內容。
☕ 請我喝杯咖啡
把這頁加到書籤,下次跑分前再走一遍。