iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
自我挑戰組

模型真的會推理嗎?30 天從 Base Model 打造可驗證的小型推理模型系列 第 13

Decompose、plan、solve——拆解問題在什麼時候會有用?

  • 分享至 

  • xImage
  •  

Day 12 的聯立方程是用來檢查問題拆解的,直接作答時,模型一開頭先寫了 \boxed{-10},後面才算出 x=-49,生成在 256-token 上限停止。這次要求它先寫 Plan、接著完成 Solution,並把答案留在最後一行;同一個模型用了 128 個 output tokens,交出 \boxed{-49},這一題才總算是答對了。

問題分解常被說成把難題拆成幾個容易處理的小問題,但真是如此嗎?一個難題要如何被拆解成數個可被驗證的步驟?以及這些步驟要如何讓模型推論出正確答案?同時確保解題成本是可被負擔的?若計畫一開始就選錯方法,後面的推導只會沿著它繼續錯答下去。於是,本日沿用前一篇的 64 題 validation subset,把直接解題與 plan-then-solve 做成逐題配對比較。

新的 prompt 只有一項改動,那就是固定輸出順序。Plan: 先列短的編號步驟,Solution: 再執行,最後一行只能留下方框答案。

You are a helpful math assistant.
Solve the problem using this exact structure:
1. Start with "Plan:" and give a short numbered decomposition.
2. Continue with "Solution:" and carry out the plan.
3. Put only the final result on the last line in exactly this form:
\boxed{ANSWER}

Question:
{problem}

Plan:

兩邊都使用 frozen revision 的 Qwen3-0.6B-Base、相同的 64 題、greedy decoding、seed 42、batch size 16、256 個 output token 上限與同一版 evaluator。沒有工具呼叫、沒有更新模型權重,也沒有執行 sealed test。這些實驗控制能讓我們了解:原本答錯的題目有沒有被改對,原本答對的題目是否被改錯。

結果先增加了三題正解,同時也多用了 token:

boxed direct
  correct          6 / 64
  pass@1           0.09375
  strict format    2 / 64
  total tokens     13,862

boxed decompose
  correct          9 / 64
  pass@1           0.140625
  strict format   16 / 64
  total tokens     22,586

pass@1 增加 0.046875,也就是 4.6875 個百分點。逐題攤開以後,可以看到這三題從哪裡來:

direct 0 -> decompose 0    52
direct 0 -> decompose 1     6
direct 1 -> decompose 0     3
direct 1 -> decompose 1     3

六題被改對,三題被錯判,淨增加三題。救回的題目包括三題 Prealgebra,以及 Intermediate Algebra、Algebra、Counting & Probability 各一題;被改錯的三題分屬 Number Theory、Prealgebra 與 Algebra。每類只有一到三題,這份分布適合拿來找案例,還不能用來比較哪些數學領域更需要被拆解。

其中一題問 1,200 人裡有 30% 不喜歡廣播,而這群人又有 10% 不喜歡音樂,總共有多少人兩者都不喜歡。直接版本只回覆 360,停在第一層百分比。分解版本先列出兩個計算,再得到答案:

1200 * 0.30 = 360
360 * 0.10 = 36
Final result: \boxed{36}

另一題問 96 的正因數中,有多少同時是 12 的倍數。直接版本回覆正確答案 4;分解版本先做質因數分解,接著把「共同因數」與「12 的倍數」混在一起,只列出 12、24,最後輸出 \boxed{2}。Plan 讓錯誤變得容易定位,沒有替推導提供正確性保證。

格式也需要單獨看:Decompose 版本有 9 題答案正確,其中 6 題同時通過 strict format,另外 3 題靠 fallback 擷取到等價答案。相較於 direct 的 2/64,strict format 增至 16/64,仍有 48 題沒有完整遵守輸出契約。Plan:Solution: 改變了輸出的結構,最後一行依舊會漏掉方框、留下多餘文字,或在答案前用完 token。

兩組都有 256-token 上限,但實際計算量差了不少;Direct 使用 6,437 個 input tokens 與 7,425 個 output tokens;decompose 使用 8,101 與 14,485 個,總量從 13,862 增至 22,586,增加 62.9%。Decompose 的 output median 是 256,64 題裡有 40 題碰到上限。相同上限只控制每題最多能生成多少,沒有讓兩組成為 compute-matched comparison。兩次執行的 batch latency 也不適合直接解讀成 serving throughput。

樣本數同樣限制了準確率的解讀,Direct 的 Wilson 95% interval 是 0.0437 到 0.1898,decompose 是 0.0758 到 0.2462,兩者重疊。我們可確認這批 validation tasks 上的配對觀察:固定 Plan、Solution 與答案位置後,pass@1 從 6/64 變成 9/64,而成本是總 token 增加 62.9%,只能說這份資料還不足以說明問題分解對數學推理的一般效果。

這次的六題改對與三題錯判,說明 greedy decoding 只讓我們看到 prompt 所導向的一條路徑。接下來若對同一題取樣多條路徑,就得重新區分候選池裡「至少一次答對」與最後交出的單一答案,而這正是 self-consistency 要處理的問題。


上一篇
Prompt 與 output contract—論輸入和輸出之格式的重要
下一篇
Self-consistency—多抽樣與多數決
系列文
模型真的會推理嗎?30 天從 Base Model 打造可驗證的小型推理模型18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言