Skip to content

第 13 讲 | 成本优化:LLM 系统的省钱之道

本节我们将掌握

  • 成本控制六层体系:从 Prompt 设计到商业折扣的完整链路
  • 成本监控告警:调用落盘、每日聚合、异常检测的完整工具链
  • Prometheus + Grafana 构建 AI 特殊监控区域

LLM 成本失控的真实场景

目前Meta等大公司纷纷下调每个岗位的Token用量。

美国一些典型的大模型应用公司,模型成本贵过了使用者的人力成本。

场景模拟: 一家创业公司的客服系统上线后收到了第一条告警:单日 LLM 成本从 2000 元飙升至 1.2 万元。

排查后发现原因很简单——一个缓存失效 bug 导致相同的问题调用了 500 次 API,每次都走了完整的 GPT-4 流程。

这不是孤例。另一家电商公司在"双11"大促期间,由于促销活动导致用户咨询量暴增 10 倍,LLM 成本从日均 5000 元飙升至 5 万元。事后复盘发现,如果提前做了大小模型分流和缓存优化,这笔成本可以控制在 8000 元以内。

生产环境的 LLM 系统面临两个核心挑战:

  • 成本不可控:Token 消耗像流水,不知道花在哪、为什么花、怎么省
  • 单点故障风险:依赖单一模型提供商,一旦宕机整个业务瘫痪

2026 年的共识:成本优化不是可选项,而是 LLM 架构的基础设施。企业在 LLM 部署初期如果不做成本控制,很容易在几个月后超出预算数倍。

我们自下而上拆解这套体系。


Russell的成本控制体系:六层优化链路⭐⭐

成本控制是一个系统工程,不是哪一步单个可以做到的,或者说“每一步都有节省的几乎”,我按照经验给大家列一些:

⚠️ 注意:首先我们还是要保证质量,最起码要符合业务目标,不要本末倒置。

  1. 做好自己——Prompt/Agent流程设计,减少各种冗余(如RAG去重),根据场景减少不必要的步骤,从根本上解决。
  2. 适合代码的就不要用模型:如“意图识别”使用规则代替80%场景,能用脚本做的“质量门禁”不用LLM。
  3. 一定要用的,选择合适的模型:根据场景选择不同的模型,在同一场景做好模型路由。
  4. 哪怕模型定了,也能流程侧优化:通过前面讲的调用链缓存、自主多层级缓存、中间步骤保存(异常场景)、上下文分层管理及压缩、批量请求;以及后面要讲的合理使用RAG这类组件。
  5. 顺手搭配一些节省Token的工具:如各种Tool Schema,比如开发过程中的代码图谱,比如测试过程中的浏览器内容工具等,其实也有很多。这里做个广告,我做的非常好的Token节省工具TokSlash(https://tokslash.stratsapien.com/index-zh.html)
  6. 商业节省:如云厂商的商务折扣、资源包、“批量请求”等功能。

① 做好自己:Prompt/Agent 流程设计减少冗余

最直接的省钱方式是从源头减少不必要的调用。

反模式示例

# ❌ 反模式:一个客服问答拆成 4 次 LLM 调用
step1 = llm("提取用户意图")      # 第1次调用
step2 = llm("根据意图查知识库")   # 第2次调用
step3 = llm("生成回答")           # 第3次调用
step4 = llm("检查回答质量")       # 第4次调用

好的设计

合并步骤——把意图提取和知识检索合并到一个 prompt 里,一次调用完成:

# ✅ 合并后的流程:一次调用完成
prompt = """
用户问题:{question}
请:1) 判断意图;2) 从以下知识中提取相关信息生成回答:{knowledge}
"""
answer = llm(prompt)  # 第1次调用,完成所有工作

减少冗余——RAG 检索结果先去重、排序、过滤,只把最相关的 3-5 条送给 LLM,避免送一堆垃圾内容浪费 token 和降低回答质量。

类似这种还有很多,比如设置一些“高频预置问题”等产品设计方面。做好一些约束,避免不准/反复重跑等。

② 适合脚本的不用模型:规则代替 80% 场景

生产环境最常见的浪费是用 LLM 做简单判断:

场景LLM 方案规则方案成本对比
意图识别"用户说'你好'是什么意图?" → LLM 分类关键词匹配:"你好/您好/嗨" → greetingLLM: $0.01/次 vs 规则: $0.00001/次
格式校验"这个邮箱格式对吗?" → LLM 判断正则表达式验证LLM: $0.01/次 vs 规则: $0
简单提取"从'我的订单是12345'提取订单号" → LLM正则 \d{5} 匹配LLM: $0.01/次 vs 规则: $0
质量门禁"这段代码有 bug 吗?" → LLM 审查CI 静态检查(eslint/pylint)LLM: $0.05/次 vs 规则: $0

经验法则:典型的企业客服系统中,大部分用户咨询可以用规则或模板回复。强行用 LLM 处理这些简单场景,成本远高于规则方案。

实施建议

  • 先统计流量分布,找出高频简单问题(通常是问候、FAQ、状态查询)
  • 用规则引擎(如 Drools)或简单的 if-else 覆盖前 80% 的场景
  • 只有规则无法处理的复杂问题才路由到 LLM

行业实践:不少电商团队在客服系统中引入了规则引擎,将高频简单问题用规则处理,只把复杂问题路由到 LLM,成本大幅下降,质量也大幅提高。同时,由于规则响应速度快,用户体验反而更好。

③ 选择合适的模型:根据场景选模型,做好模型路由

不是所有请求都需要最强模型。这是成本优化最有效的手段之一。

详细参考“11讲-模型路由“章节。

包括:

  1. 模型选择:根据场景选择合适的模型
  2. 模型路由:模型按照规则、级联、分类器路由。

选型的标准主要考虑:

  1. 能力:不同场景;主、备、降级的定位。
  2. 成本:国内外差距较大;套餐额度要调节;
  3. 测评:公开测评;实际用的体验。

④ 流程侧优化:调用链缓存、上下文分层管理及压缩

即使模型定了,也能从流程侧挤出节省空间。

调用链缓存

相同请求 → 缓存命中 → 直接返回(零 LLM 成本)
         ↓ 未命中
正常 LLM 调用 → 结果写缓存
  • 输入 token 缓存(Prompt 缓存):各大厂商原生支持,重复前缀可省 50%-90% 的输入 token 费用。Anthropic 的 prompt caching 是最成熟的
  • 输出语义缓存:用 embedding 做语义匹配,相似度超阈值(如 0.9)直接返回缓存。Redis、Cloudflare 都有现成方案
  • 缓存失效策略:知识库更新后自动清理相关缓存;设置 TTL(默认 24-48 小时)

上下文分层管理

用户对话历史
  ├── 最近 3 轮 → 完整保留(高优先级上下文)
  ├── 3-10 轮 → 摘要压缩(中优先级上下文)
  └── 10 轮以前 → 只保留关键信息(低优先级上下文)

通过上下文压缩,可以显著降低长对话的 token 消耗,同时保持回答质量。

中间步骤保存:对于多步 Agent 流程,将每步的结果持久化。如果后续步骤失败,可以直接从缓存中恢复,避免重跑整个链路。

⑤ 发现并使用降本工具

开发、测试、部署、运营的各个环节都有可以帮咱省钱的工具。用得好,投入少见效快。

只要发现并善用这些工具,不仅投入相比其他方案少很多,而且见效快、效果好,性价比极高。投入就是要提前考察和测试工具的安全性、稳定性和适用范围。

⑥ 商业节省:云厂商折扣、资源包

最后才是商务层面的优化:

  • 预留实例/资源包:大多数云厂商提供月付/年付的资源包,价格比按需付费低 30%-50%
  • 批量请求折扣:Azure OpenAI、阿里云等都提供批量请求(batch API)功能,延迟更高但价格更低
  • 阶梯定价:用量越大单价越低,合理规划计费周期可以享受更低价格
  • 谈判折扣:对于大客户,直接与云厂商谈年度合同可以获得额外折扣

注意:商务优化是最后一环。如果前面的技术优化没做好,买再多资源包也是浪费。

省钱技巧:对于用量稳定的企业,可以先买小规格资源包测试,确认用量模型后再购买大规格。很多云厂商支持较长的有效期,并且支持自动转”按量付费”,合理利用这一政策可以避免浪费。

观测与告警:详细的监控落盘数据结构、告警阈值、Prometheus + Grafana 配置,详见第 11 讲(LLM 运行时治理)中的观测与告警章节。补充成本维度的特殊告警:单日成本较 7 日均值突增 50%+、单用户日成本超过均值 3 倍。


选型决策

架构师决策清单

  • 成本控制六层体系:Prompt 设计 → 规则替代 → 模型路由 → 流程优化 → 发现降本工具 → 商业折扣,层层递进,不能只做最后一层
  • 成本监控非常推荐:每次调用落盘(模型、token、延迟)、按场景聚合、异常自动告警
  • Prometheus + Grafana:在传统监控之上构建 AI 特殊区域(成本、缓存命中率、路由分布)

面试回答要点

Q:生产环境的 LLM 系统怎么做成本优化?

答(抓体系 + 讲分层):

成本控制——六层递进:① Prompt/Agent 流程设计减少冗余调用;② 规则替代大部分简单场景;③ 大小模型路由;④ 调用链缓存 + 上下文压缩;⑤ 发现并使用降本工具;⑥ 商业折扣。前四层是技术优化,贡献最大;后两层是锦上添花。

深度追问

  • "语义缓存和传统缓存有什么区别?" → 传统缓存是精确匹配 key-value;语义缓存用 embedding 做相似度匹配,"你们退款政策是什么"和"退款政策怎么规定的"能命中同一条缓存。

  • "成本突增怎么排查?" → 先看是哪个场景/用户突增 → 检查是否有缓存失效 bug → 看是否有异常流量(如爬虫/滥用)→ 检查是否有重复调用(同一个请求调了多次 LLM)。


小结

  1. 成本控制是系统工程:六层优化链路(Prompt 设计 → 规则替代 → 模型路由 → 流程优化 → 发现降本工具 → 商业折扣),层层递进,不能只做最后一层
  2. 规则替代是性价比最高的手段:能用脚本解决的不用模型,80% 简单场景可以规则覆盖
  3. 大小模型路由是成本优化最有效的手段之一:简单问题走轻量模型,复杂问题才走顶级模型
  4. 成本监控必不可少:每次调用落盘、多维度聚合、异常自动告警,Prometheus + Grafana 构建 AI 特殊区域

思考题

  1. 我们的团队负责一个日均 10 万调用的客服系统,目前全部使用 Claude Opus 4.6,月成本约 15 万元。从成本控制六层体系的角度,我们会按什么顺序实施优化?预估每层能节省多少成本?(提示:先做流量分布分析,识别规则可替代的场景,再设计大小模型路由规则)

  2. 我们上线了一个基于 RAG 的内部问答系统,运行一个月后发现成本超出预算 3 倍。从成本控制的角度,我们会按什么顺序排查和优化?(提示:先看缓存命中率,再看大小模型分流,最后看 Prompt 是否有冗余)


参考资料