计费口径:五个决定账单的事实
模型 API 的计费口径有五个事实,全部理解才能算准账。事实一:输入输出分价。输入(prompt)与输出(生成)单价不同,输出通常贵 3–5 倍(生成是逐 token 计算、输入是批量 prefill)——「输出 token 是输入的数倍单价」这条事实决定了成本优化的主攻方向是控制输出长度。事实二:上下文全量计费。多轮对话的每一轮,历史消息都要作为输入重新计费(模型无状态,历史靠重传)——第 10 轮对话的输入 = 前 9 轮全部 + 新消息,长对话的账单随轮次平方级增长(每轮都在付费「重读」历史)。事实三:token ≠ 字。英文约 1.3 token/词、中文约 1.5–2 token/字(取决于分词器),估算成本时用「字符数 × 系数」而非字符数——中文场景的成本天然比英文高。事实四:缓存有折扣。前缀缓存命中(相同 prompt 前缀复用 KV,本库 KV Cache 篇)的部分按折扣价计(常见 1/10 到 1/4)——把稳定内容放 prompt 前部不只是最佳实践,是实打实的折扣资格。事实五:不同档位价格差数十倍。旗舰与轻量小模型的价格差 10–50 倍——「模型选型」是成本优化里杠杆最大的一项(本库推理经济学篇的分层路由)。
一笔真实对话的成本拆解
用一个典型场景算账(数字取常见量级,具体价格以厂商为准)。场景:客服智能体,system prompt 2000 token(含知识库片段)、多轮对话、每轮回答约 400 token。第 1 轮:输入 2000 + 输出 400。第 5 轮:输入 2000 + 4×(用户消息+回答约 600) ≈ 4400 + 输出 400——输入涨了 2 倍。第 20 轮:输入已过 15000 token——单轮成本是第 1 轮的近 8 倍。这个曲线解释了两个工程决策的必然性:对话历史的压缩或截断(滑动窗口、摘要压缩历史——控制每轮输入的增长)、会话的重置策略(话题切换时开新会话,避免不相关的历史拖成本)。再算缓存的收益:system prompt 2000 token 若命中前缀缓存(每轮相同),按 1/10 价计——缓存折扣把「固定开销」削掉九成,RAG 与智能体场景(长且稳定的 system prompt)是缓存折扣的最大受益者。
成本优化清单:按杠杆大小排序
杠杆一:模型分层路由(10–50 倍)。简单任务(分类、改写、抽取)用轻量小模型,疑难任务才上旗舰——按任务难度路由是成本优化的第一杠杆(本库 Agent 生态篇的网关路由)。杠杆二:输出长度控制(数倍)。输出单价的数倍溢价让「让模型简洁」成为直接省钱——system prompt 里明确输出长度约束、要求结构化简答、max_tokens 硬上限。杠杆三:缓存命中(数倍到十倍)。稳定前缀前置 + 缓存友好的 prompt 结构(本库 KV Cache 篇的工程细节)。杠杆四:历史管理(随轮次放大)。滑动窗口、历史摘要压缩、会话切分——把平方级增长压成线性。杠杆五:批处理折扣(约五折)。非实时的批量任务用厂商的批处理 API(半价、数小时返回)——离线场景(数据标注、内容生产)的免费午餐。杠杆六:自托管评估(用量大时)——高频重任务的边际成本,自托管开源模型可能低于 API(本库本地推理篇的账本),但要用「总拥有成本」(硬件 + 运维)而非只看电费。
成本监控:把账单变成仪表盘
成本优化的前提是成本可观测。三个必须记录的口径:按场景/租户的成本归因(哪个功能、哪个客户在烧钱——混在一起的账单无法优化)、每轮的 token 构成(输入输出比、缓存命中率、历史占比——异常模式一眼可见:缓存命中率骤降 = prompt 结构被改坏)、单任务成本的中位数与 P95(长尾请求的成本突发——某些病态循环的对话)。进阶形态是预算与熔断:给每个智能体/租户设预算上限与告警线(本库 Agent 生态篇的成本治理缺口),超限降级到小模型或暂停——成本治理是生产化基建的一部分,不是财务部门的事后对账。
一个心态校准收尾:token 成本优化的目的是「花在刀刃上」,不是「越少越好」——为了省 token 阉割上下文导致质量下降,省下的钱抵不过价值的损失。正确的目标是「单位产出的成本」(每个完成任务、每份合格答案的成本)——这个口径下,该花的 token(更长的思考、更多的上下文)是投资,不该花的(冗余历史、啰嗦输出)才是浪费。
成本优化的进阶策略:提示词结构与缓存的微观工程
成本优化(正文清单)的进阶层是为缓存而设计的提示词工程——缓存命中率每提升一成,账单就降一截,其中的微观工程值得展开。缓存友好的 prompt 结构三原则。原则一:静态前置——system prompt、工具定义、few-shot 示例(不随请求变化的部分)全部放在最前,动态内容(用户输入、检索结果)放最后——前缀缓存按「从前往后的公共长度」命中,静态在前才能命中。原则二:稳定不抖动——前缀部分的任何字节变化都使缓存失效:时间戳、随机 ID、动态拼进 system 的内容(哪怕是空格差异)都是缓存杀手——动态化内容一律后置。原则三:分块对齐——缓存的块有粒度(本库 KV Cache 篇),前缀的长度对齐到块的边界(避免「差半个块」的浪费)。多轮对话的缓存工程:历史累积的对话天然前缀稳定(旧消息不变),「追加式」的历史管理天然缓存友好——而「每次都重排/压缩历史」的实现(动态摘要塞进 prompt 前部)是缓存杀手——历史压缩的内容应该追加在尾部而非改写头部。核算缓存的收益:命中率 × 前缀占比 × 折扣倍数 = 节省比例——用这个公式反推「什么样的 prompt 结构值得改造」(长且稳定的前缀收益最大)。微观工程的总结:prompt 的组织方式不只是「模型理解」的问题,还是「缓存经济学」的问题——同一份内容,排对了省一半钱。
成本优化的组织实践:从个人调优到 FinOps for LLM
成本优化(正文清单)在组织层面的实践叫 LLM FinOps——把云时代的 FinOps 纪律迁移到 token 支出上,三个组织机制值得建立。机制一:成本的可见性与归因。统一的网关层(本库中间件篇)记录每次调用的「归属标签」(团队、功能、环境),月度账单按标签拆分——「谁在花、花在哪」是优化的前提(无归因的账单无法行动)。机制二:预算与审批的分级。开发环境的调用宽松、生产环境按功能设月度预算、超额触发审批或自动降级(旗舰 → 轻量模型的自动切换)——预算不是限制创新,是把「无感的持续支出」变成「有感的决策点」。机制三:效率的复盘文化。每月的成本复盘会(同 SRE 的 postmortem 文化):Top 消耗功能的分析(token 构成、缓存命中率、模型档位)、优化机会的排行、上月优化措施的收益核销——把成本优化从「一次性运动」变成「持续运营」。FinOps for LLM 的组织意义:token 成本的特点是「与业务增长线性相关」——业务翻倍账单翻倍,没有治理的成本会线性失控;FinOps 的目标不是压成本,是让每一块 token 支出都对应一个被认可的 value——「单位产出的成本」作为全组织的共同语言,AI 的预算讨论才有了共同的度量衡。
Token 计费的定价结构解读:从价目表读出厂商策略
Token 计费(正文口径)的价目表本身是厂商策略的 X 光片,读懂定价结构能预判生态走向。结构信号一:输入/输出价差的比例。输出贵 3–5 倍是常态——价差拉大的厂商在「抑制滥用生成」(鼓励短输出);价差小的厂商可能在「鼓励生成型应用」。结构信号二:缓存折扣的深度。缓存折扣 1/10 的厂商在强力推动「长 prompt + 前缀缓存」的使用模式(智能体与 RAG 的友好信号)——缓存折扣的深度即「厂商想成为你的知识基础设施」的决心。结构信号三:批处理折扣的存在。半价批处理的存在说明厂商在「填充闲时算力」(离线任务的算力利用率生意)。结构信号四:上下文长度的阶梯定价。超长上下文的加价幅度反映「长上下文的真实成本」(KV 与 prefill 的开销转嫁)——加价平缓的厂商,长上下文的技术成本控制得更好。读价目表的实用结论:价格表不只是「多少钱」,是厂商希望你「怎么用」的说明书——把你的应用模式(高频短调用?长上下文智能体?离线批处理?)与价目表的结构对齐,选出来的厂商天然便宜——定价结构与使用模式的匹配度,比绝对价格更重要。
小结
计费五事实:输入输出分价(输出贵数倍)、上下文全量计费(长对话平方级增长)、token ≠ 字(中文更贵)、缓存折扣(稳定前缀前置拿 1/10 价)、档位差数十倍(模型选型杠杆最大)。成本清单按杠杆排序:模型分层路由、输出长度控制、缓存命中、历史管理、批处理折扣、自托管评估。成本可观测三口径(场景归因、token 构成、单任务分布)加预算熔断。心态校准:目标是「单位产出的成本」而非「越少越好」——该花的 token 是投资。
读者留言
COMMENTS 暂无还没有留言,来说第一句?