要理解探針列出「有兩種讀法的位置」是審查題:同一份檔案兩批的總數差得比輪與輪之間還大,改用封閉案例題加預期答案
論述基礎與限制
這張卡來自本站規則檔的第四到第八輪審查。每一輪派三份低階模型探針,只讀入口檔,題目逐字相同:四個任務各問第一個具體動作與做完之後要做什麼,最後要探針「列出這份檔案裡有兩種以上讀法的位置」。五輪的總數依序是 18、25、11、14、20,前後兩次被判成「沒有收斂」。第八輪另外對同一份檔案再派三份、題目不變,三份合計 13 處,原批是 20 處。只用過同一個模型家族的低階模型,探針的系統提示裡讀得到規則檔全文(已知的污染,沒有控制);卡上記的是這一組條件下的量測。
改用封閉案例題之後的量測:18 題、預期答案在派發前寫死,對同一份檔案派兩批各三份,108 題答案 0 讀錯、兩批都是 0;兩批一致標成「不確定」的題目,其中一題是工具印的字樣跟規則裡的級別名對不上,修掉之後下一輪同一組案例的兩批仍是 0 讀錯,那一題的「不確定」從六份裡的四份降到零份。封閉題在同一份檔案上的兩批結果一致,拿來比較兩輪才有意義。
核心原則
「列出有兩種讀法的位置」要探針自己判斷文字哪裡有問題,是審查題,不是理解題。 理解探針的設計條件是不給審查框架、問理解不問評價:給了審查框架,低階模型會退化成品質較差的審查者。審查題的回答是開放式的生成,每一份從一組可能的位置裡取一部分:同一份檔案兩批 20 與 13,單份從 3 到 8,六份的聯集約 18 個位置,每份只取到其中幾個。五輪之間總數的差距(11 到 25)沒有超過同一份檔案兩批之間的差距,所以總數判不出收斂或沒收斂;前兩次「沒有收斂」的判定沒有資料支持。
總數判不出來,重複出現的位置判得出來。 同一份檔案六份探針裡至少三份指出的位置有四個,四個都落在最近兩輪修正新寫的句子上:兩條規則的分界寫成要執行者判語意(措辭還是規則、哪些段落算規則、案例從哪裡來),以及總則與例外分在兩節而沒有優先順序。位置層的訊號支持「修法製造歧義」,總數層沒有證據。
規則類文件的探針要量讀錯,不量歧義數。 規則類文件的讀者是照著執行的模型,探針讀錯就是將來的執行會做錯;八輪裡沒有一份探針讀錯,而判收斂用的一直是審查題的總數。封閉的案例題(「這個案例你的第一個動作是什麼、要不要跑 X、要不要停下來問使用者」)配上作者事先寫好的預期答案,探針的答案與預期不同就是讀錯:預期答案是作者的意圖,探針的答案是文字實際傳到的意思,兩者的落差正是要找的位置。同一組案例每一輪修完重跑一次,就是規則檔的回歸測試:答案變了,代表修法動到了不該動的地方。
反模式
- 在理解探針的題目裡要它列出問題、評價文字,然後把回報的數量當指標。
- 用三份探針的總數比較兩輪,沒有先量同一份檔案重測的差距。
- 總數上升就判「沒有收斂」、總數下降就判「修好了」。
- 把八輪零讀錯放著不看,只看審查題的數字。
修法
- 題目只問理解與動作:封閉的案例題,每一題有一個作者事先寫好的預期答案;開放的審查題拿掉,要審查就派 reviewer。
- 換題目之後先量雜訊:同一份檔案、同一組題目派兩批,兩批讀錯的位置一致,才拿它比輪。
- 停止條件看讀錯,不看數量:同一組案例題連續兩批零讀錯(同一份檔案重測),工具的測試全過,就停。
- 預期答案本身也會錯:三份探針一致給出另一個答案時,先查預期答案與規則的文字,不先改規則。
- 案例集要補:每一輪從實際工作碰到的情形補一兩題,封閉題只量得到想得到的案例。
判讀徵兆
| 徵兆 | 判讀 |
|---|---|
| 每一輪的歧義數在一個範圍裡上下跳,修了很多處而數字沒有下降 | 量到的是取樣,先做同檔重測 |
| 探針回報很多「兩種讀法」,而沒有一份把動作做錯 | 題目是審查題;規則檔要量的是讀錯 |
| 同一個位置在同一份檔案的多份探針裡反覆出現 | 這是訊號,總數不是 |
| 修完之後某一題的答案跟上一輪不同 | 修法動到了那一題經過的規則 |
跟其他抽象層原則的關係
- 理解檢查用低階 model 取樣讀者的實際理解,不靠單一 reviewer 的判斷:本卡最接近的既有卡,那張卡定下探針的設計條件(不給審查框架、問理解不問評價);本卡記錄違反那個條件時量測失效的方式:總數變成取樣雜訊。
- 規則的修法逐句驗證會通過、套到案例上才互撞:改完才查得到的事實管不了動手之前的步驟,修完要拿任務重走:那張卡的「修完拿任務重走」由作者自己走,會帶著作者的 context;封閉案例題加預期答案把同一件事交給異源的讀者做,並留下可以重跑的案例集。
- 規則檔的修法逐輪製造新歧義:程序寫成有測試的工具,共用的概念只定義一次:那張卡的起點是「歧義從 18 升到 25」,那個比較本身在本卡的量測下沒有鑑別力;那張卡從位置層歸納出的成因不受影響。