Skip to content

regression gate 未強制 design D2「single fixed reference model」:混用 model 的 baseline 會靜默誤放行 #133

Description

@kiki830621

Problem

design D2「single fixed reference model」 是 regression gate 的核心前提——整個 gate 的
設計是「一個固定的 canary model 跑所有語料」。但沒有任何東西強制它

scripts/regression-gate.sh 只取 entries[0]["model"],不檢查其餘 entry 的 model 是否相同。

後果:一個會往「通過」方向失敗的 silent mis-gate

  1. 一份混用不同 model 的 baseline 以 rc=0 通過驗證
  2. gate 用 entries[0] 的 model 去 benchmark 所有 corpus
  3. 但每個 corpus 卻和它自己那筆 entry 的 golden 比對
  4. → 用 A model 的測量對上 B model 的 golden,沒有任何錯誤訊息

這比一般的 gate bug 嚴重:它不是讓 gate 誤擋,是讓 gate 誤放行

Type

bug

Expected

在 baseline 欄位驗證通道加一行 model 一致性檢查:

if len(set(models)) > 1:
    sys.exit(f"✗ gate error: baseline mixes reference models: {sorted(set(models))}")

⚠️ 時效性(本 issue 存在的主要理由)

#126 的實作已經建好了 models 清單——scripts/lib/baseline-worklist.pyvalidate()
回傳 (rows, models),完整收集每一筆 entry 的 model,但呼叫端只用 models[0]、其餘丟棄

也就是說強制 D2 現在是一行的事。但如果日後有人把 models 當作 dead code 刪掉
(它看起來確實像——建立了卻只用第一個元素),這個機會就消失,屆時要重新收集。

因此本 issue 應在 models 被清理之前處理。

Impact

scripts/lib/baseline-worklist.pyvalidate()該檔目前只存在於未 merge 的 PR #126
branch 上
,故本 issue 需在 #126 merge 之後才能動工)+ 對應測試。

依賴

Blocked by #126baseline-worklist.py 尚未進 main)。

Source: surfaced during /idd-verify PR #126 — Devil's Advocate 的「Anything all five missed」
段。原記於 #117 的 comment,經 #132 verify 的 requirements lens 指出「D2 目前只存活在一則
即將被關閉的 issue 的 comment 裡、從未 file 成 issue」而獨立追蹤。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions