← 返回博客

LLM 成本管理实战:从 Token 账单到单位经济学(2026 版)

AI 项目最常见的财务事故不是"效果不行",而是"成本失控"——同一个功能,账单能差 50 倍。本文给一套能直接落地的 LLM 成本管理框架:Token 成本结构拆解(为什么输入比输出贵 3-5 倍但更容易失控)、Cost per Task 单位经济学(别再算单次调用价格)、四层降本杠杆(缓存/路由/批处理/上下文瘦身)的量化收益表、预算与告警机制(Token Budget + Cost SLO + 异常检测)、多租户成本分摊(内部项目怎么算账),最后给可执行的上线前成本自检表。【LLM 成本评估】

AI 项目的财务事故,大多不是”效果不行”,而是”成本失控”

同一个客服机器人,两家客户各跑三个月:A 的模型账单是 B 的 50 倍。代码结构几乎一样,差在没人管成本——A 的每次对话都把全部历史重发给模型,B 在网关层做了历史截断;A 所有请求都走旗舰模型,B 把 80% 的简单问题路由给了小模型。

LLM 成本管理的本质,不是”选便宜的模型”,而是把”每次业务动作花多少钱”变成一个可度量、可设限、可告警的工程指标。 这篇文章给一套能直接落地的框架:成本结构拆解 → 单位经济学 → 四层降本杠杆(含量化收益)→ 预算与告警 → 多项目分摊 → 上线前自检表。


一、先拆成本结构:钱到底花在哪

1.1 Token 计费的三个”反直觉”

计费项单价关系量级关系失控风险
输入 Token基准价(最便宜)通常是输出的 5-20 倍——上下文膨胀、历史重发
输出 Token3-5 倍于输入受 max_tokens 约束中——跑题/循环生成会放大
推理 Token(o1/R1 类)按输出计费不可见、不可控(模型自己决定想多少)——一个”简单问题”可能想 8000 token
缓存命中输入10-25% 基准价同输入低——但提示词结构不对就永远不命中
Embedding约为输出的 1/10RAG 场景量很大低——容易被忽略
Rerank按文档对数计费每次检索 20-100 对低——容易被忽略

三个最常见的成本陷阱:

  1. 上下文膨胀:多轮对话每轮重发全部历史,第 N 轮输入 = 前 N-1 轮之和。10 轮对话的总输入 ≈ 第 1 轮的 55 倍(等差数列)。
  2. 隐形调用:超时重试、JSON 解析失败重新生成、级联路由的”探测调用”——这些在账单里和正常调用一样计费,但没人记账。
  3. 推理 Token 黑洞:用 o1/R1 类模型时,reasoning token 按输出计费但内容不可见。同一个问题,思考 200 token 和 8000 token 的差价是 40 倍,而你无法直接从请求参数控制。

1.2 拆账单:三个维度

拿到月度账单,按 模型 × 调用方 × 场景 三维度拆开(网关层记录每次调用的 model / api_key / scenario_tag / tokens,聚合即可):

场景        模型           输入Token   输出Token   成本(元)  占比
客服-FAQ    qwen-turbo     42,000,000   3,100,000    680     38%
客服-工单   qwen-max       8,500,000    2,900,000   1,020    57%
摘要-离线   qwen-turbo     96,000,000   1,200,000     95      5%

这张表一眼能看出问题:客服-FAQ 场景 85% 的 Token 花在输入上(42M 输入 vs 3.1M 输出)——大概率是历史没截断;客服-工单用 max 模型占了 57% 成本——看是否所有工单都值得 max。

没有这张表,一切优化都是猜。


二、单位经济学:用 Cost per Task 替代”单次调用价格”

2.1 为什么 $/request 是错的指标

单次调用价格是”单价”,不是”业务成本”。两个反例:

  • 小模型更贵的陷阱:小模型 $0.1/次、成功 70%(30% 要人工兜底);大模型 $0.5/次、成功 99%。人工成本 $5/次时:小模型总成本 = 0.1 + 0.3×5 = $1.6,大模型 = 0.5 + 0.01×5 = $0.55。选便宜的单价,总成本贵 3 倍。
  • RAG 的隐藏成本:一次”问答”实际是 embedding + 向量检索 + rerank + LLM 生成 4 个成本项,LLM 生成往往只占 60-80%,剩下的是”基础设施税”。

2.2 Cost per Task 的算法

Cost per Task = Σ(任务链路上所有调用成本) / 业务完成的任务数

落地四步:

  1. 定义”任务”:客服=一条工单闭环(不是 API 请求数)、摘要=一篇文档产出、代码审查=一个 MR 处理。
  2. 链路记账:网关层给每次调用打 task_id(业务侧生成,贯穿 embedding→rerank→LLM),聚合出每任务总成本。
  3. 分母用”业务完成”:人工兜底的工单也算完成(成本里含人工),失败重试的任务按 1 个任务计。
  4. 和基线比:上 AI 前的人工成本/任务 vs 上 AI 后的(模型成本 + 系统运维分摊 + 人工兜底×兜底率)。只有这个对比能回答”这个项目值不值”。

2.3 三个配套指标

指标定义用途
Cost per Task见上项目 ROI、横向比较
Token Efficiency完成任务 / 每百万 Token提示词工程是否有效(同样任务花了更少 Token)
Quality-Adjusted CostCost per Task / 质量分(人工抽检或 LLM-as-a-Judge)防止”降本=降质”的自欺

三、四层降本杠杆:按顺序上,收益可量化

杠杆典型收益风险适用
① 上下文瘦身输入 Token -20~40%低(截断策略要测)所有多轮/长文场景
② Prompt Caching长前缀输入再 -50~75%长系统提示/长文档问答
③ 模型路由整体 -40~70%中(质量波动)流量难度分布不均
④ Batch Inference离线场景 -50%(供应商折扣)无(延迟不敏感)摘要/标注/批量生成

顺序很重要:先瘦身再缓存(瘦身后前缀更稳定,命中率更高)→ 再路由(路由到小模型后缓存收益变小)→ 批处理最后(独立于前三者)。

3.1 上下文瘦身(第一优先级,零风险)

  • 历史截断:只保留最近 N 轮 + 更早轮次的摘要(用 1/10 价格的模型离线生成)。10 轮以上对话输入通常降 50-70%。
  • System Prompt 瘦身:把”人设+规则+示例”里用不到的示例删掉(few-shot 示例 3 个通常够,10 个是浪费)。
  • RAG 场景:top-K 从 10 降到 5 + rerank 精排,召回质量通常不掉,输入降 40-60%。
  • 结构化输出:要求模型输出紧凑格式(JSON 无冗余字段、markdown 列表不嵌套),输出 Token 降 10-30%。

3.2 Prompt Caching(长前缀场景的 50-75%)

命中条件:请求前缀与缓存的前缀逐字节一致。工程要点:

  1. 提示词”前静后动”:固定内容(人设、规则、长文档、few-shot 示例)全部放前缀,变化内容(用户问题、检索结果)放后面。
  2. 多轮对话:历史本身成为前缀——第 N 轮的前 1~N-1 轮内容天然命中,只要你不重排历史。
  3. 不要在前缀里放时间戳/随机 ID:一个变化的字段会让后面全部失效。
  4. TTL 意识:供应商缓存通常 5-10 分钟 TTL,低频场景(每天几百次)命中不了,别指望。

3.3 模型路由(40-70%,但有质量代价)

三种路由策略,按复杂度递进:

  • 规则路由:按场景硬编码(FAQ→小模型,复杂分析→大模型)。最稳,先做这个。
  • 级联路由(cascade):小模型先答 + 置信度判定(输出”我不确定”或格式校验失败)→ 升级大模型。省 50%+ 且质量兜底,代价是简单任务也有一次小模型开销。
  • 语义路由:用小模型/embedding 对请求做难度分类再分发。最灵活但引入额外调用成本,流量大(日均 >10 万)才划算。

级联的置信度判定是核心:不要只靠”模型说自己不确定”(模型普遍过度自信),组合用——输出格式校验 + 关键词兜底(“无法确定/信息不足”)+ 长度异常(异常短/异常长)。

3.4 Batch Inference(离线场景固定 50%)

摘要、数据标注、批量生成、评测跑分——一切不要求实时返回的场景,走供应商 batch API(OpenAI/通义等普遍 50% 折扣)。注意:

  • 结果 24h 内返回(供应商 SLA),业务侧要有”完成回调 + 超时补跑”。
  • batch 文件按场景拆分,别把高优和低优混在一个文件里(一个文件一起返回)。
  • 成本记账时 batch 调用的单价要单独标记,否则 Cost per Task 算错。

四、预算与告警:把成本当 SLA 管

4.1 Token Budget:硬上限 + 软告警

budgets:
  - scope: { project: cs-bot, scenario: faq }
    monthly_limit_tokens: 200_000_000     # 输入+输出合计
    warn_pct: 80                          # 到 80% 发告警
    on_exceed: degrade                    # 降级到小模型 / 拒绝 / 审批放行
  - scope: { project: cs-bot }            # 项目级总闸
    monthly_limit_tokens: 300_000_000
    on_exceed: block                      # 直接拒绝 + 通知负责人

实现要点:

  • 计量在网关层:每次调用记录 input_tokens / output_tokens / reasoning_tokens / model / api_key / scenario / task_id,累加到 Redis(或 Prometheus Counter),不信任客户端自报
  • 双闸门:场景级(细粒度降级)+ 项目级(总闸熔断),两层都要有——只有一层时,某个场景的 bug 会烧穿整个项目。
  • on_exceed 三选一degrade(降级小模型,业务不中断)/ block(拒绝,适合内部工具)/ approve(人工审批放行,适合大客户 SLA 场景)。

4.2 Cost SLO:成本也是 SLO

不是”成本越低越好”,而是**“每任务成本 ≤ X”**。把成本指标和延迟、成功率并列进监控大盘:

SLO目标告警阈值
Cost per Task(客服)≤ 0.8 元7 天均值 > 1.0 元
P99 延迟≤ 8sP99 > 12s(5min 窗口)
成功率≥ 99%< 98%(5min 窗口)

Cost per Task 超标通常意味着:路由变了(大模型占比上升)、提示词变长了、流量结构变了(简单问题占比下降)、供应商调价。这四个原因,前两个你能控制,后两个要写进合同和变更流程。

4.3 三条必设的异常检测规则

  1. 单调用 output token > P99 × 3:跑题/循环生成/提示注入导致的”复读机”,单次能烧掉正常调用的 100 倍。
  2. 单租户日成本 > 历史 7 日均值 × 3:滥用、攻击(有人拿 API Key 刷)、或 bug(重试风暴)。
  3. 整体成本环比周 +50%:流量结构变化、供应商调价、或某个新场景上线没做预算。

告警必须带归因(模型/调用方/场景/Top 异常请求样本),否则 on-call 收到”成本超了”四个字没法止血。


五、多项目分摊:内部 AI 能力怎么算账

规模方案要点
<5 个团队统一预算,出场景报表不分摊,每月成本复盘会过异常项
5-20 个团队项目级 Key + 独立预算网关按 Key 计量,成本中心映射项目,超额审批
20+ 团队(AI 中台)内部定价结算结算价 = 供应商成本 × 1.1-1.3(含运维摊销),用量仪表盘三视图

三条铁律:

  1. 计量在网关,不信任客户端——客户端自报的 token 数既不准也不安全。
  2. 分摊到”场景”不到”团队”——一个团队 Key 下混着 FAQ 和复杂分析,永远算不清;场景标签在网关强制要求。
  3. 月成本复盘 10 分钟——过一遍异常 Top 5(哪个场景/项目/模型,环比变化,为什么),比任何成本报表都有用。

六、上线前成本自检表

检查项通过标准
基线测算有”预估月调用量 × 任务链路成本 = 月成本”的测算表,含 3 倍流量余量
计量埋点网关记录 model/key/scenario/task_id/tokens 五要素,可聚合出 Cost per Task
预算闸门场景级 + 项目级双层预算,on_exceed 策略明确
历史截断多轮对话有截断/摘要策略(N 轮可配置),实测第 10 轮输入 ≤ 基准 3 倍
前缀稳定System Prompt 无时间戳/随机 ID,长文档放前缀,缓存命中监控已埋
路由策略简单流量有明确的小模型路径,级联的升级判定有格式+关键词双校验
离线场景走 Batch摘要/标注/批量任务全部走 batch API,单价单独记账
异常告警三条规则(单调用 P99×3 / 租户日成本 3× / 周环比 +50%)已配,告警带归因
推理模型隔离o1/R1 类模型限定在”确实需要深度推理”的场景,有 reasoning token 监控
调价应对供应商调价流程:成本测算 → 路由调整 → 预算重设(3 步,1 周内完成)

成本管理是 AI 项目的”第二架构”

很多团队把成本当”上线后的运营问题”,结果第一版全量旗舰模型 + 全量历史重发,账单出来当天就找架构师。成本管理应该在写第一行业务代码之前定下来——计量埋点、预算闸门、路由策略,这三样进了架构,后面的降本都是微调;没有这三样,每次降本都是重构。

我们交付过多个成本敏感项目:客服系统通过”截断+缓存+级联路由”组合拳把单任务成本压到人工成本的 1/4、内部中台通过场景级分摊让 20+ 团队各算各的账、离线标注管线全量 Batch 化省掉一半预算。如果你正在规划 AI 项目,欢迎带着账单(或预估)来聊——先帮你做成本结构分析(钱花在哪、能省多少、怎么省),再谈实施。


延伸阅读:

需要 LLM 成本结构分析、预算体系搭建或降本改造?联系我们 获取免费评估。

常见问题

LLM 成本到底怎么构成?为什么账单比预估高?

三个最常见的"成本陷阱":① 上下文膨胀——多轮对话每轮都重发全部历史,第 20 轮的输入 Token 是第 1 轮的 20 倍,而输入单价虽然低、但量大了照样烧钱(输入通常比输出便宜 3-5 倍,但输入 Token 量往往是输出的 5-20 倍);② 重试与失败成本——超时重试、JSON 解析失败重新生成、路由到错误模型,这些"隐形调用"在账单里和正常调用一样计费,但没人记账;③ 推理模型思考 Token——o1/R1 类模型的 reasoning token 按输出计费但你看不到内容,一个"简单问题"可能思考 8000 token。自检方法:把账单按 模型 × 调用方 × 场景 三维度拆开,连续两周对比,异常项一定藏在这三个维度里。

Cost per Task 和单次调用价格有什么区别?

单次调用价格($ per request)是"单价",Cost per Task($/任务)才是"业务成本"。同一个客服任务,小模型一次搞定 = 1 次调用;大模型可能 1 次,也可能 3 次(追问/重试/人工兜底前的预检);RAG 场景还要加上 embedding 和 rerank 的费用。正确算法:Cost per Task = Σ(该任务链路上所有模型调用的成本) / 完成任务数,分母是"业务完成"而不是"API 请求"。这个指标才能横向比较"上 AI 前(人工成本)vs 上 AI 后(模型成本+运维)",也才能发现"便宜模型因为成功率低反而更贵"的经典反例——小模型把 60% 的活干成 95 分(人工成本×0.35),大模型把 95% 的活干成 99 分(人工成本×0.05),后者总成本往往更低。

四层降本杠杆(缓存/路由/批处理/上下文瘦身)收益大概多少?

按典型企业应用实测区间:① 上下文瘦身(历史截断/摘要、去掉冗余 system prompt)——省 20-40% 输入 Token,零风险,第一优先级;② Prompt Caching(长前缀命中按 10-25% 计费)——长上下文场景(几百页文档问答、超长系统提示)输入成本再降 50-75%,要求提示词"前静后动"结构;③ 模型路由(80% 简单流量走小模型)——整体降 40-70%,代价是质量波动,需要级联兜底(小模型不确定时升级大模型);④ Batch Inference(离线任务走 batch API,通常 50% 折扣)——只适用于非实时场景,收益固定 50%。叠加效果不是简单相加:先瘦身再缓存(瘦身后的前缀命中率更高),再路由(路由到小模型后缓存收益变小),最后批处理。典型组合拳下来,总成本降到基准的 15-30% 是常见区间。

AI 项目的预算和告警怎么做?

三层机制:① 预算(Token Budget)——按 场景 × 租户/项目 设月度硬上限,用网关侧计量(每次调用记录 input/output/reasoning token × 单价)实时累计,到 80% 告警、100% 拒绝(降级到小模型或直接返回维护提示);② Cost SLO——不是"成本越低越好",而是"每任务成本 ≤ X 元",把成本当 SLA 的一部分纳入监控,超了和延迟超标一样触发 on-call;③ 异常检测——三个必设规则:单调用 output token > P99 的 3 倍(可能是跑题/循环生成)、单租户日成本 > 历史均值 3 倍(可能是滥用/攻击/bug)、整体成本环比周 +50%(可能是流量结构变化或定价调整)。关键:告警必须带归因(哪个模型、哪个调用方、哪个场景),否则没人知道怎么止血。

内部多项目共用 AI 能力,成本怎么分摊?

三档方案按组织复杂度选:① 单一大项目(<5 个团队):不分摊,统一预算,每月出一份"按场景成本报表"让各团队自己看;② 多项目(5-20 个团队):项目级 API Key + 网关侧按 Key 计量,每项目独立预算,超额走审批;成本中心映射到项目,月结出账单;③ 平台化(内部 AI 中台服务 20+ 团队):完整的内部定价(内部结算价 = 供应商成本 × 1.1-1.3 倍,含运维摊销),团队按用量结算,配合用量仪表盘(成本/请求量/成功率三视图)。通用铁律:计量在网关层做(不要信任客户端自报 token 数)、分摊粒度到"场景"而不是"团队"(团队内多个功能混在一个 Key 里永远算不清)、每月一次成本复盘会(10 分钟过一遍异常项)。

本文来自 AI Enable Harness 一线交付实践。需要同类系统或优化服务?

📡 本文同步发布平台: CSDN 知乎

订阅博客更新

新文章发布后第一时间邮件通知。不定期发送,不推销。

订阅 →