AI 模型服务成本失控,通常不是因为某一个模型“太贵”,而是输入重复、输出无上限、任务全部使用高能力模型、失败请求不断重试、用量无法归属,最后只能看到一张解释不清的总账单。
有效的 AI 成本优化不是一味减少 Token,而是在质量和可靠性满足要求的前提下,降低每个合格业务结果的总成本。
一、先把 AI 模型服务成本拆开
一条生产链路可能包含:
- 输入与输出 Token
- 推理或思考 Token
- Prompt/上下文缓存创建与读取
- 图片、语音、视频、文件和嵌入
- 检索、重排、向量数据库和对象存储
- 工具调用、搜索、代码执行和第三方 API
- 请求重试、降级、失败和超时
- 网关、日志、监控、网络和云资源
- 人工审核、返工、客服和质量抽检
只看模型账单会漏掉大量系统成本;只看单次调用价格也无法判断业务价值。
二、建立四级成本标签
每个请求至少标记:
| 层级 | 示例 | 用途 |
|---|---|---|
| 组织/成本中心 | 海外业务、产品研发 | 财务预算和部门分摊 |
| 产品/环境 | 客服机器人-生产 | 区分产品和实验流量 |
| 租户/客户 | 客户A、区域B | 计费、限额和盈利分析 |
| 任务/版本 | 摘要v3、合同提取v2 | 找到最贵和最值得优化的任务 |
同时记录模型、版本、输入输出Token、缓存、时延、状态、重试次数、质量结果和业务结果。没有这些维度,成本优化只能凭感觉。
三、核心指标从“每百万Token”升级为单位业务成本
| 场景 | 更有价值的成本指标 |
|---|---|
| 客服 | 每个解决会话成本、人工接管后的总成本 |
| 内容 | 每篇被采用内容成本、人工修改时间 |
| 提取 | 每份通过校验文档成本、错误返工成本 |
| Agent | 每个完成任务成本、重复/失败动作成本 |
| 线索分析 | 每个合格线索成本、销售接受率 |
| 开发助手 | 每个合并任务或节省工时成本 |
一个调用价格低但错误率高、需要大量人工返工的模型,单位业务成本可能更高。
四、第一步:减少无价值输入
删除重复指令
系统指令、工具描述和格式示例经常在多个层级重复。把规则集中在一个位置,保留真正影响结果的内容。
检索后再输入
不要把整套知识库、整份历史合同或所有聊天记录塞进每次请求。先检索、重排和过滤,再提供与任务相关的片段。
压缩对话历史
长会话可以保留关键事实、用户偏好、未完成任务和近期轮次,把旧内容结构化摘要。摘要也要评测,避免丢失关键信息。
精简工具描述
只提供当前场景可用工具,并用明确参数、返回值和错误说明代替大段重复文案。
五、第二步:控制输出长度
输出越长不一定越好。为每个任务定义所需结构和上限:
- 分类只返回枚举和置信信息
- 提取使用结构化字段
- 摘要定义长度、层级和必须包含项
- Agent 设置最大工具轮次和总时长
- 内容生成先给大纲,再按需展开
如果业务只需要 200 字结果,就不要用“尽可能详细”让模型生成 2000 字后再截断。
六、第三步:使用模型分层和智能路由
不是所有请求都需要最高能力模型。可以按复杂度建立三层:
| 层级 | 任务 | 路由方式 |
|---|---|---|
| 轻量层 | 分类、改写、简单提取、初筛 | 默认使用快速低成本模型 |
| 均衡层 | 客服、内容、常规分析 | 根据业务和质量要求选择均衡模型 |
| 高能力层 | 复杂推理、高风险、长链工具任务 | 只对困难或高价值请求升级 |
路由条件可以包括任务类型、输入长度、用户等级、风险、置信度、历史失败和预算。升级规则必须通过评测,不能仅凭关键词。
级联处理
先由轻量模型尝试;若结构校验失败、置信不足或命中高风险条件,再升级模型或人工处理。级联的成本优势取决于轻量层真实通过率和误判成本。
七、第四步:正确使用 Prompt 缓存
当大量请求共享长而稳定的系统指令、文档、示例或工具定义时,缓存可以减少重复处理。
适合缓存的内容:
- 稳定的系统指令和品牌规范
- 大型固定文档或产品手册
- 多个高质量示例
- 长工具定义和公共上下文
不适合缓存的内容:
- 每次都变化的用户数据
- 很短或复用率低的Prompt
- 包含频繁变化权限和敏感信息的上下文
- 没有统计命中率和生命周期的缓存
缓存要记录创建成本、读取用量、命中率、TTL 和失效策略。Anthropic 官方 Prompt Caching 文档说明缓存适合重复使用长上下文;OpenAI 和 Gemini 也提供相应缓存或上下文复用能力,具体支持和计费以所用模型当前文档为准。
八、第五步:把异步任务放入批处理
日报、批量分类、文档提取、离线评测、内容标签和历史数据处理通常不需要实时返回,可以使用批处理或任务队列。
批处理设计要注意:
- 每条请求有唯一业务 ID,结果顺序可能不同
- 记录提交、处理、完成、失败和过期状态
- 失败项可安全重跑,不重复写入业务结果
- 批次有大小、时限、预算和优先级
- 结果到达后继续执行校验和质量抽检
Anthropic Message Batches 允许一次提交多条消息请求,并使用自定义 ID 匹配可能乱序的结果;不同平台的批处理时限、价格和支持能力不同,应查看当前官方文档。
九、第六步:减少无效重试
可以重试
临时网络错误、明确的限流、服务过载和部分超时,可以在总时限内使用指数退避和随机抖动。
不应直接重试
认证、权限、输入格式、超出上下文、内容拒绝和业务校验失败需要先修正原因。
重试护栏
- 最大次数和总时间
- 相同请求的幂等键
- 熔断和半开探测
- 降级模型或异步队列
- 重试成本和成功率监控
无限重试会把小故障放大成成本与流量事故。
十、第七步:设置预算和异常告警
建议至少设置五类告警:
- 企业、产品或租户达到预算比例
- 单位业务成本持续上升
- 输入或输出Token突然增大
- 重试、超时和错误率异常
- 新模型、Key或未知任务突然产生消耗
告警需要对应动作,例如暂停实验、限制单用户、切换轻量模型、关闭非关键生成、转为批处理或人工审批。
十一、稳定性优化也是成本优化
模型服务不可用时,等待、重试、人工补偿和用户流失都会增加成本。需要同时治理:
- 配额和高峰容量
- 平滑流量与队列
- 超时和取消无用请求
- 供应商或模型降级
- 可恢复的会话和任务状态
- 请求 ID、日志和问题定位
成本最低但高峰经常失败的方案,不是真正可运营的 AI 模型服务。
十二、四周成本优化实验
第1周:建立基线
补齐标签和日志,找出成本最高的前10个任务,计算成功率、人工返工和单位业务成本。
第2周:输入输出治理
精简重复上下文、增加检索、限制输出和工具轮次。每次只改一个变量并做回归评测。
第3周:分层与缓存
将简单任务迁到轻量模型,对高复用长上下文启用缓存,观察质量、命中率、时延和净成本。
第4周:批处理与预算自动化
把离线任务转为批处理,建立租户/任务预算、异常告警、降级和月度复盘。
十三、成本优化评估表
| 项目 | 优化前 | 优化后 | 护栏 |
|---|---|---|---|
| 平均输入Token | 任务质量不下降 | ||
| 平均输出Token | 信息完整率达标 | ||
| 缓存命中率 | 上下文版本正确 | ||
| 轻量模型通过率 | 高风险误判低于阈值 | ||
| 重试率 | 成功率和可用性达标 | ||
| 每个成功任务成本 | 人工返工计入 | ||
| P95时延 | 用户体验不下降 |
只有同时通过质量、可靠性和业务指标,节省才算有效。
十四、上线检查清单
- 每个请求可归属组织、产品、租户和任务
- 已记录模型、版本、Token、缓存、重试和质量
- 已定义单位业务结果成本
- 输入完成去重、检索和历史压缩
- 输出长度、结构和工具轮次有限制
- 简单任务有轻量模型或级联策略
- 缓存有命中率、TTL、版本和敏感数据边界
- 非实时任务已评估批处理
- 错误分类、重试、熔断和幂等已验证
- 预算、异常用量和单位成本有自动告警
官方文档参考
- OpenAI:模型与选型
- Claude:Prompt Caching
- Claude:Message Batches API
- Gemini API:Context Caching
- Gemini API:Pricing
如需把 GPT、Claude、Gemini 等 AI 模型服务的账号资源、统一 API、路由、缓存、用量和成本治理放到同一平台,可通过海外云与AI模型服务提交场景、地区、调用量和预算,由团队协助完成接入与持续优化。


