thinking_budget 怎么设:按题目难度分配推理长度
预算不是越大越好。我们用 500 道题测了 6 档预算,找到了准确率和成本之间的拐点。
Orbis News阅读约 2 分钟
演示内容 · 文章、模型及数据均为虚构示例,不作为事实或价格依据。
{"version":1,"sourceTitle":"thinking_budget 怎么设:按题目难度分配推理长度","motif":"bars","min":9,"demoAuthor":"周以宁","models":["qwen/qwen3.8-max-prime","google/gemini-3.8-flash"],"order":1,"topicOrder":2,"topicIndex":0,"story":{"time":"10:30","dot":["Qwen3.8 Max","思考长度可以按次设定"],"title":"Qwen3.8 Max 开放 thinking_budget,推理长度可以按请求控制","sum":"简单问题可以把预算压到 512 tokens,复杂推导再放开到 32k。官方给出的数据是:同样的题库,预算设成 4k 时成本下降 41%,准确率只低 1.8 个百分点。","src":"通义千问","slug":"thinking-budget-guide","sourceExcerpt":"预算不是越大越好。我们用 500 道题测了 6 档预算,找到了准确率和成本之间的拐点。"}}
先看结论
- Qwen3.8 Max 在 4k 预算时性价比最高,再往上准确率几乎不涨。
- 可以先用便宜的模型判断题目难度,再决定给多少预算。
- 预算用完时模型会直接作答,不会报错,需要在日志里留意 reasoning_tokens。
参数怎么传
thinking_budget 是一个整数,单位是 tokens,表示模型最多可以用来思考的长度。不传时默认是 16k。
resp = client.chat.completions.create(
model="qwen/qwen3.8-max-prime",
messages=[{"role": "user", "content": question}],
extra_body={"thinking_budget": 4096},
)
print(resp.usage.completion_tokens_details.reasoning_tokens)6 档预算的测试结果
| 预算 | 准确率 | 平均成本 |
|---|---|---|
| 512 | 71.2% | ¥0.006 |
| 1k | 78.6% | ¥0.009 |
| 2k | 83.0% | ¥0.014 |
| 4k | 86.4% | ¥0.023 |
| 8k | 87.6% | ¥0.038 |
| 16k | 88.2% | ¥0.061 |
从 4k 到 16k,成本涨了 1.6 倍,准确率只多了 1.8 个百分点。
按难度动态分配
让 Gemini 3.8 Flash 先给问题打一个 1 到 3 的难度分,每次判断的成本不到 0.001 元。难度 1 给 1k,难度 2 给 4k,难度 3 给 16k。这样整体准确率是 87.1%,平均成本 0.021 元。
要注意的地方
- 预算用完时模型会直接作答,不会报错。
- 预算只限制思考部分,最终回答的长度用 max_tokens 控制。
- 流式输出时,思考内容在 reasoning_content 字段里。
文中提到的模型
模型 ID 可以直接填进 model 参数,在 Orbis 用同一个 API Key 调用。