中 进阶
AI应用成本优化#
一句话答案#
通过语义缓存、模型级联(简单任务小模型/复杂任务大模型)、Prompt 压缩和批量 API 降低 LLM 调用成本。
核心要点
四大策略”缓级压批”:
| 策略 | 原理 | 降本效果 | 实现难度 |
|---|---|---|---|
| 语义缓存 | 相似问题向量匹配,复用缓存答案 | 命中率 30-60%,直接省对应比例 | 中 |
| 模型级联 | 意图分类→简单问题小模型,复杂问题大模型 | 80% 请求走便宜模型 | 中 |
| Prompt 压缩 | 精简 System Prompt,上下文摘要压缩 | 减少 30-50% input token | 低 |
| Batch API | 非实时场景批量调用 | API 折扣 50% | 低 |
成本估算公式:
日成本 = 日均调用量 × 平均 token 数 × 单价($/1K token)plaintext示例:1 万次/日 RAG 调用,平均 3100 token(System 500 + Context 2000 + Query 100 + Output 500),Sonnet 定价约 $0.003/1K input + $0.015/1K output → 日成本约 $153
模型级联架构:
用户请求 → 意图分类器(轻量)
├── 简单/FAQ → Haiku(快、便宜)
├── 常规任务 → Sonnet(平衡)
└── 复杂推理 → Opus(最强)plaintext语义缓存实现要点:
- 用 Embedding 向量化 query,余弦相似度 > 0.95 视为命中
- 缓存 key = query embedding,value = LLM response
- 时效性内容设 TTL,非确定性回答不缓存
- Redis + 向量索引 实现低延迟匹配
面试回答(2分钟版)
AI应用成本优化我总结为四个策略”缓级压批”。第一是语义缓存,对相似问题的LLM回答做缓存,用向量相似度判断是否命中,避免重复调用API,这在FAQ类场景命中率很高。第二是模型级联,类似医院分诊——简单问题用轻量小模型(成本低速度快),只有小模型置信度不够时才升级到大模型处理,这样大部分请求不需要走最贵的模型。第三是Prompt压缩,精简System Prompt、去除冗余上下文、用更短的指令达到同样效果,直接减少input token数量。第四是批量API,把多个请求合并成一次batch调用,很多API提供商对batch请求有折扣。
追问与易错
追问方向:
- 你们项目月成本多少?用了哪些优化手段? → DocMind 通过模型级联(单次 -28%)+ 语义缓存(命中率 45%)+ Self-Reflection 70% 短路 + 规则引擎替代 LLM 选工具,月度综合降本约 50%
- 语义缓存命中率怎么提升?缓存失效策略怎么设计? → 频率阈值调低(第 2 次重复即缓存),query embedding 相似度阈值 0.92。失效靠 TTL + 知识库 version 字段变更时自动失效
- 模型路由的分类器怎么训练?误判了怎么办? → 简单方案用规则(关键词/意图分类),进阶用轻量分类器(BERT-tiny)。误判兜底:小模型置信度低时自动升级到大模型
- Prompt 压缩会不会影响回答质量?怎么平衡? → 会。关键信息不能压缩,只压缩冗余指令和历史对话。实践中先精简 System Prompt(效果最大),再压缩检索上下文(用摘要替代全文)
易错点:
- ❌ “缓存所有 LLM 回答” → 时效性内容、个性化回答不能缓存
- ❌ “只用最便宜的模型” → 复杂任务质量严重下降,用户体验差
- ❌ “Batch API 适合所有场景” → 只适合非实时场景(离线分析、批量标注)