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 方式
# 用 thinking 变体
ollama run gemma4:26b-thinking或者通过 API:
import requests
response = requests.post("http://localhost:11434/api/chat", json={
"model": "gemma4:26b",
"messages": [
{"role": "user", "content": "求解: 3x + 7 = 22,x 等于多少?"}
],
"options": {
"num_predict": 2048, # 留够 token 给思考过程
},
"stream": False,
})
print(response.json()["message"]["content"])系统提示词方式
通过 system prompt 也能触发思维行为:
messages = [
{
"role": "system",
"content": "回答前先逐步思考。在 <think> 标签中展示推理过程,然后给出最终答案。"
},
{
"role": "user",
"content": "一列火车早上9点从北京出发,时速120公里。另一列10点从上海出发,时速150公里。两城相距1300公里,它们什么时候相遇?"
}
]思考预算
一些实现允许你控制模型的思考量:
# 预算越高 = 想得越多 = 越慢但越准
response = requests.post("http://localhost:11434/api/chat", json={
"model": "gemma4:26b",
"messages": [{"role": "user", "content": "复杂推理任务..."}],
"options": {
"num_predict": 4096, # 更大的预算给更多思考空间
},
})什么时候有用
思维模式在需要多步推理的任务上效果明显:
数学和逻辑题:
不开思维:直接给答案(有时会错)
开了思维:一步步推导 → 答案更准复杂编程:
不开思维:生成的代码看起来对但有隐藏 bug
开了思维:先推理边界情况和数据流,代码更干净分析和对比:
不开思维:表面分析
开了思维:多角度思考,权衡利弊实测对比:
| 问题类型 | 不开思维 | 开了思维 | 提升 |
|---|---|---|---|
| 简单数学(2+2) | 正确 | 正确 | 无 |
| 多步数学 | ~70% 正确 | ~90% 正确 | 显著 |
| 逻辑谜题 | ~50% 正确 | ~80% 正确 | 很大 |
| 代码调试 | 找到明显 bug | 找到隐藏 bug | 显著 |
| 简单问答 | 快速正确 | 慢一些但同样正确 | 无(反而更慢) |
| 翻译 | 好 | 质量一样 | 无 |
| 创意写作 | 自然流畅 | 可能显得刻意 | 反而差一些 |
什么时候别用
这些场景不建议开思维模式:
- 简单问答:"法国首都是哪里?"不需要推理链
- 翻译:思维模式增加延迟但不提升翻译质量
- 创意写作:多余的推理会让输出显得生硬
- 日常聊天:自然对话不需要形式化推理
- 数据提取:从文本中提取姓名、日期是模式匹配,不是推理
- 高吞吐应用:处理几千个请求时,2-3 倍的减速很致命。看批量处理指南
性能影响
思维模式有真实的成本:
| 指标 | 不开思维 | 开了思维 |
|---|---|---|
| 生成 token 数 | 100-500 | 300-2000 |
| 回答时间 | 1-5 秒 | 3-15 秒 |
| 显存占用 | 基准 | 相同(KV 缓存略多) |
| 推理任务质量 | 好 | 更好 |
| 简单任务质量 | 好 | 一样 |
思维模式会多生成 2-5 倍的 token。在 Mac Apple Silicon 上意味着:
- 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/9,约22.2%。答案一样,但思维版本在更难的问题上更不容易出错,因为它显式地追踪了每一步的状态。
组合使用
思维模式 + JSON 输出: 让模型先推理,再输出结构化 JSON:
messages = [
{
"role": "system",
"content": """在 <think> 标签中思考问题。
然后以 JSON 格式输出最终答案(JSON 之后不要其他文字):
{"answer": 数字, "confidence": 数字, "reasoning_summary": 字符串}"""
},
{"role": "user", "content": "复杂问题..."}
]结构化输出的更多细节看 JSON 输出指南。
思维模式 + 微调模型: 如果你微调过 Gemma 4,思维模式仍然能在复杂领域问题上提升推理质量。
下一步
- 不同模型试试思维模式:模型选择指南
- 结合结构化输出:JSON 输出指南
- 本地跑思维模式:Ollama 安装教程
- 看看你的硬件跑起来怎么样:Mac 性能实测



