如何将 AI 成本削减一半,同时将性能翻倍
Source: Dev.to
传统缓存会在有人重新表述问题的瞬间失效。用户问“你们的营业时间是几点?”并得到回复。五分钟后,另一位用户问“你们什么时候开门?”——语义相同,但用词不同;缓存完全未命中。这种对 AI 应用的隐形税导致 LLM 成本飙升,因为标准缓存只能捕获完全相同的字符串。
The Limitations of Exact‑Match Caching
大多数缓存系统的工作方式如下:
- 对请求进行哈希。
- 检查缓存中是否存在该哈希的精确匹配。
- 若存在,则返回缓存的响应。
这种方式对静态资源或数据库查询非常有效,因为请求是完全相同的。然而,LLM 请求很少完全相同。考虑以下变体:
- “退款政策是什么?”
- “我该如何申请退款?”
- “我可以退这件商品吗?”
- “你们的退货政策是什么?”
人类可以立刻识别这些是同一个问题。传统缓存却把它们视为四个不同的请求,导致四次独立的 API 调用,每次费用在 $0.002–$0.03 之间,取决于模型和 token 数量。
对于每天处理 10,000 条查询的 AI 客服系统来说,浪费会迅速累积。即使保守估计 30 % 的查询是语义重复的,也意味着每天会有 3,000 次不必要的 API 调用。
Semantic Caching with Bifrost
Bifrost 是一个开源的 LLM 网关,通过 semantic caching(语义缓存)解决此问题——它理解意义而不是匹配文本。早期生产部署显示成本降低了 40 %–60 %,部分用例甚至实现了高达 85 % 的节省。
How It Works
当请求到达时:
- 使用小型、快速模型(例如
text-embedding-3-small)为提示 生成嵌入向量。 - 在向量存储中 搜索具有高语义相似度的缓存条目。
- 若相似度超过配置阈值(通常为 0.8–0.95),返回缓存的响应。
- 若未找到匹配,则 调用 LLM,并将响应及其嵌入一起缓存。
关键洞察:两个语义相似的提示会产生相似的嵌入向量,即使文字不同。向量相似度搜索能够在毫秒级找到这些近似匹配。
Example
- 用户询问:“What are your business hours?” → 生成嵌入,响应被缓存。
- 稍后,另一位用户询问:“When are you open?” → 嵌入在数学上相似;Bifrost 在毫秒内返回缓存的响应。