qwen3 中文文档 下载 App

思考模式 vs 非思考模式 — Qwen3 两种模式的速度、质量与成本实测对比

一句话结论

数学推理场景对比

数学推理是思考模式优势最明显的领域。以下是 Qwen3-235B-A22B 在几个数学基准上的表现:

基准测试Thinking ModeNon-Thinking Mode提升
AIME 202485%+~30%接近翻倍
MATH70%+~45%显著提升
GSM8K~96%~88%中等提升

可以看到,难度越高的数学题,思考模式的收益越大。AIME 是美国数学奥林匹克选拔赛级别,需要复杂的多步推理——思考模式几乎是非思考模式的三倍。GSM8K 是小学数学应用题,差异就小得多。

代码生成场景对比

代码场景同理。在 HumanEval 和 MBPP 等代码基准上:

基准测试Thinking ModeNon-Thinking Mode
HumanEval85%+~70%
MBPP80%+~65%

思考模式在代码任务上的优势体现在:

对于简单的函数生成(如 add(a, b)),两种模式的产出质量几乎一样。

延迟和 token 开销

这是必须正视的代价。思考模式比非思考模式慢多少、贵多少?

延迟(以 32B Dense 模型在单卡 A100 上为例)

场景非思考首 token思考首 token思考链长度最终答案
简单问答~200ms~800ms50-100 token~50 token
数学证明~250ms~2000ms500-1000 token~200 token
代码生成~250ms~1500ms300-800 token~300 token

首 token 延迟的差距主要来自思考链也要从头生成——模型在输出 <think> 之后开始生成思考链,用户要等思考链生成完毕才能看到最终答案。

Token 开销

API 调用时,思考链 token 同样计费:

场景非思考总 token思考总 token费用倍数
简单问答~100~2002x
数学证明~250~10004x
代码生成~350~10002.9x

什么时候必须关思考模式

格式化输出

如果你要求模型输出 JSON、XML 或代码,一定要关思考模式。原因:

# 好的做法
text = tokenizer.apply_chat_template(
    [{"role": "user", "content": "输出 {\"name\": \"Alice\", \"age\": 30} 的 JSON"}],
    enable_thinking=False  # 确保输出干净的 JSON
)

实时对话机器人

如果你的产品是聊天机器人,用户期望快速响应。即使是复杂问题,也建议先给一个"我在思考"的提示,然后开思考模式。但首 token 延迟超过 1 秒用户就会不耐烦。

低 token 预算

思考链会消耗上下文窗口。在多轮对话场景下,频繁开思考模式会让上下文很快耗尽。建议:

什么时候必须开思考模式

高精度推理任务

需要 Agent 能力

如果模型需要和工具/外部系统交互(调用 API、执行代码、搜索信息),思考模式让模型能:

实际决策表

你的场景推荐模式理由
聊天机器人非思考 + 复杂问题时开平衡速度和质量
数学/科研助手思考精度优先
代码辅助默认非思考,调试时开常规生成不慢,调试需要深度
API 批量处理非思考省钱、快
Agent 自动任务思考需要规划和调整
格式化输出强制非思考避免污染格式
搜索增强问答非思考有检索增强,不需要额外推理

混合策略:动态切换

一些生产环境的做法是根据用户意图自动切换:

这可以通过关键词触发或轻量分类模型来实现。

相关阅读