結果與撤回
第一個亮眼的數字是錯的,而我們說了。
MMR-Bench 最早的結果看起來非常漂亮。那是資料洩漏。把它撤回,是這個專案歷史上最承重的一件事,所以它留在紀錄上。
v1.0 回歸
於 執行:69 項通過,2 則警告。警告是封存的 v0.2 模型測試裡既有的 PyTorch Transformer nested-tensor 警告。
於乾淨的 runner 上、從全新 checkout 重現:69 項通過、2 則警告,憑證驗證與重播兩項也都通過。
v1.0 的實驗計畫依序跑了十二步 —— 從汰換不安全的求值、經過語意修正,到憑證試驗。
- 以 AST 白名單取代不安全的通用 Python 求值。
- 修正
^、ROUND與 1900 / 1904 日期語意。 - 重跑全部 v0.1–v0.9 測試。
- 執行 30 次隨機輸入突變。
- 執行 20 次次方運算試驗。
- 執行 20 次進位捨去試驗。
- 執行 20 次 1904 日期試驗。
- 對四份代表性的 XLSX 稽核簽署。
- 驗證簽章與完全重播。
- 竄改十份憑證負載,要求全數被拒。
- 拿十份憑證去重播錯誤的來源檔,要求全數被拒。
- 確認沒有任何一份憑證授權了公式寫入。
夾具實測結果
十一個夾具,每一個都是為了造出三來源之間某一種特定關係而建的。橋接欄計的是外部引擎在結構化參照被展開之前讀不進去的公式數。
| 夾具 | 可直接載入 | 經橋接 | 結果 |
|---|---|---|---|
| 正確結構化 XLSX | 否 | 12 | 51 筆三方一致 |
| 僅具名稱、已正規化的 XLSX | 是 | 0 | 51 筆三方一致 |
| 過期快取 | 否 | 12 | 49 筆一致,2 筆快取過期 |
| 公式漂移 | 否 | 12 | 45 筆一致,6 筆下游快取過期 |
| 過期快取的安全副本 | 否 | 12 | 49 筆一致,2 筆快取依政策不存在 |
| 漂移的安全副本 | 否 | 12 | 45 筆一致,6 筆快取依政策不存在 |
2^3 衝突 | 是 | 0 | 快取與外部引擎皆 8,MMR 為 1 |
ROUND | 是 | 0 | 僅外部引擎支援的結果 |
| 1900 日期 | 是 | 0 | 外部引擎與快取一致 |
| 1904 日期 | 是 | 0 | 外部引擎結果相差 1,462 天 |
1/0 | 是 | 0 | 試算表錯誤類別一致 |
2^3 那一列就是逼出 v1.0 求值器重寫的缺陷:Excel 的 ^ 傳到 Python 變成了 XOR,於是 =2^3 回傳 1,而活頁簿與外部引擎都說 8。它是被協定抓出來的,不是靠人讀程式碼讀出來的 —— 這正是「持有三份讀數而不是一份」的意義。
ROUND 現在遵循 Excel 的「四捨五入且遠離零」規則,所以 ROUND(2.675, 2) 是 2.68。1904 的落差固定為 1,462 天,而且那是外部引擎的問題、不是活頁簿的問題 —— 協定把它記為引擎限制,並禁止任何寫入。
在三十份輸入突變活頁簿上,MMR 與外部引擎對 100% 的公式一致,因引擎分歧而產生的覆核候選為零。
v0.1 的撤回
第一版釋出時回報標準準確率 100%,在九十度旋轉測試下掉到約 44.5%。那不是模型的成績。資料生成器把右/下固定成遞增方向、左/上固定成遞減方向,於是光看方向 token 就能答對 —— 模型從頭到尾不必讀矩陣。
修法是隨機決定路徑極性,並對同一個矩陣建立成對查詢:(X, d, y) 搭配 (X, opp(d), 1−y)。方向本身不再充分,模型必須真的去讀那條被標示的路徑。
修正後的校準實跑,8×8 矩陣、詞彙值域 16、路徑長度 5:
| 模型 | 參數量 | 標準 | 旋轉 90° | 路徑命中率 |
|---|---|---|---|---|
| Row-major,無方向 | 16,186 | 50.00% | 50.00% | 22.25% |
| Row-major+方向 token | 16,186 | 59.00% | 54.00% | 22.25% |
| MMR,共享四方向 | 15,459 | 83.50% | 79.25% | 100.00% |
| 2D CNN | 26,378 | 54.50% | 48.00% | 22.25% |
對上最強的基準線,標準測試 +24.5 個百分點、旋轉測試 +25.25 個百分點,而且參數量還略少。真正有意思的是最後一欄:只有 MMR 真的找得到那條被標示的路徑。
在這個合成的方向順序任務上,共享權重的多向遍歷讀得到線性化序列讀不到的結構。
真實 Excel 活頁簿,或一般 AI 任務。這是一次在生成資料上的校準。
安全修復政策
自 v0.4 起,修復門檻一直是寫死的數字,而不是臨場判斷。
- 候選
- 結構異常分數達 0.31 以上才產生。
- 自動修復
- 只在異常分數 ≥ 0.40 且 結構修復信心 ≥ 0.65 時執行。
- 其餘一律
- 送人工覆核。
- 來源工作表
- 永不覆寫。修復寫進副本。
- 模型分數
- 只作為佐證,永遠不是唯一授權來源。
這些門檻只在 v0.4 的合成分布上評估過。它們不是適用於任意生產環境活頁簿的認證門檻。
否證標準
v0.5 的實驗計畫事先寫死了什麼算失敗。出現以下情況,就不認為這個方法已被一般性地解決:
- 叢集式錯誤形成了與正解競爭的局部多數。
- 移除樣式後產生了錯誤的修復。
- 匿名化改變了結構性決策。
- 乾淨的活頁簿被修改。
- 無法從同儕公式重建出精確的修復。