模型选择与成本基础:能力、延迟、价格和任务匹配
前面九篇笔记,我们已经学会了调用大模型 API、管理消息与 token、控制生成参数、处理错误与重试。到此,“能不能跑起来”的问题基本解决了。但从这一篇开始,我们要面对一个更现实的问题:该用哪个模型? 同一个任务,用最强的模型和用最便宜的模型,成本可能相差 25 倍。本文介绍模型选择的核心权衡——能力、延迟、价格,以及如何用代码估算一次调用的成本。
三个权衡维度:能力、延迟与价格
选模型本质上是三件事的权衡:
- 能力:模型对复杂推理、长文本、代码等任务的完成质量。
- 延迟:从发出请求到收到完整结果的耗时。
- 价格:每次调用按 token 计费的花费。
这三者通常互相冲突:能力越强,往往越贵、越慢;便宜的小模型速度快、成本低,但复杂任务上质量不够。所以不存在“最好的模型”,只存在“最适合当前任务的模型”。
判断一个模型够不够用,最直接的办法是拿真实任务做小批量对比测试:同一批输入,分别用候选模型跑一遍,人工或脚本比对输出质量。这个流程看似麻烦,却是避免凭感觉选模型的最可靠方式。
以 GPT-5.6 系列为例看模型分层
以 OpenAI 当前(2026 年 8 月)的 GPT-5.6 系列为例,同一代模型按能力分成三档(价格为每 100 万 token):
| 模型 | 定位 | 输入价格 | 输出价格 |
|---|---|---|---|
gpt-5.6-sol |
旗舰,复杂专业任务 | $5.00 | $30.00 |
gpt-5.6-terra |
均衡,兼顾质量与成本 | $2.00 | $12.00 |
gpt-5.6-luna |
低成本,高吞吐场景 | $0.20 | $1.20 |
三个模型的上下文窗口都是 1.05M token、最大输出 128K token,主要差别在“思考能力”:它们都支持从 none 到 max 的推理档位(reasoning),档位越高输出质量越好,但延迟和成本也越高。注意输入价格从 luna 到 sol 相差 25 倍——选错模型,代价会直接反映在账单上。
计费上还有两个关键点:输出 token 比输入 token 贵(通常是几倍),所以让模型少说废话也能省钱;另外有两个官方省钱机制——缓存输入(命中缓存约按原价 10% 计费,适合重复的固定前缀)和 Batch 批处理(约半价,适合非实时的批量任务)。
成本是怎么算出来的
一次调用的费用 = 输入 token 数 × 输入单价 + 输出 token 数 × 输出单价,单价以每 100 万 token 计。举个例子:一次调用消耗 2000 个输入 token、500 个输出 token,用 gpt-5.6-terra 计算:2000 ÷ 1000000 × 2.00 + 500 ÷ 1000000 × 12.00 = 0.004 + 0.006 = 0.01 美元,折合人民币约 7 分钱。单看一次不贵,但每天调用一万次就是 100 美元——批量场景下成本会迅速累积,这正是模型选择值得专门花一篇来讨论的原因。
按任务匹配模型:一个简单决策思路
不要追求“最强的模型”,而是让模型能力与任务难度匹配。一个实用的决策思路:
- 简单任务(分类、抽取、改写、翻译):小模型足够,选最便宜的档位。
- 常规任务(日常问答、一般代码):中等档位,质量与成本均衡。
- 复杂任务(长文分析、数学推理、高难度代码):旗舰模型,必要时调高 reasoning。
另外两条经验:交互式场景(聊天、客服)优先考虑延迟,别让用户等太久;开发时先用便宜模型把流程调通,确认质量不达标再升级模型,而不是一开始就上旗舰。
最小可运行示例:按任务选模型并估算成本
下面的程序把“选模型”和“算成本”封装起来:根据任务难度选模型,调用后打印 token 用量与估算成本。
1 | import os |
几个关键点:
pick_model用关键词做最简单的任务分级,实际项目中可以换成更细的规则,或后续文章要讲的模型路由。resp.usage返回prompt_tokens和completion_tokens,是计费的真实依据;成本公式就是“输入 token 数 × 输入单价 + 输出 token 数 × 输出单价”,注意单价以 100 万 token 为单位。- 模型名和价格会随官方调整,建议把模型名放进环境变量(如
MODEL_NAME)统一管理,并定期核对官方定价页。
常见问题
是不是越贵的模型越好? 不是。对分类、改写这类简单任务,贵模型和小模型的输出质量几乎没有差别。把简单任务交给旗舰模型,等于花 25 倍的钱买同样的结果。
模型名会不会变? 会。服务商会发布新模型、弃用旧模型,价格也会调整。不要把模型名硬编码散落在代码里,统一放在配置或环境变量中,并在新模型发布时重新评估。
怎么知道一次调用花了多少钱? 看响应里的 usage 字段:里面有输入和输出的 token 数,乘上对应单价即可。想控制成本就先从这里记账,找出消耗最大的调用路径。
延迟太高怎么办? 先检查是不是模型选大了。把简单任务切到小模型,或降低 reasoning 档位,通常立竿见影;交互场景还可以用前面学过的流式输出改善首字体验。
什么时候应该调高 reasoning 档位? 当你发现当前模型或低档位在复杂推理上明显出错、而任务又必须保证质量时。reasoning 档位越高,模型花在内部推理上的时间越长,质量通常越好,但延迟和成本同步上升。默认从低档位开始,按实际效果逐步调高,是控制成本最稳妥的做法。
小结
- 模型选择的本质是在能力、延迟、价格三者间权衡,三者通常此消彼长。
- 同一代模型往往分多个档位,价格可能相差数十倍,先让任务难度匹配模型档次。
- 计费按输入、输出 token 分别计价,输出更贵;缓存输入和 Batch 是两种省钱手段。
- 用
resp.usage记账并估算成本,是控制开销的第一步。 - 实践顺序:先用便宜模型跑通流程,质量不达标再升级模型。
下一篇开始进入提示词阶段,我们学习如何写出清晰、稳定的提示词。