AI应用成本优化#
一句话答案#
通过语义缓存、模型级联(简单任务小模型/复杂任务大模型)、Prompt 压缩和批量 API 降低 LLM 调用成本。
核心要点
四大策略”缓级压批”:
| 策略 | 原理 | 降本效果 | 实现难度 |
|---|---|---|---|
| 语义缓存 | 相似问题向量匹配,复用缓存答案 | 命中率 30-60%,直接省对应比例 | 中 |
| 模型级联 | 意图分类→简单问题小模型,复杂问题大模型 | 80% 请求走便宜模型 | 中 |
| Prompt 压缩 | 精简 System Prompt,上下文摘要压缩 | 减少 30-50% input token | 低 |
| Batch API | 非实时场景批量调用 | OpenAI、Anthropic 的 Batch API 输入输出都是 5 折,24 小时内完成(以官方文档为准) | 低 |
另一个常被忽略的手段:Prompt Caching(前缀缓存)。 长 system prompt、工具定义、固定文档放在前面且保持不变,云 API 对命中部分按折扣价计输入费(常见是正常输入价的 0.1 倍左右,写入可能更贵,各家规则以官方文档为准),机制和算账见 [前缀缓存与KV Cache复用](/topics/llm-serving/前缀缓存与KV Cache复用)。它和语义缓存不同:语义缓存省掉整次调用,前缀缓存只省输入费和首 token 延迟。
成本估算公式:(输入、输出单价不同,要分开算)
日成本 = 日均调用量 × (平均输入 token × 输入单价 + 平均输出 token × 输出单价)plaintext示例:1 万次/日 RAG 调用,输入 2600 token(System 500 + Context 2000 + Query 100)、输出 500 token,按中档模型”输入每百万 token 几美元、输出每百万 token 十几美元”的量级(例如输入 $3/M、输出 $15/M;具体以官方价格页为准)→ 10000 × (2600×3 + 500×15) / 10⁶ ≈ 日成本 $153。输出单价通常是输入的数倍,所以控制输出长度和控制输入同样重要。
模型级联架构:
用户请求 → 意图分类器(轻量)
├── 简单/FAQ → Haiku(快、便宜)
├── 常规任务 → Sonnet(平衡)
└── 复杂推理 → Opus(最强)plaintext语义缓存实现要点:
- 用 Embedding 向量化 query,余弦相似度超过阈值视为命中(常见取 0.9 以上,用标注样本在命中率和答错率之间定)
- 缓存 key = query embedding,value = LLM response
- 时效性内容设 TTL,非确定性回答不缓存
- Redis + 向量索引 实现低延迟匹配
面试回答(2分钟版)
AI应用成本优化我总结为四个策略”缓级压批”。第一是语义缓存,对相似问题的LLM回答做缓存,用向量相似度判断是否命中,避免重复调用API,这在FAQ类场景命中率很高。第二是模型级联,类似医院分诊——简单问题用轻量小模型(成本低速度快),只有小模型置信度不够时才升级到大模型处理,这样大部分请求不需要走最贵的模型。第三是Prompt压缩,精简System Prompt、去除冗余上下文、用更短的指令达到同样效果,直接减少input token数量。第四是批量API,把多个请求合并成一次batch调用,很多API提供商对batch请求有折扣。
追问与易错
追问方向:
- 怎么证明降本有效?各个手段分别贡献多少? → 先按调用链拆账:每类请求的调用次数 × 输入/输出 token × 单价,找出大头;再逐项上优化,用同一批请求对比单次成本和总成本。常见组合是模型级联 + 语义缓存 + 高置信度时跳过自检/反思调用 + 用规则替代简单的 LLM 决策(如按规则选工具)。结合项目时可以讲:每个手段单独省了多少、用什么数据验证
- 语义缓存命中率怎么提升?缓存失效策略怎么设计? → 只缓存重复出现过的 query(例如第 2 次出现才写入),避免冷 query 占空间;相似度阈值越低命中越多、答错风险越大,用标注样本定阈值。失效靠 TTL + 数据源版本号:知识库内容变更时版本号自增,缓存条目带版本号,不一致即失效
- 模型路由的分类器怎么训练?误判了怎么办? → 简单方案用规则(关键词/意图分类),进阶用轻量分类器(BERT-tiny)。误判的补救:小模型置信度低时自动升级到大模型
- Prompt 压缩会不会影响回答质量?怎么平衡? → 会。关键信息不能压缩,只压缩冗余指令和历史对话。实践中先精简 System Prompt(效果最大),再压缩检索上下文(用摘要替代全文)
易错点:
- ❌ “缓存所有 LLM 回答” → 时效性内容、个性化回答不能缓存
- ❌ “只用最便宜的模型” → 复杂任务质量严重下降,用户体验差
- ❌ “Batch API 适合所有场景” → 只适合非实时场景(离线分析、批量标注)