我的AI驗收題被打滿了:一次失敗的消除法實驗,跟兩個可複製的方法
直接回答
AI的驗收題會被打滿,四次全過不是制度變好的證據而是該換題的訊號。我的Threads貼文驗收題在7月4日的基準線是3條違規,8月2日重跑四次全部6判準通過、三次還是第一版就過。這時候繼續拿它當驗收工具,任何制度改動都會顯示沒有變差,因為它已經量不動了。同一天我想跑消除法測規則價值,也失敗了:規則是session開場載進記憶體的,中途搬走檔案,同一個session裡派出去的子任務仍然能逐字引出那些檔案的原文。
我想測一件事:那幾支「教AI怎麼思考」的規則,刪掉會不會讓輸出變差。
跑完四次,四次全過。分數很漂亮,然後我發現那組數據完全無效。
—
第一個發現:題目被打滿了
我有一組固定的驗收題,用來衡量制度改動有沒有效。其中一題是寫一篇符合全部格式規則的Threads貼文,6條判準由腳本自動判定。
7月4日的基準線是3條違規。
8月2日重跑四次,四次全部6判準通過,三次還是第一版就過,沒有重寫。
同一組驗收題實測:2026年7月4日基準線3條違規,8月2日重跑4次全部6/6通過、3次第一版就過。連續全過代表題目已飽和,不再具鑑別力。
這不是好消息。
一個連續全過的驗收題已經沒有鑑別力了。之後不管我怎麼改制度,它都會顯示「沒有變差」,而我分不出那是真的沒變差,還是題目根本量不動。
評測題組本來就只活一到三個模型世代,被打滿之後就該丟掉重做。這是那個規律在我自己的系統上實際發生的樣子。
—
第二個發現:對照組根本沒生效
真正想測的是消除法:把4支矯正型規則搬走,跑同一組題,比較差異。
我把檔案搬到暫存區,確認規則資料夾少了4支,然後派出新的子任務。
它們仍然能把那4支檔案的內容一字不漏引出來。
規則是session開場就載進記憶體的。中途搬走檔案,對已經開著的session完全無效,包含刪除。要做真正的消除法只有一條路:搬走檔案、關掉程式、開新session再跑。
規則載入時機實測:規則於session開場載入記憶體,中途搬走檔案後派出的子任務仍能逐字引出原文。消除法必須搬檔後重開session才能生效。
所以那四份數據不是兩組對照,是同一個條件跑了四次。
我沒有把它當成有效結果交出去。如果沒有事先設那道探針,我會拿著四份漂亮的分數宣稱「刪掉沒差」,而那個結論會是假的。
—
探針怎麼設才問得出真話
那道探針一開始也差點失效。
我問子任務:「你的context裡有沒有某條規則?」6隻裡有2隻斬釘截鐵回答「沒有」。
實際上有。後來我改了問法,要求它們把該規則的原文逐字貼出來至少20字,同樣的模型整段引得出來。
差別完全在問法。可靠的問法有三個要素:
一,要求逐字引用原文,不收有或沒有。 二,埋一個不存在的假字串當誘餌,答得出假的就是在瞎掰。 三,放一個一定在context裡的字串當對照組,答不出來代表這隻的內省整個不能用。
加上這三樣之後,6隻全部答對,包括正確拒答我編出來的假字串。
問AI「你context裡有沒有X」的可靠問法三要素:要求逐字引用原文至少20字、埋一個不存在的假字串當誘餌、放一個必定存在的字串當對照組。實測6隻agent從2隻答錯改善為全部答對。
我中間還犯了一個錯:先收到2隻說「沒有」、1隻說「有」,就相信了多數,還去解釋為什麼那隻少數的不可信。
結果少數那隻是對的。差別在於我對那2隻只問了有沒有,對第3隻要求了引原文。
看誰有舉證,不是看誰票多。
—
換一題咬得動的
原本的題目飽和了,所以我設計了新的:多輪累積要求的文案迭代。
做法是分5輪,一輪一輪給要求,不一次給完。第2輪要求某個關鍵詞放在第一行、第3輪加一個時間跨度、第4輪加行動呼籲並禁用幾個廣告詞、第5輪要求砍到指定字數以內。
鑑別力設計在第5輪。砍字是真實的取捨壓力,最容易把前面幾輪的要求一起砍掉。
判準6條,全部可機器判定,其中5條對應前面各輪的要求,第6條測的是常駐格式規則有沒有在改稿壓力下被犧牲。
兩隻跑下來,各1條違規,但掉的不是同一條。
一隻掉格式,全篇標點用錯,五輪過去沒有一輪發現,而且整個任務沒有呼叫過任何工具,從未去讀那條格式規則。 另一隻掉內容,我說「兩年」,它寫成「2年」。
一個掉格式一個掉內容,代表這把尺有兩個獨立的量測面。
—
最意外的結果
我賭第5輪砍字會砍掉前面幾輪的要求。沒有發生。
兩隻的關鍵詞、行動呼籲、禁用詞、字數,砍完全部還在。
也就是說,「多輪累積要求會被漏掉」這個失敗模式,現在的模型大致上自己做得到了。那條專門在防這件事的規則,成為「已經過期的矯正」的第一號候選。
真正掉的兩件事都不在原本的設計預期內。其中那隻全程沒有呼叫工具的,是最好的標本:那條格式規則就在它的context裡,它從頭到尾沒想起來。
規則在context裡不等於會被套用。這件事我寫成規則寫了很久,那天才第一次看到它被量出來。
一次失敗的實驗比四份漂亮的數據值錢,前提是你有辦法知道它失敗了。探針、假字串、外部重跑,這三樣的成本都只有幾分鐘,但沒有它們,我會很有自信地把一個假結論交出去。