iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
自我挑戰組

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

Prompt 與 output contract—論輸入和輸出之格式的重要

  • 分享至 

  • xImage
  •  

Day 11 提到了推論成本的比較,而這樣的比較仰賴每種方法都得使用相同的 prompt、題目與評分方式,否則 token 再怎麼對齊也沒有意義。我們可以仔細檢查 prompt,倘若指令直接要求模型把答案寫成 \boxed{ANSWER},它究竟會不會照做?

Sebastian Raschka 在《Build a Reasoning Model (From Scratch)》第三章先從模型輸出擷取最後一個 boxed answer,再做正規化與數學等價判定;正式評估時,prompt 也會要求模型用同一種格式作答。作者使用的措辭是提高模型遵守格式的機率,沒有把一行指令當成保證;我們也把這個差別做成配對實驗。官方 companion hub也把第三章定位在 parsing、verifier 與 benchmark evaluation,本文沿用同意的脈絡,再加入逐題的格式、正確率與成本紀錄。

讓我們先把 prompt 和 output contract 分開:Prompt 是交給模型的文字;output contract 還包括答案如何擷取、允許哪些 fallback、怎麼正規化、verifier 能處理哪些表示法,以及格式不合規時要留下什麼錯誤。這次的 evaluator 會優先取得最後一個完整的 \boxed{...};找不到方框時,才退回最後一個數字。Fallback 可以救回答案,strict_format_valid 仍會記成 false。最後一個方框後若還有文字,同樣不符合這次的格式要求。

我們繼續使用 frozen revision 的 Qwen3-0.6B-Base,從原有的 1,000 題 validation set 依固定 SHA-256 排序取出 64 題。兩個條件共用題目、greedy decoding、seed 42、batch size 16、256 個 output token 上限與同一版 verifier;沒有更新權重,也沒有讓模型先看到 sealed test 的內容。第一個 prompt 只保留最基本的續寫提示:

Question:
{problem}

Answer:

第二個 prompt 加上原先固定的答案格式:

You are a helpful math assistant.
Solve the problem. Show the necessary reasoning, then put only the final
result on the last line in exactly this form:
\boxed{ANSWER}

Question:
{problem}

Answer:

如果模型能把自然語言指令當成可靠的介面,第二組的 boxed extraction 與 strict format 應該一起增加。實際輸出只完成了前半件事:

implicit_direct
  correct                  10 / 64
  pass@1                   0.15625
  last boxed extraction     1 / 64
  strict format             1 / 64

boxed_direct
  correct                   6 / 64
  pass@1                   0.09375
  last boxed extraction     7 / 64
  strict format             2 / 64

寫明固定格式以後,評分器找到方框的次數從 1 次增加到 7 次,通過 strict format 的輸出只增加 1 次。六個答對的 boxed_direct outputs 全靠數字 fallback 取回答案,兩個格式合規的 outputs 則都答錯;其中一題只輸出 \boxed{1},參考答案是 \sqrt{5}。格式正確與數學正確在這裡沒有同行。

另一題更能看出答案位置為什麼需要 output contract,當題目給定 2x+3y=4y=34,參考答案是 -49。模型的輸出開頭是:

$x = \boxed{-10}$

To solve the problem, we need to find the value of x ...
...
2x = -98
x = -49
...

它在後面的推導算出了 -49,但完整的方框只有開頭那個 -10,接著生成到 256-token 上限。Evaluator 依既定規則取出 -10,把這題判錯。我們可以從半途出現的式子猜測模型後來修正了,而批次評估需要一個明確答案,不能每題臨時判斷哪一行才算數。

同題配對也顯示 prompt 改變的範圍超過排版:64 題之中,51 題在兩邊都答錯,3 題都答對;顯式格式救回 3 題,同時讓 7 題從對變錯,正確題數淨減少 4 題。這批 validation observations 足以描述本次執行,樣本與模型都有限,尚未支持「boxed prompt 會降低準確率」這種一般結論。它至少提醒我們,prompt 會改變整段 continuation,不能只數最後出現幾個方框。

implicit_direct 使用 3,941 個 input tokens 與 14,624 個 output tokens,合計 18,565;boxed_direct 的指令較長,input tokens 增至 6,437,output tokens 降到 7,425,合計 13,862。前者的 output median 是 256,後者只有 17.5,可觀察到成本的改變。兩組都有 256-token 上限,實際使用的計算量依然不同。這份紀錄只能確認第二組較常提早停止,無法單靠輸出反推出 EOS 行為的原因,batch latency 也不能直接當成 serving throughput。

Output contract 在這次實驗裡做成了一組可測試欄位:有沒有完整方框、方框後是否還有文字、fallback 抽出了什麼、答案是否正確、verifier 是否支援該表示式。等到本次鐵人賽後期規劃的 SFT 與 RLVR,這些欄位才有機會成為 supervision target 或 reward component;今天只改 prompt,所以結果仍屬於 inference-time comparison。

一句格式指令沒有建立可靠的輸出行為,下一個可檢查的問題也隨之出現。既然模型會把答案放在推導前面,甚至在算出新答案以前就用完 token,下一篇會把 PlanSolution 與最後答案的位置一併寫進 prompt,再觀察問題分解救回了哪些題目,又花掉多少計算。


上一篇
公平比較:對齊 token、延遲、工具與花費預算
下一篇
Decompose、plan、solve——拆解問題在什麼時候會有用?
系列文
模型真的會推理嗎?30 天從 Base Model 打造可驗證的小型推理模型18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言