Gemma 4 有內建的思考模式,讓模型在給你答案之前「大聲推理」。這就像要求某人在數學題上展示他的解題步驟——額外的步驟通常會帶來更好的答案。
但這不總是值得的取捨。讓我們拆解什麼時候用、什麼時候跳過。
什麼是思考模式?
在思考模式中,Gemma 4 在產生最終答案前會生成一串推理。模型實際上有一個內部的草稿紙,用它逐步推導問題。
不使用思考:
使用者:17 × 23 是多少?
Gemma 4:391使用思考:
使用者:17 × 23 是多少?
Gemma 4:<think>
17 × 23
= 17 × 20 + 17 × 3
= 340 + 51
= 391
</think>
391思考發生在 <think> 標籤內。你的應用可以選擇向使用者顯示這個推理或剝離它只使用最終答案。
如何啟用思考模式
用 Ollama
# 使用模型的思考版本
ollama run gemma4:26b-thinking或透過 API 搭配 budget token 參數:
import requests
response = requests.post("http://localhost:11434/api/chat", json={
"model": "gemma4:26b",
"messages": [
{"role": "user", "content": "Solve: If 3x + 7 = 22, what is x?"}
],
"options": {
"num_predict": 2048, # 允許足夠的 tokens 用於思考
},
"stream": False,
})
print(response.json()["message"]["content"])用 System Prompt
你也可以透過 system prompt 觸發思考行為:
messages = [
{
"role": "system",
"content": "Think step by step before answering. Show your reasoning in <think> tags, then provide the final answer."
},
{
"role": "user",
"content": "A train leaves Chicago at 9 AM traveling 60 mph. Another leaves New York at 10 AM traveling 80 mph toward Chicago. The distance is 800 miles. When do they meet?"
}
]Budget Tokens
某些實作讓你用預算控制模型做多少思考:
# 更多預算 = 更多思考 = 較慢但較好
response = requests.post("http://localhost:11434/api/chat", json={
"model": "gemma4:26b",
"messages": [{"role": "user", "content": "Complex reasoning task here..."}],
"options": {
"num_predict": 4096, # 更高的預算給更多思考空間
},
})思考模式什麼時候有幫助
思考模式在需要多步驟推理的任務上大放異彩:
數學和邏輯問題:
無思考:「答案是 42」(有時錯)
有思考:逐步解題 → 正確答案複雜程式設計:
無思考:生成看起來正確但有微妙 bug 的程式碼
有思考:推理邊界情況、資料流,然後生成更乾淨的程式碼分析和比較:
無思考:表面層級的答案
有思考:考慮多個角度,權衡取捨以下是相同問題的實際比較:
| 問題類型 | 無思考 | 有思考 | 改善 |
|---|---|---|---|
| 基本數學 (2+2) | 正確 | 正確 | 無 |
| 多步驟數學 | ~70% 正確 | ~90% 正確 | 顯著 |
| 邏輯謎題 | ~50% 正確 | ~80% 正確 | 重大 |
| 程式碼除錯 | 找到明顯 bug | 找到微妙 bug | 顯著 |
| 簡單問答 | 快速、正確 | 較慢、正確 | 無(更糟:較慢) |
| 翻譯 | 良好 | 相同品質 | 無 |
| 創意寫作 | 自然流暢 | 可能感覺過度思考 | 較差 |
何時跳過思考模式
別對這些情況使用思考模式:
- 簡單問答:「法國的首都是什麼?」不需要思維鏈
- 翻譯:思考模式增加延遲卻不提升翻譯品質
- 創意寫作:額外的推理可能讓輸出感覺生硬、過度計劃
- 聊天對話:自然的來回對話不會從正式推理中受益
- 資料提取:從文字中提取名字、日期和數字是模式匹配,不是推理
- 高吞吐量應用:如果你在處理數千個請求,2-3 倍的減速很重要。查看我們的批次處理指南。
效能影響
思考模式有實際成本:
| 指標 | 無思考 | 有思考 |
|---|---|---|
| 生成的 tokens | 100-500 | 300-2000 |
| 回答時間 | 1-5 秒 | 3-15 秒 |
| VRAM 使用 | 基準 | 相同(KV 快取稍多) |
| 答案品質(推理) | 良好 | 較佳 |
| 答案品質(簡單) | 良好 | 相同 |
模型在思考模式中生成 2-5 倍多的 tokens,因為它在寫出自己的推理。在 Apple Silicon Mac 上,這意味著:
- M2 Pro 16GB:簡單答案 2 秒 → 思考答案 6-8 秒
- M4 Max 64GB:簡單答案 1 秒 → 思考答案 3-4 秒
對互動聊天,延遲很明顯。對批次處理,它可能讓你的處理時間翻倍或三倍。
實際範例:有 vs 無
讓我們看一個真實問題:
提示詞: 「我的袋子裡有 3 顆紅球、5 顆藍球和 2 顆綠球。如果我不放回地抽 2 顆球,兩顆都是藍色的機率是多少?」
無思考:
機率是 5/10 × 4/9 = 20/90 = 2/9 ≈ 0.222正確,但如果問題更棘手,模型可能會跳過一步然後出錯。
有思考:
<think>
總球數:3 + 5 + 2 = 10
藍球:5
第一顆是藍球的機率:5/10
抽出一顆藍球後:
- 剩餘球數:9
- 剩餘藍球:4
第二顆是藍球的機率:4/9
合併機率:5/10 × 4/9 = 20/90 = 2/9
</think>
抽到 2 顆藍球的機率是 2/9,約 22.2%。相同的答案,但思考版本更可能在較難的問題上抓到錯誤,因為它明確地追蹤每一步的狀態。
將思考與其他功能結合
思考 + JSON 輸出: 用思考模式進行推理,然後輸出結構化 JSON:
messages = [
{
"role": "system",
"content": """Think through the problem in <think> tags.
Then output your final answer as JSON (no other text after the JSON):
{"answer": number, "confidence": number, "reasoning_summary": string}"""
},
{"role": "user", "content": "Complex problem here..."}
]更多關於結構化輸出,看我們的 JSON 輸出指南。
思考 + 微調模型: 如果你已微調 Gemma 4 用於特定領域,思考模式仍可以在複雜領域特定問題上提升推理品質。
下一步
- 用不同模型試試思考模式:模型選擇指南
- 與結構化輸出結合:JSON 輸出指南
- 在本機執行思考模式:Ollama 設定指南
- 看看在你的硬體上的效能:Mac 效能指南
Stop reading. Start building.
~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.
Launch Playground />


