中 困难
AI应用成本与质量量化治理#
一句话答案#
AI 应用治理的核心是「质量-成本-延迟」不可能三角的量化平衡:用质量指标(Faithfulness/Recall)设下限、成本指标($/query)设上限、延迟指标(P99)设 SLO,三者联动调优而非单维优化。
核心要点
一、不可能三角
质量(Quality)
/ \
/ 在这个三角 \
/ 内找平衡点 \
/________________________\
成本(Cost) 延迟(Latency)
提升质量 → 用更大模型/更多检索/多轮反思 → 成本↑ 延迟↑
降低成本 → 用更小模型/减少调用次数 → 质量↓
降低延迟 → 跳过反思/减少检索轮次 → 质量↓plaintext量化治理的核心:为三个维度各设可接受的阈值,在约束下寻找最优解
二、成本量化模型
单次查询成本拆解:
Cost/Query = Σ(LLM调用) + Σ(Embedding调用) + Σ(Rerank调用) + 基础设施分摊
LLM调用 = input_tokens × input_price + output_tokens × output_price
Embedding = chunks × embedding_price
Rerank = candidates × rerank_price
示例(DocMind):
意图分类: 1000 input + 50 output = ¥0.0008
检索embedding: 1 query embedding = ¥0.0001
Rerank: 5 candidates = ¥0.0002
LLM生成: 3000 input + 500 output = ¥0.0035
反思(15%触发): 0.15 × ¥0.0040 = ¥0.0006
──────────────────────────────────────
总计: ≈ ¥0.005-0.007/queryplaintext成本优化四字诀「缓级压批」:
| 策略 | 原理 | 效果 |
|---|---|---|
| 缓(Cache) | 语义缓存相似查询结果 | 命中率45%→成本↓45% |
| 级(Cascade) | 简单问题用小模型,复杂问题用大模型 | 70%走小模型→成本↓60% |
| 压(Compress) | 压缩 prompt/上下文 | Token 减少30-50% |
| 批(Batch) | 合并多个请求批量调用 | 批量API通常有折扣 |
三、质量量化指标体系
| 维度 | 指标 | 可接受下限 | 优秀水平 |
|---|---|---|---|
| 检索准确性 | Recall@5 | ≥0.70 | ≥0.85 |
| 排序质量 | MRR | ≥0.50 | ≥0.70 |
| 回答忠实度 | Faithfulness | ≥0.80 | ≥0.90 |
| 回答相关性 | Relevance | ≥0.80 | ≥0.90 |
| 安全性 | Adversarial Rejection | =1.00 | =1.00 |
| 任务完成度 | Task Completion | ≥0.70 | ≥0.85 |
质量-成本联动决策表:
| 质量达标? | 成本达标? | 决策 |
|---|---|---|
| ✅ | ✅ | 维持当前配置 |
| ✅ | ❌ | 降级模型/增加缓存/压缩context |
| ❌ | ✅ | 升级模型/增加检索轮次/开启反思 |
| ❌ | ❌ | 重新审视架构(可能需要根本性优化) |
四、延迟量化与优化
延迟拆解:
Total Latency = 意图分类(~100ms) + 检索(~200ms) + Rerank(~400ms)
+ LLM生成(~1800ms) + [反思(~900ms, 15%触发)]
≈ P50: 2500ms, P99: 3800msplaintext延迟优化手段:
| 手段 | 效果 | 代价 |
|---|---|---|
| 流式输出(SSE) | 首 token 延迟降至 ~500ms | 无 |
| 检索+Rerank并行 | 节省 ~200ms | 架构复杂度↑ |
| 小模型路由(简单query) | 节省 ~800ms | 质量略降 |
| 缓存命中 | 直接返回 ~50ms | 新鲜度风险 |
| 跳过反思(高置信) | 节省 ~900ms | 少数 query 质量降 |
五、预算告警与治理
| 级别 | 触发条件 | 动作 |
|---|---|---|
| 绿色 | 日消耗 < 日预算 60% | 正常运行 |
| 黄色 | 日消耗 > 日预算 80% | 通知管理员 |
| 橙色 | 月消耗 > 月预算 90% | 自动降级到小模型 |
| 红色 | 月消耗 > 月预算 100% | 拒绝非核心请求/人工决策 |
成本异常检测:
- 单次查询 Token 超过 P99 的 3 倍 → 可能是 prompt injection 或异常输入
- 某用户/租户短时间成本飙升 → 可能是滥用或循环调用
- 日成本突增 50%+ → 自动告警 + 临时限流
六、Dashboard 核心看板
┌─────────────────────────────────────────┐
│ AI 应用治理看板 │
├─────────┬───────────┬───────────────────┤
│ 质量 │ 成本 │ 延迟 │
│ Faith: │ ¥/query: │ P50: P99: │
│ 0.849 │ 0.006 │ 2.5s 3.8s │
│ Recall: │ 日消耗: │ │
│ 0.788 │ ¥180/¥300 │ 缓存命中率: 45% │
├─────────┴───────────┴───────────────────┤
│ 趋势图: 过去7天 质量/成本/延迟 曲线 │
│ 异常: 无告警 │
└─────────────────────────────────────────┘plaintext面试回答(2分钟版)
AI 应用治理的核心挑战是质量、成本和延迟的不可能三角。我的治理方式是给三个维度各设量化指标和阈值:质量用 Faithfulness 不低于 0.80 和 Recall 不低于 0.70 设下限,成本用每 query 成本设上限,延迟用 P99 设 SLO。成本拆解到每个环节:LLM 调用、Embedding、Rerank 各多少钱,这样优化有的放矢。我们项目通过「缓级压批」四个手段降本 50%:语义缓存命中 45%、双模型级联 70% 走小模型、反思仅 15% 触发、85% 直接跳过、Prompt 压缩减少 Token。预算治理分四级:绿色正常、黄色通知、橙色自动降级到小模型、红色拒绝非核心请求。成本异常检测会捕捉单次 Token 超 P99 三倍的异常请求,防止 injection 或滥用导致成本失控。整个治理的核心思路是把三个维度联动起来看:质量达标但成本超标就降级模型,成本达标但质量不够就升级模型或增加检索轮次。
追问与易错
追问方向:
- “怎么选择降级到哪个模型?”→ 建立模型-质量-成本基准表,对每个任务类型跑评测拿到质量分数,选满足质量下限的最便宜模型;如摘要任务可从 GPT-4 降到 GPT-3.5 省 90% 成本
- “缓存怎么保证答案新鲜度?”→ KB 版本校验(知识库更新时 version+1)+ 缓存设 TTL(如 1 小时)+ 知识库更新时主动清除相关语义缓存条目
- “怎么向业务方解释成本?”→ 按功能维度拆分账单,展示每个功能的 cost/query 和质量指标(准确率/满意度),让业务方看到成本与价值的对应关系
- “多租户怎么做成本分摊?”→ 每次 LLM 调用记录 tenant_id + input/output token 数 + 模型类型,月度按租户汇总出账单;配合配额预算机制防止单租户超支
易错点:
- ❌ “成本优化就是换小模型”——要先量化质量影响,不能盲目降级
- ❌ “延迟不重要,用户能等”——首 token 延迟超过 3 秒用户流失率急增
- ❌ “成本只看 LLM 调用费用”——还有 Embedding/Rerank/存储/基础设施的分摊
- ✅ 核心思路:量化→联动→自动化(手动调参不可持续)