成本与性能专题总览

AI 应用的成本与性能问题,通常不是“模型太贵”或“接口太慢”这么简单。

同一个功能,输入长度、上下文策略、模型选择、是否流式、是否调用工具、是否排队、是否缓存,都会改变最终成本和用户等待时间。很多团队上线前只看单次模型价格,上线后才发现真正昂贵的是长上下文、重复重试、工具等待、无效生成和高峰期排队。

成本与性能的目标不是把每次调用都压到最低价,而是在业务体验、质量、风险和预算之间做可解释的取舍:

  • 哪些 token 是必要上下文,哪些只是“看起来更保险”?
  • 用户在什么环节真的需要低延迟,什么环节可以异步?
  • 用更贵模型带来的质量收益,是否覆盖成本和等待时间?
  • 系统吞吐瓶颈来自模型、工具、数据库、队列,还是前端交互?
  • 高峰期应该限流、排队、降级,还是切换模型?
  • 什么时候简单 prompt 裁剪就够,什么时候需要完整 infra?

这篇总览先按典型场景拆解 token 成本、延迟、吞吐和模型价格,再给出从简单到复杂的优化阶梯。核心观点很直接:先证明成本或延迟真的来自哪里,再决定优化方案

场景

先看一个具体场景。

在 B2B SaaS 客服后台,客服每天用 AI 助手处理用户工单。用户提交的问题可能只有一句话,也可能包含截图说明、历史对话、订单信息和内部知识库引用。系统希望 AI 完成三件事:

  • 判断问题类型和紧急程度。
  • 检索相关知识和客户状态。
  • 生成一段客服可编辑的回复草稿。

使用规模从试点阶段的每天 300 次请求,增长到线上高峰每分钟 120 次请求。客服希望 2 秒内看到首字,10 秒内得到可编辑草稿。业务方希望每月模型成本可预测,不能因为几个长工单或频繁重试突然翻倍。

没有 AI 时,客服平均 6 分钟处理一条复杂工单;有 AI 后,如果草稿质量稳定,每条可以节省 2 到 4 分钟。但如果系统为了“更准确”把完整历史、所有知识片段和客户画像都塞进 prompt,单次成本会明显上升,延迟也会拖慢客服操作。

这个场景里的成本性能问题来自多处:

  • token 成本:历史消息、知识库片段、工具结果、模型输出都在计费。
  • 延迟:上下文检索、模型 TTFT、工具调用、流式传输、队列等待都会增加等待。
  • 吞吐:高峰期并发请求、供应商限流、服务端连接数和工具 QPS 都会形成瓶颈。
  • 模型价格:不同模型的输入、输出、缓存命中、长上下文和工具能力价格不同。

如果只看“每百万 token 多少钱”,会漏掉更关键的问题:这些 token 是否必要,用户是否需要同步等待,昂贵模型是否只用在真正需要的任务上。

问题类型

成本与性能问题可以拆成四类。

问题类型常见表现主要影响
token 成本上下文越来越长、输出冗长、重复重试、无缓存账单不可预测,低价值请求挤占预算
延迟首字慢、完整结果慢、工具等待、供应商排队用户等待焦虑,核心工作流被阻塞
吞吐高峰期 429、队列堆积、连接耗尽、工具 QPS 打满成功率下降,延迟尾部变长
模型价格默认使用大模型、同类任务无路由、fallback 无预算质量收益和成本不匹配

这些问题对应的 AI 任务类型不同。

AI 任务模型适合处理程序应该处理必须人工确认
分类意图、风险、工单类型判断标签枚举、阈值、低置信度分流高风险分类结果
抽取从文本中提取字段schema 校验、字段裁剪、错误重试影响权益的字段
改写压缩、润色、翻译、格式转换长度限制、缓存、批处理对外发布文案
生成草稿、摘要、解释、方案模型路由、输出长度、超时对外承诺和专业判断
检索查询改写、结果解释权限过滤、召回排序、片段预算关键证据采纳
执行解释工具结果、建议下一步工具 timeout、队列、幂等写入和不可逆动作

模型不应该负责判断“这次调用花多少钱是否值得”。成本归因、预算、限流、缓存、路由和降级都应该由系统控制。

收益和成本判断

优化成本与性能的收益包括:

  • 降低单位任务成本,让 AI 能覆盖更多业务量。
  • 缩短等待时间,让 AI 嵌入核心工作流而不是成为阻塞点。
  • 提高高峰期成功率,减少排队、限流和超时。
  • 把昂贵模型用在高价值任务上,避免默认过度配置。
  • 让账单、延迟和质量有数据可解释,便于持续迭代。

但优化也有成本:

  • prompt 裁剪可能降低答案质量或遗漏关键上下文。
  • 缓存需要失效策略、权限隔离和命中率评估。
  • 模型路由会增加评估、回归和一致性成本。
  • 队列、异步任务和限流会增加系统复杂度。
  • 本地模型需要部署、显存、运维和质量兜底。
  • 过度优化会让系统难以调试,质量问题更隐蔽。

可以用四个问题判断是否值得优化:

判断问题简单优化通常足够需要 infra 方案
成本是否集中在少数长输入prompt 裁剪、上下文预算、输出长度限制成本归因、缓存、路由、预算系统
用户是否必须同步等待streaming、超时提示、减少工具调用队列、异步任务、任务状态机
高峰期是否影响成功率基础限流、并发控制全链路队列、容量规划、供应商 fallback
模型质量是否分层明显手工选择模型自动路由、评估集、灰度策略

低风险、低并发、内部使用的功能,通常先做输入裁剪、输出长度限制、流式返回和基础日志。生产级客服、销售、代码、数据分析或自动化场景,才需要更完整的成本归因、路由、队列和 fallback。

方案阶梯

成本与性能优化应该从可观测和低风险动作开始。

第一层是记录成本和延迟。至少要知道每次请求的输入 token、输出 token、模型、TTFT、完整耗时、工具耗时、重试次数和用户场景。

第二层是裁剪输入输出。控制历史轮数、知识片段数量、工具结果长度和输出 token 上限。很多成本问题到这一层就能缓解。

第三层是缓存。对稳定系统提示词、检索结果、工具查询、分类结果和重复草稿做缓存,但要处理权限和过期。

第四层是模型路由。把分类、抽取、改写交给小模型或便宜模型,把高风险推理、复杂生成和最终判断交给强模型。

第五层是 streaming 和超时。TTFT 影响用户感知,完整耗时影响任务完成。两者要分开优化。

第六层是队列和并发控制。高峰期不要让所有请求一起打到模型和工具。排队、优先级和限流比盲目扩容更可控。

第七层是 fallback。供应商失败、模型慢、工具超时、上下文过长时,要有降级模型、部分结果、异步处理或人工接管。

第八层是本地或专用模型。只有当调用量、任务稳定性和质量要求足以覆盖运维成本时,才考虑本地模型。

第九层是 Eval + Ops。每次降本和加速都要通过评估集、线上指标和人工反馈验证,避免用更便宜更快换来不可见的质量下降。

什么时候简单优化足够

以下情况通常先做简单优化:

  • 功能还在试点期,每天调用量不大。
  • 输出只是草稿,用户会编辑。
  • 成本主要来自少数过长输入。
  • 延迟主要来自模型生成本身,而不是复杂工具链。
  • 高峰并发不高,偶发失败可以手动重试。
  • 任务类型固定,不需要自动模型路由。

这时可以先做:token 日志、上下文预算、输出长度限制、流式返回、少量缓存、基础超时和手动降级。

什么时候需要 infra 方案

以下情况应该升级到工程化方案:

  • 月度模型成本已经影响产品毛利或预算。
  • 高峰期出现排队、限流、超时或供应商错误。
  • 同一产品里有多种任务,质量和价格差异明显。
  • 工具调用慢,且用户不应该同步等待全部结果。
  • 多租户场景需要按客户、功能或团队做成本归因。
  • 需要在主模型不可用时继续服务。
  • 本地模型或专用模型的长期成本可能低于 API 调用。

这时要把成本和性能当成产品基础设施:有预算、指标、路由、队列、fallback、告警和评估,而不是靠某个 prompt 参数控制。

方案选型表

场景条件推荐方案不推荐方案判断理由额外成本
低并发草稿生成token 日志 + 输入裁剪 + streaming复杂队列和模型路由主要问题是可见性和感知延迟少量埋点和 prompt 维护
长上下文导致成本高上下文预算 + 摘要 + 检索片段限制全量历史塞入 prompt大部分历史不是当前任务必需摘要、检索评估
重复查询或固定说明多缓存系统提示词、工具结果、检索结果每次完整重新计算稳定内容重复消耗 token 和工具耗时缓存键、过期、权限隔离
分类抽取量大小模型 / 便宜模型路由默认大模型简单任务不需要最强模型路由规则、回归测试
用户重视首字速度streaming + TTFT 监控只优化完整耗时先看到进展能显著降低等待感流式协议、前端状态
高峰期失败率高队列 + 并发控制 + 优先级无限扩容或无限重试上游限流和工具 QPS 需要平滑任务状态、排队体验
主模型不稳定fallback 模型 + 降级文案 + 人工接管静默失败或假装成功可用性比单次最优质量更重要质量评估、路由和提示
稳定高频低风险任务专用小模型或本地模型长期使用昂贵通用模型规模足够时部署成本可摊薄训练、部署、监控、兜底

反模式

第一种反模式:只看模型单价,不看完整链路成本。

一次请求的真实成本包括输入 token、输出 token、缓存命中、检索、工具、重试、排队和人工兜底。便宜模型如果导致更多重试或人工修正,可能并不便宜。

第二种反模式:把所有上下文都塞进去换“稳”。

长上下文会增加成本和延迟,也会让模型被无关信息干扰。上下文管理的目标是够用、可信、可追踪,不是越多越好。

第三种反模式:所有任务默认大模型。

分类、抽取、格式转换、短文本改写通常可以由更便宜的模型处理。大模型应该留给复杂推理、高风险生成和最终判断。

第四种反模式:用无限重试提升成功率。

重试会放大成本和延迟,也可能重复执行工具。重试必须基于错误类型、幂等和预算。

第五种反模式:只优化完整耗时,不看 TTFT。

用户对“完全没反应”的等待更敏感。很多交互场景里,流式首字和明确状态比压缩最后 1 秒总耗时更重要。

第六种反模式:缓存不做权限和失效。

多租户产品里,缓存命中如果没有租户、角色、数据版本和权限维度,可能带来越权和过期答案。

第七种反模式:没有成本归因。

只知道总账单上涨,不知道是哪个功能、客户、模型、prompt 版本或工具链造成的,就无法做有效优化。

工程清单

  • 场景边界:哪些功能需要低延迟,哪些可以异步或批处理。
  • 成本归因:是否记录用户、租户、功能、模型、输入 token、输出 token 和重试。
  • 延迟指标:是否区分 TTFT、完整耗时、排队耗时、工具耗时和网络耗时。
  • token 预算:历史消息、检索片段、工具结果和输出长度是否有上限。
  • 模型路由:不同任务、风险和用户等级是否有模型选择规则。
  • 缓存策略:缓存键、权限、过期、命中率和回源策略是否明确。
  • 队列策略:高峰期是否有优先级、限流、并发控制和用户可见状态。
  • fallback:模型、供应商、工具和上下文失败时是否有降级路径。
  • 质量评估:降本或加速后是否用评估集验证质量没有不可接受下降。
  • 预算告警:是否有日预算、月预算、异常请求和单租户成本告警。
  • 安全合规:日志和缓存是否脱敏,是否避免敏感上下文长期保存。
  • 回放复盘:是否能按一次请求重建成本、延迟、路由、工具和错误链路。

小结

成本与性能优化不是单独调一个模型参数,而是围绕“每次 AI 请求到底花在哪里、慢在哪里、值不值得”建立判断框架。

低风险早期功能,可以先做 token 日志、上下文裁剪、输出限制和 streaming。只要进入高并发、多租户、工具调用、模型路由或成本预算约束,就需要把成本、延迟、吞吐和质量放进同一个可观测系统里治理。

这个专题的后两篇会继续展开:

  • 如何用裁剪、缓存、模型路由、小模型和本地模型做成本优化。
  • 如何围绕 TTFT、streaming、队列、工具延迟和 fallback 做延迟优化。