把 LLM 账单砍掉 60% 的四类手段

原作者:Bhavesh Modi 原文链接:https://webosmotic.com/blog/llm-token-cost-optimization/


结论先行

把 LLM 账单砍掉 60% 的四类手段:缓存、语义缓存、小模型与路由。这篇文章的核心主张是:成本优化是工程问题,不是采购问题——让每次结果花更少的 token,而不是等账单来了再换便宜模型。它给出四类可叠加的手段:提示缓存(缓存读取按标准输入费率约 1/10 计费)、语义缓存(embedding 相似度命中直接返回)、小语言模型(窄任务的每 token 推理成本低一个数量级)、模型路由(按任务层级匹配模型)。

但必须说清楚证据强度:原文明确写了「没有任何单一杠杆能单独实现 60%」,而文中所有百分比(90% 缓存折扣、50–90% OpenAI 折扣、25% 写入溢价、一个数量级)都来自被引用方,文章本身没有提供任何客户案例、实测账单或测量数据。所以 60% 应当视为组合手段的理论上限,不是承诺值。

原文出处

作者:Bhavesh Modi(Project Manager – AI) 原文:LLM Token Cost Optimization: Proven Cuts To AI Spend By 60%(Webosmotic) 发布:2026-08-03 链接:https://webosmotic.com/blog/llm-token-cost-optimization/

文中引用的外部来源包括 Gartner 的市场预测、Anthropic 与 OpenAI 的官方定价文档、NVIDIA Research 的论文,以及 Redis 工程博客。

要点解读

1. 提示缓存:这是见效最快的一档

不同厂商的机制差别很大,这一点值得记清楚:

特性Anthropic ClaudeOpenAI
激活方式手动,用 cache_control 标记对 1,024+ token 的提示词自动激活
缓存读取折扣约低于标准输入费率 90%50–90%(取决于模型)
缓存写入成本高于标准输入费率 25%多数模型无额外费用
默认缓存寿命5 分钟,可选 1 小时5–10 分钟,非高峰最长 1 小时

注意 Anthropic 的缓存写入更贵 25%——这意味着缓存不是无条件划算的:只有当一个前缀会被重复使用时才值得缓存,一次性长提示写入缓存反而多花钱。

本站判断:这条对三维项目的实际影响很大。系统提示、CLAUDE.md、工具定义、以及那些反复要参考的核心文件(比如渲染管线的约定、坐标与单位规范),都属于典型的「稳定前缀」,缓存收益最高;而一次性的模型清单、贴图说明,缓存了反而亏。

2. 语义缓存:在提示缓存之上再加一层

思路是存储历史 query-response 对,用 embedding 相似度匹配新查询,命中就直接返回缓存答案、完全不调用模型。原文给了四条落地建议:

  • 相似度阈值要设得足够高,避免把「相近但不同」的问题答错;
  • 定义清晰的 TTL 和失效规则,确保缓存答案不会比它所依据的数据存活更久;
  • 构建 fallback 路径,未命中时正常调用模型,并且命中与未命中分开记录日志;
  • 把命中率当作一等指标追踪。

文中没有给出语义缓存的具体节省百分比,只引用 Redis 工程博客佐证这个模式。

3. 小语言模型:把窄任务从旗舰模型上摘下来

引用 NVIDIA Research 的结论:小语言模型对大多数狭窄且重复的 agent 任务足够强、运营上更合适,每 token 推理成本低一个数量级。

任务与模型层级的匹配建议:

任务模式推荐模型层级原因
意图分类、路由小语言模型,约 10B 参数以下狭窄、重复、变化少
结构化数据抽取针对 schema 微调的小模型输出格式可预测
开放式推理、起草前沿 LLM需要通用能力
罕见、高风险决策前沿 LLM + 人工复核准确性优先于单次调用成本

4. 模型路由:五条可执行建议

  • 写路由规则之前,先按任务类型记录每一次调用——没有基线就没法判断路由有没有效果;
  • 每种任务默认用小型或中型模型,仅在超过既定置信度阈值时才升级;
  • 对每个端点限制 max output tokens,不要让生成长度无限;
  • 把非交互式负载(夜间摘要、批量分类)迁到 batch 定价层级;
  • 每季度复核路由规则,因为「某任务最便宜且够用」的模型经常在变。

5. 输出长度:常被忽略的最大单项

文章引用 Redis 的结论:旗舰模型上输出 token 的定价是输入 token 的数倍,因此「响应长度通常比提示长度更能决定账单」。在成本驱动表里,「输出长度」被标为啰嗦响应的最大单项支出,成因是顺序解码本身定价就高。

6. 生产环境的五个成本泄漏点

  1. 静态 system prompt 和工具定义每次调用都重发,而不是缓存;
  2. 每一轮都传完整对话历史,而不是摘要后的状态;
  3. RAG 流水线返回超出答案所需的分块;
  4. 无论任务复杂度,每个请求都路由到旗舰模型;
  5. 没有按功能的成本归因,在财务发现问题前,没有人对这笔账单负责。

成本驱动与账单影响对应关系:

成本驱动成因典型影响
输出长度顺序解码,定价为输入的数倍啰嗦响应的最大单项
重复上下文系统提示、工具 schema、历史每轮重发随调用量线性复利
检索噪声过大的 RAG 分块作为输入抬高 token 却不改善答案
模型不匹配简单重复任务用旗舰模型为不需要的能力付溢价

7. 治理:让账单有归属

  • 按功能分配成本归因,让具体团队对应到账单上的具体条目;
  • 在财务已经在看的同一块仪表盘上追踪缓存命中率和输出 token 量;
  • 对输出 token 尖峰告警,就像基础设施团队对流量尖峰告警一样;
  • 用与基础设施成本复核相同的节奏复核 token 支出;
  • 特别重访多智能体工作流,因为链式调用会复利式叠加成本。

代码与验证

原文没有给代码,但给了明确的执行顺序建议(也是 FAQ 里「不换供应商情况下最快降本」的答案):

  1. 先启用供应商侧提示缓存——OpenAI 自动生效,Anthropic 只需加 cache_control 标记;
  2. 再给每个端点限制 max output tokens;
  3. 最后才做模型路由。

理由是前两步几乎零架构改动,第三步需要先有调用数据才能设计规则。

适用场景与坑

该用:有稳定前缀的生产系统、任务类型可枚举的 Agent、按功能可以归因的团队。缓存那一步几乎没有门槛,值得所有人在今天就把系统提示接进缓存。

别用:一次性脚本、前缀不复用的调用——Anthropic 的缓存写入要贵 25%,缓存了反而更亏。

已知的坑:

  • 60% 是理论叠加值,原文无自有实测数据。文中的 90%、50–90%、25%、一个数量级等数字全部来自被引用方。把它当上限看,别当 KPI 定。
  • 缓存写入有额外成本,且缓存未命中会让长提示重新变贵——缓存纪律比缓存开关重要;
  • 语义缓存的阈值设低了会答错问题,且答案可能比数据源活得更久,TTL 必须设计;
  • 输出长度限制过紧会导致回答被截断,需要配合质量验收;
  • 多智能体工作流会把上述所有成本乘起来,先算清楚再上。