Skip to content

第九章 生产级硬化 ​

9.6 成本工程 ​

承前:生产就绪六维度的最后一维,也是传统软件时代最不习惯的一维——成本从"一次性资源采购"变成了"随用量线性增长的可变支出"。一个设计不当的 Agent,月账单能在一周内翻几倍,而功能看起来一切正常。这一节讲 token 成本怎么核算、怎么分层用模型、怎么用缓存路由省钱,最后谈成本治理的机制化。


9.6.1 Token 成本核算:从"总账单"到"单次对话成本" ​

成本工程的地基是核算粒度。只有一个"本月 API 账单 ¥48000"的数字,你什么都决策不了。要往下拆三层:

账单(月) → 场景(唤回/补偿/查询) → 模块(RAG / 主推理 / 护栏分类器) → 单次会话
   ¥48000      唤回 ¥22000              主推理 ¥15000                ¥0.031/次
                                          检索嵌入 ¥3000
                                          护栏小模型 ¥2500

拆到这个粒度,优化才有的放矢——上例中"护栏小模型"占了 11%,你会立刻想到 9.2 的 Prompt Guard 是 22M 参数小模型、应该换更便宜的部署;"检索嵌入"提示高频查询该上缓存了。

核算的工程实现:在模型抽象层(所有模型调用的统一出口)记录每次调用的 model、input_tokens、output_tokens、成本(按厂商定价表折算),带上 trace 里的会话 ID 和场景标签(9.3 的 trace 结构直接复用)。成本字段是 trace 的天然属性,不是额外系统——这是三支柱设计的前瞻红利。

有了粒度,就能算出生产运营的核心数字:单次会话成本和月成本预估(按活跃用户 × 人均会话 × 单次成本)。这两个数字进 8.3 讲过的 SLA/报价讨论,也进本节的预算告警。

9.6.2 模型分层:小任务用小模型 ​

同一个会话里,不同步骤对模型能力的要求天差地别:判断"用户这句话是不是要发券"是小分类任务,7B 级模型够用;"综合会员画像、活动规则、历史偏好,决定发券策略并给出理由"才需要旗舰模型。全链路旗舰模型,是成本工程里最大的浪费。

分层路由的设计:

任务能力要求模型档位成本量级(示意)
意图识别、输入分类低小模型(<10B)旗舰的 1/10-1/50
护栏判定(9.2)低专用小模型(如 22M 的 Prompt Guard)近乎免费
RAG 检索后的 rerank中中档模型旗舰的 1/5
主推理、多步决策、生成理由高旗舰模型基准
输出格式化、摘要中低中小模型旗舰的 1/10

路由规则写在模型抽象层的配置里(8.2/9.4/9.5 反复出现的配置化路由在此兑现),可以按场景、按置信度级联(先小模型,置信度低再升级大模型)、按用户分层(VIP 用户走旗舰、普通用户走中档——注意这条要过合规评审,服务分级要透明)。

级联路由(cascading)值得单独强调:先用便宜模型跑,拿不准的再升级,比按场景固定分层的省钱效率更高,代价是延迟多一跳。据 OpenAI 官方文档,其提示缓存对支持模型默认启用、复用前缀的输入 token 折扣最高可达 90%——搭配级联路由,"先小后大"的边际成本可以做到很低。

9.6.3 缓存路由:常见问题缓存 + 语义缓存 ​

第二省利器是缓存。两层设计,风险特征完全不同:

常见问题缓存(精确匹配):高频、重复、答案稳定的查询(会员问券规则、督导问固定报表口径),按 prompt 哈希做键的精确匹配缓存。零正确性风险,命中率取决于业务长尾分布——零售会员场景里头部 20% 的查询通常占 60%+ 的量,值得做。TTL 按业务节奏设(规则类 24 小时,活动类随活动下线失效)。

语义缓存:不做精确匹配,而是把新请求向量化,在缓存库里找语义相似的历史请求,相似度超阈值直接返回历史答案。开源参考实现是 Zilliz 的 GPTCache(官方口号即"降低 LLM API 成本、提速响应"),与 LangChain 集成。但语义缓存是所有缓存里唯一会"自信地返回错误答案"的层——GPTCache 官方 README 自己就警告会出现误报(不该命中命中了)和漏报。生产使用要严守三条:阈值收紧(宁可漏不要错)、只缓存低风险场景(查询类可以,执行决策类禁止——发券决策绝不能吃缓存)、缓存命中要有标记(9.3 trace 里记 cache_hit 字段,出了问题能发现答案是缓存来的)。

请求 → L1 精确缓存(哈希命中,~ms)→ L2 语义缓存(相似度命中,~10ms)→ 模型调用
        零风险                        高风险,需阈值+场景+标记治理        成本基准

第三层是厂商侧提示缓存(prompt caching):OpenAI、Anthropic 等都提供前缀缓存——系统提示、工具定义这类每个请求都重复的长前缀,命中缓存后输入成本大打折扣(OpenAI 官方文档称折扣最高 90%,Anthropic 缓存读取为其标准输入价的 0.1 倍)。这层的工程要点是前缀纪律:把稳定不变的内容(系统提示、工具定义)放在请求前部、把多变内容(用户消息)放后部,让前缀尽量长且稳定——反之,把时间戳或个性化内容放在系统提示开头,会击穿所有缓存。

9.6.4 成本治理机制化 ​

优化做完不等于成本可控,要建四个机制:

  • 预算告警:按场景设日/月预算,超阈值告警到责任人(9.3 已接线)。给"单会话成本"也设上限——一个会话死循环烧 token 是真实事故形态(9.2 的输入护栏 + 这里的话题终止机制双保险)。
  • 成本周报:与 8.1 的质量周报并排发,成本趋势和成本结构(哪个场景哪个模型在花钱)。成本和质量同屏呈现,防止"为省钱砍质量"的暗箱操作(Klarna 的教训在企业内部同样成立——8.5 案例里"成本权重过高导致质量下降"就是内部治理失衡)。
  • 变更成本评审:任何影响成本结构的变更(换模型、改 prompt 长度、调缓存)发布前跑一次成本预估。9.4 灰度门禁里的"成本差 > 30% 停止放量"就是这道评审的自动化版本。
  • 单位经济模型:最终要把成本换算成业务语言——"每唤回一个会员的 AI 成本 ¥0.4,券成本 ¥20,唤回后 90 天复购毛利 ¥38"。客户不为 token 付费,为业务结果付费;单位经济模型是成本工程和业务价值的翻译层,也是续约谈判时你手里最有力的数字。

9.6.5 沙盘:青禾的成本月报与一次优化复盘 ​

成本治理机制运转起来长什么样?给一份青禾的月报摘要(数字为沙盘设定):

月度成本报告(生产第 2 个月)
总成本 ¥41,200(环比 -14%)    单次会话 ¥0.028    月活用户 3,100

按场景:  唤回 ¥19,800  补偿 ¥8,400  查询 ¥9,300  其他 ¥3,700
按模块:  主推理 ¥24,500  检索嵌入 ¥5,200  护栏小模型 ¥4,900  rerank ¥6,600
缓存:    精确命中 31%  语义命中 12%(标记已开)  前缀缓存节省 ¥7,800
异常:    单会话最高 ¥1.9(一次死循环话题,已加话题终止上限)

报告引出的一次优化复盘(这是成本周报的真正价值——发现问题):护栏小模型 ¥4,900 占了 12%,明显异常——排查发现 9.2 补的分类器对每条 RAG 检索文档都单独跑一次判定,而一个会话平均检索 3 篇文档、文档内容高度重复。优化:检索文档按内容哈希去重后再送分类器,护栏成本降到 ¥1,700。这类问题只有拆到模块粒度才看得见,总账单上它只是"成本略高"。

再算青禾的单位经济账,这是续约谈判的核心数字:AI 综合成本 ¥41,200/月,经 Agent 路径当月唤回会员 8,900 人,券核销后 90 天复购毛利估算 ¥3.4/人 × 8,900 ≈ ¥30,200——账面看还是亏的,但结合查询场景省下的人工工时(约 620 小时)后整体为正,且成本随缓存命中率和模型分层仍在逐月下降。第一个月就要求成本为正是大多数 AI 项目的错误预期——正确的叙事是"成本曲线向下、业务价值曲线向上,第 N 个月交叉",把两条曲线画给财务经理看,比一个月度盈亏数字诚实也更有说服力。

9.6.6 模型升级的成本-质量决策框架 ​

成本工程的最后一道难题:模型厂商出了新版,要不要切?这不是纯技术决策,用一张四象限框架决定(横轴:新模型在评估集上的质量变化;纵轴:成本变化):

                    成本下降
                       │
   甜区: 质量升+成本降 │  降本机会: 质量平+成本降
   (如新旗舰缓存折扣 │  (小模型版本升级替代中档)
    覆盖主推理链路)   │
 ─────────────────────┼───────────────────── 质量提升 →
   风险升级: 质量降+   │  价值升级: 质升+成本升
   成本降(多为小模型 │  (旗舰换代,按单位经济
    换代,先灰度评估) │   模型算回报再决定)
                       │
                    成本上升

决策流程固定四步:评估集离线跑分(第 7 章资产复用,质量轴的依据)→ 成本预估(按当前 token 分布折算新旧定价)→ 算单位经济变化(9.6.5 的模型更新一版,"每唤回一人的 AI 成本"变成多少)→ 9.4 模块化灰度切换(只切推理模块,A/B 对比采纳率兑现率,门禁把关)。

沙盘推演一次:某厂商旗舰新版在青禾评估集上 +2.1 个点、单 token 价格 ×1.8。切不切?按单位经济算:唤回场景主推理成本从 ¥0.019/次升到 ¥0.034/次,但 +2.1 个点建议准确率意味着误发券(每张 ¥20)减少——按每月 8,900 单算,误发减少的券成本超过推理增量成本,切,且只在唤回场景切、补偿和查询场景留在旧模型。成本工程不追求全局最优,追求每个场景各自最优——这正是模型抽象层路由配置存在的意义。

9.6.7 要点总结 ​

  • 核算是地基:账单→场景→模块→单次会话四层拆解;成本字段做进 trace,复用 9.3 三支柱。
  • 模型分层:意图识别/护栏/rerank 用小模型,主推理才上旗舰;级联路由(先小后大)省钱效率最高,路由写配置。
  • 缓存三层:常见问题精确缓存(零风险)、语义缓存(唯一会"自信返回错答案"的层——阈值收紧、禁用于执行决策、命中留标记)、厂商前缀缓存(注意前缀纪律:稳定内容在前)。
  • 治理机制化:预算告警、成本与质量同屏周报、变更成本评审(灰度门禁自动化)、单位经济模型(客户为业务结果付费)。

参考资料 ​