模型路由与成本
LLM 应用的生产级问题:不同任务用不同模型,成本是运营核心。面试主线:路由策略、成本构成、优化手段。
为什么路由
模型不是“越大越好”:大模型贵且慢,小模型便宜且快。
| 任务 | 适合 |
|---|---|
| 简单分类、抽取 | 小模型(便宜快) |
| 复杂推理、代码 | 大模型 |
| 对话、创意 | 中档 |
| 结构化输出 | 小模型 + 严格 schema |
路由 = 按任务难度/类型选模型,省 50-80% 成本是常态。
路由策略
路由: 规则 / 语义 / 级联
| 策略 | 机制 | 适用 |
|---|---|---|
| 规则路由 | 任务类型、关键词、模型能力表 | 任务形态明确 |
| 语义路由 | 小分类模型或 embedding 相似度 | 自然语言分类 |
| 级联(cascade) | 先小模型,质量不足升级 | 质量敏感、省钱 |
级联判断:小模型输出置信度低/校验失败/用户追问时升级大模型。
成本构成与优化
成本 = 输入 token × 输入价 + 输出 token × 输出价| 优化手段 | 效果 |
|---|---|
| 模型路由 | 简单任务用便宜模型(最大头) |
| 提示精简 | 少 token = 少钱(中文尤其,见 tokenization 篇) |
| 上下文管理 | 历史裁剪/摘要,别无限塞(见 context-engineering) |
| Prompt 缓存 | 相同前缀命中缓存(长系统提示),输入成本大降 |
| 批量/异步 | 非实时任务走批处理(便宜模型/低谷时段) |
| 输出限制 | max_tokens 收紧(输出 token 通常更贵) |
Prompt 缓存(重点):系统提示 + few-shot 不变时,命中缓存输入 token 价格降 50-90%(各厂商支持)。把不变的放前面(系统提示、示例),变化的放后部。
降级与容错
- 大模型故障 → 降级中模型(功能可用性优先)
- 模型超时 → 重试 + 熔断(见 API 集成篇)
- 生成失败 → 缓存兜底(历史答案)、默认回复
- 成本监控:按用户/任务维度计量,异常告警
面试追问
- 为什么模型路由? 不同任务难度不同,小模型便宜快。路由省 50-80% 成本
- 级联怎么判断升级? 小模型置信度低、校验失败、用户追问。质量敏感场景
- Prompt 缓存怎么用? 不变的(系统提示/示例)放前面,命中缓存输入 token 大降价
- 成本构成? 输入 + 输出 token 计费。输出通常更贵,max_tokens 要收紧
- 降级策略? 大模型故障降中模型、缓存兜底、默认回复。可用性优先