SIEVE 一晚五篇 · E · 旗艦題被自己殺掉
Flaky-Item Quarantine: A Split-Sample, FDR-Controlled Removal Rule for Replicate-Unstable Benchmark Items, and When It Does (and Does Not) Stabilize a Leaderboard
原文:Flaky-Item Quarantine(旗艦題)
10 頁 · 178 KB · PDF
63 個 macro;預先註冊的頭條在真實 MMLU 上被推翻,論文照實報告。
開啟 →這一篇是刻意設計來拿第一名的:跟 Codex 共同設計,特別針對前四篇踩到的四種失敗模式先做預防。結果它被自己在動工前寫下的停損條件殺掉了。我把它完整收進這個成果集,因為這正是整套方法論最重要的一次實測。
排行榜的名次穩不穩,跟題目會不會抖有多大關係?
一份排行榜的可信度,取決於它給出的順序穩不穩。如果照著它自己宣告的評測協議重跑一次,相鄰的模型就換位置,那這個排名有一部分是評測噪音的產物。
這篇隔離出其中一個可控來源:flaky item —— 在宣告的重複分布下(固定題目、固定計分、固定提示包裝、固定採樣溫度、種子=重複次數),模型答對與否接近擲硬幣的題目。
方法是分割樣本的精確二項式檢疫:先導重複用來選出「最可能暴露抖動」的模型,全新的保留重複拿來對一個事前設定的不穩定容忍度做精確二項式檢定,再用 Benjamini–Hochberg 控制偽發現率。虛無分布是從容忍度算出來的,絕不從被檢定的翻轉資料估計 —— 這正是它跟「把翻過的題目移掉」這種天真做法的差別。
切到模擬看排名帶變穩;切到真實 MMLU 看它反而更亂。預先註冊的 50% 門檻就是在這裡失守的。
63 個 macro。這一節要分兩半讀。
而且有一支「天下沒有白吃的午餐」破壞測試:當資料裡根本沒有 flaky 題時,方法不能製造出假的變異下降 —— 實測 0.2%,等於沒有。
預先註冊的頭條主張是:移除 flaky 題可以讓排行榜的名次翻轉率下降至少 50%,而且贏過同預算的基準線。這條在真實資料上失敗了。
| 指標 | 模擬(有利情境) | 真實 MMLU | 判定 |
|---|---|---|---|
| 被隔離題數 | 50 題(設計植入) | 72 / 210(34.3%) | — |
| 隔離集合稽核 FDR | ≤1.3% | 0.0%(72 題全數一致) | 方法有效 |
| 變異下降 | 66.6% | 28.4% | 未達 50% 門檻 |
| 同預算基準線(丟最難的題) | −24.8%(輸) | 29.9%(贏過我的方法) | 被基準線打敗 |
| 名次翻轉率 | 23.1% → 18.9%(改善) | 6.8% → 28.6%(惡化) | 反向 |
原因很清楚:真實的 MMLU 排行榜本來就已經很穩(翻轉率只有 6.8%),在這種情況下移掉 34% 的題目,損失的統計力比省下的噪音更多。效益是情境相依的,不是普世的。
這篇跟前四篇最大的差別 —— 它自己收了一份真實資料集。
前四篇用的是公開資料或模擬。這篇需要「同一題重跑很多次」的資料,而這種資料不存在,所以自己跑:4 個本機模型 × 210 道分層抽樣的 MMLU 題 × 48 次重跑,溫度 0.7,種子=重複次數(可重現)= 40,320 筆。全部在這台 M5 Max 上用 ollama 跑完。
| 環節 | 工具 | 備註 |
|---|---|---|
| 選題 | SIEVE 題庫(38 題排名) | 從既有題庫挑 S2 已過的候選,不是臨時想的 |
| 規格 | SPEC.md | 動工前先寫死主張、資料、統計、kill 條件 |
| 統計核心 | Python 標準函式庫 | 不用 numpy / scipy —— 依賴越少,別人越容易重跑 |
| 測謊器 | test_*.py | 寫在方法本體之前 |
| 數字入稿 | scripts/make_macros.py | results JSON → LaTeX macro,正文零手打數字 |
| 排版 | tectonic | 終端機直接編譯 |
| 對抗審查 | _orchestrator/codex_review.sh | 叫 Codex(GPT-5.5)當敵意審稿人 |
| 獨立複驗 | _orchestrator/verify_paper.sh | orchestrator 重跑測試、重編 PDF、掃關鍵字與引用 |
蒐集過程中踩到的坑(已寫進紀錄)
透過 ollama 呼叫 MLX 格式的模型時,回傳的內容是空的。
這些模型預設會進入 thinking 模式,必須明確帶 think:false。
修好蒐集器並重跑。這條被記錄下來,因為它會讓任何人重現時同樣卡住。
這份資料集本身是這篇最有價值的遺產:一個 4 模型 × 210 題 × 48 次重跑的MMLU 正確性矩陣,可重現、可再利用於任何 benchmark 噪音或排行榜穩定性研究。
gates/ 下 8 個檔案,含一個中途轉向紀錄。
主張卡 + 拒稿信 + 停損條件
動工前寫下「若真實資料上達不到 50% 就判負」
新穎性
獨立雙掃描器
資料
自己跑 40,320 筆真實重跑矩陣
設計轉向
`gates/G3_design_pivot.md`:中途設計調整的完整紀錄
統計測謊器
植入回收 + 白吃午餐破壞測試 + 超均勻 p 值檢查
分析
模擬與真實資料分開報告
最終判定
`gates/G6_final.md`:**停損條件觸發 → 誠實負面**
G0 那一關是關鍵。停損條件是在還沒看到任何真實資料之前寫下的。如果等到看完資料再決定門檻,就會不自覺地把門檻挪到剛好能通過的位置。
移除題目一定會讓變異下降,關鍵是有沒有下降得比亂移除更多。
基準線那一條最後就是它的死因 —— 在真實 MMLU 上,「丟掉最難的題」這個笨基準線(29.9%)贏過我的方法(28.4%)。如果沒有事前設定這個對照,論文會只報 28.4% 並宣稱成功。
這一篇的設計本身就是對抗式的產物。
在前四篇都被 Codex 抓到真問題之後,第五篇改變做法:先讓 Codex 當共同設計者,針對前四篇踩到的四種失敗模式(頭條用了理論管不到的規則、從被檢定的資料估虛無、把內建設定當發現、沒跟同預算基準線比)事先設防。
同時由 Codex 幫忙預先註冊停損條件 —— 也就是說,殺死這篇論文的那條規則,是設計階段就由對抗方寫下的。
最終評分 78–80,誠實負面。目標是超越 SAVE 的 89,沒有達成,這一句照實寫在總結報告的第一段。
底材選錯了
MMLU 是選擇題,本來就穩定(翻轉率 6.8%)。在一個已經很穩的排行榜上做穩定化,沒有空間可以改善。
正確的底材是什麼
推理型/代理型的 benchmark(GSM8K、SWE-bench 這一類),抖動嚴重且後果實際。方法與資料蒐集流程都已就緒,缺的是多小時的生成密集蒐集。
一晚五篇,目標是產出至少三篇強過既有兩篇的論文,並做出一篇打敗 SAVE 的第一名。誠實結論:沒有達成。最好的是 B 的 85,旗艦被自己的停損條件殺掉。但五篇都通過了獨立複驗,都可以被別人拿去用 —— 而一個捏造的 92 分不行。
PAPER 09 · Flaky-Item Quarantine(旗艦)· SIEVE E