5.5 节实验:同一个模型开思考与关思考,在一批带标准答案的题上比准确率、延迟和花费
| 文件 / 目录 | 说明 | 大小 |
|---|---|---|
| 📁 ../ | 返回上级目录 | - |
| 📁 sample_output/ | 子目录 | - |
| 📄 README.md | 3.5 KB | |
| 📄 requirements.txt | 13 B | |
| 📄 run.py | 7.1 KB | |
| 📄 tasks.jsonl | 2.7 KB |
这份代码回答一个问题:同一个模型,打开思考以后,在你的任务上能多答对几道题,代价是多等多少秒、多花多少钱。
做法是把一批带标准答案的题,用同一个模型、同一份提示跑两遍,两遍只差一个参数 reasoning_effort:none 是不思考,high 是充分思考。每种模式把整套题跑几遍(默认 3 遍),因为模型输出有随机性,只跑一遍会把运气当成效果。
只用 API。任何能跑 Python 3.9+ 的电脑都行,需要一个 AI Builder Space 的 key。
cd 5_5_thinking
uv venv && source .venv/bin/activate # 没有 uv 就用 python3 -m venv .venv
uv pip install -r requirements.txt # 或 pip install -r requirements.txt
export AI_BUILDER_TOKEN=sk_你的key
python run.py # 默认 grok-4-fast,16 道示例题,每种模式 3 遍,约 3 分钟
python run.py --model gpt-5 --repeats 2 # 换一个模型
能用的模型:grok-4-fast 和 gpt-5 都能把思考彻底关掉(none),适合做这个对比。grok-4.5、grok-4.7 最低只能到 low,kimi-k3 只有 low、high、max;AI Builder Space 上的 deepseek 思考是关着的,开不了。
屏幕上先是一张汇总表:两种模式各自的准确率(括号里是每一遍的对题数)、延迟中位数、平均输出 token 和整套题跑一遍的花费。下面是每道题在两种模式下各答对几遍,思考帮上忙的题会标出来。逐条结果(包括模型最后几百字的回复)存在 results/ 下的 JSON 里,答错的题建议打开看一眼:有时是真算错,有时是没按格式写答案。
我们的样例输出见 sample_output/(2026-10-23,在 Mac Studio 上调用 AI Builder Space):
| 模型 | 思考关 | 思考开 | 延迟中位数(关 → 开) | 平均输出 token(关 → 开) | 整套题一遍的花费(关 → 开) |
|---|---|---|---|---|---|
| grok-4-fast(3 遍) | 14.3/16(13、16、14) | 16/16(三遍都全对) | 2.1 → 8.1 秒 | 91 → 672 | $0.0086 → $0.0319 |
| gpt-5(2 遍) | 15/16 | 16/16 | 1.9 → 2.6 秒 | 42 → 193 | $0.0185 → $0.0666 |
思考帮上忙的集中在几类题:数字母(count_e,两个模型关思考时都常数错)、日期推算、多步乘法(电费)、排列计数。查首都、抽取金额、单位换算这类题,开不开都全对,开了只是更慢更贵。你的数字会和我们的不一样,尤其思考关时每一遍的对题数会上下跳几道。
把你自己的 10–20 个例子写成一个 JSONL 文件,每行一题:
{"id": "invoice_07", "question": "……你的输入……", "answer": ["标准答案", "另一种可接受的写法"]}
然后 python run.py --tasks my_tasks.jsonl。判分规则在 run.py 的 is_correct:取模型回复里最后一个“答案:”后面的内容,去掉空格和标点后和标准答案比;标准答案是数字时按数值比(“130 度”算对 130)。如果你的任务答案是长文本,没法这样精确比对,就把 is_correct 换成你自己的判断,例如检查是否包含关键字段。
价格写在 run.py 顶部的 PRICES 里(美元每百万 token,2026 年 10 月 AI Builder Space 的价目),价格变了或换了模型就改那里。思考产生的 token 按输出计费,已经算在输出 token 里。