2026/10/30 · Weekly Radar
Microsoft 把 ThinkingBox 的「比對最終資料庫狀態」評分直接當 RL reward,先依 base policy 的成功率挑出有學習訊號的 187 題,對 Qwen3.8-27B 跑 50 步 GRPO:pass@1 從 51.7% 提升到 60.8%,20 次全過的題目從 38 題增加到 107 題。
這是 Microsoft 與 Hugging Face 聯合發表的部落格文章(作者 Tuhin Kundu,並感謝 Mirco Milletari、Xiang Jiang、Sergio Paniego、Zhuochun Li 共同撰寫與審閱),是第一篇 ThinkingBox 文章的續篇,訓練程式碼 ThinkingBox-Training 已在 GitHub 開源。ThinkingBox 評分 agent 的方式是比對最終資料庫狀態與預期結果,作者把這個可執行的評分訊號拿來當 benchmark 以外訓練任務的 reward。Qwen3.8-27B 經過 50 步 GRPO 後,平均成功率(pass@1)從 51.70% 提升到 60.78%,20 次嘗試全部通過的任務從 38 題增加到 107 題。文章的核心觀點是:對特定模型來說,大部分任務不是已經會就是完全沒希望,兩者都學不到東西,所以挑選要拿哪些任務訓練才是關鍵。
ThinkingBox-Bench 有 507 個任務,每個任務都會啟動真實後端,給 agent MCP 工具和一個握有私密 context 的模擬 LLM 使用者,最後檢查資料庫紀錄;評分看的是紀錄是否正確,而不是特定的工具呼叫。第一篇文章讓 18 個模型各跑 20 次:Kimi-K3 有 93.89% 的任務至少解出一次,但 20 次全過的只有 68 題(13.41%)。Claude Opus 5.5 的 pass@1 比 Opus 5 高 0.66 分,20/20 全過的卻是同樣的 241 題,表示更高的總準確率沒有換來更好的可靠度。作者因此認為,生產環境的資料庫工作不能只看 pass@1,「觀察到的 20/20」更能反映可靠度。
Qwen3.8-27B 微調前後:20/20 從 38 題(7.50%)增加到 107 題(21.10%),多了 69 題;pass@1 從 51.70% 提升到 60.78%;pass@20 則從 453 題(89.35%)降到 446 題(87.97%),少了 7 題。以飯店降級房型任務為例,這類操作需要經理核准,base model 在 20 次中有 15 次沒經核准就直接改了訂單,微調後的模型 20 次都保留了訂單和付款狀態。檢查點在完全沒訓練過的 507 題 benchmark 上評測,領域、資料庫和大部分工具都與訓練池不同。整體 pass@1 60.78%、20/20 107 題,高於 Kimi-K3 的 68 題;GPT-5.4 有 128 題 20/20,但 pass@1 是 65.36%;GPT-6 Astra 有 231 題 20/20,pass@1 是 58.31%;Claude Opus 5.5 以 241 題、67.16% 領先。GPT-5.6 Sol 的 pass@1(61.91%)略高,20/20 卻只有 82 題;Claude Sonnet 4.6 是 102 題、59.19%。作者把這種變化稱為 sharpening:可重複的成功變多,至少成功一次的覆蓋率則略降,機率質量往可靠的軌跡集中。五個領域的 pass@1 和 20/20 全部上升,但 pass@20 只在 neobank 和顧問領域上升,零售、旅遊和車險都下降,其中車險覆蓋率掉最多(−7.0 分),零售的 20/20 漲最多(+24.5 分)。
作者定義「每個可靠任務的成本」為完整 507×20 輪的估計成本除以 20/20 通過的題數。整輪成本從 925.80 美元降到 855.58 美元(−7.6%),每次成功嘗試的成本從 0.177 美元降到 0.139 美元(−21.4%),每個可靠任務的成本從 24.36 美元降到 8.00 美元(−67.2%)。對照組是 GPT-5.4 6.80 美元、GPT-6 Astra 7.45 美元、Claude Opus 5.5 7.80 美元。這些是比較用的服務成本指數,不是真實帳單,也只算推論成本,不含訓練和建立訓練集的探測成本。
候選任務先離線對 base policy 探測一次,之後固定使用這個任務池,訓練期間刻意不再重新探測難度。每個 rollout 都是完整 episode,使用全新後端和隔離的 MCP session,由 GPT-5 Chat 扮演模擬使用者。訓練與評測共用同一份解析程式碼(tb_interpret.py),否則 reward 量到的會是另一個 agent。參考訓練是在 187 個任務上做全參數 RL,採 token-mean GRPO,每次更新 18 組、每組 8 個 rollout,共 144 個 episode,使用 24 張 H100,同步訓練並 offload 參數與 optimizer,AdamW、學習率 1e-6、不用 weight decay,共 50 步。零變異的組用 DAPO 方式替換,後端逾時視為系統錯誤重新補跑,不算失敗。
ThinkingBox-Bench 的題目完全沒有用在訓練。如果一組 GRPO rollout 全部成功或全部失敗,就沒有 advantage 訊號,只有成敗混合的組能提供對比;而在這個情境下每個 rollout 都很貴。作法是對每個候選任務在 base policy 上探測 n 次,用 Jeffreys 後驗 Beta(k+½, n−k+½) 建模潛在成功率,再以 0.08、0.40、0.60、0.90 為界分桶:低於 0.08 的「很少解出」和高於 0.90 的「幾乎總是解出」丟掉,中間三桶保留。範例中先用 GPT-5.4 篩出可解的任務,base policy 8 次探測成功 3 次,得到 Beta(3.5, 5.5),最大機率質量(54.0%)落在「困難」區間,實際訓練時也產生了成敗混合的組。最後的 Qwen3.8-27B 任務池共 187 題。
Reward 是任務自己對最終狀態的二元判定:最終狀態正確得 1 分,錯誤、缺漏或多出副作用都是 0 分,不評分過程軌跡。絕大多數用確定性的測試判定,不呼叫 LLM judge;少數無法直接從資料庫讀出的狹窄需求才用 LLM judge 回答二元 rubric 問題。技術堆疊包括 thinkingbox、thinkingbox-data(釘在 thinkingbox-bench-v1.0 tag)和 thinkingbox-training 三個 repo,環境是 Linux 或 WSL、Python 3.12、uv、Verl 0.9.0;參考拓撲是三個節點、每個節點八張 H100,評測用 vLLM 服務加上 OpenEnv,完整協定是 507 題 × 20 次,共 10,140 次。作者給出三個建議:訓練前先探測並查看難度分布直方圖;確認訓練和評測解析器的輸出完全一致;同時回報 pass@k 和 all-k 全過的數量。
五個領域中有三個的 pass@20 下降,符合 sharpening 的特徵;out-of-distribution 的說法有限,因為訓練和評測共用框架、模擬使用者、評分機制、部分工具和任務風格;成本數字是不含訓練和探測成本的比較指數;公開範例任務不是私有的訓練池,因此無法只靠公開資料重現;少數 reward 依賴 LLM judge;結果只來自單一模型的一次參考訓練;零變異組補跑仍然要付完整的 rollout 成本;所有公開 benchmark 任務都是合成重建,不是真實客戶資料。程式碼採 MIT 授權,benchmark 資料採 CDLA-Permissive-2.0,論文為 arXiv:2608.19741。
這篇真正的論點是「pass@1 會說謊」:Opus 5.5 比 Opus 5 高 0.66 分,但 20/20 全過的還是同樣 241 題。他們自己的模型 pass@20 倒退了 7 題,作者也老實把它叫做 sharpening,沒有包裝成全面進步。