分层 LLM 架构的异步验证语义缓存

大型语言模型 (LLM) 现在位于搜索、辅助和代理工作流程的关键路径中,使得语义缓存对于降低推理成本和延迟至关重要。生产部署通常使用分层的静态-动态设计:从日志中挖掘的经过策划、离线审查的响应的静态缓存,由在线填充的动态缓存提供支持。在实践中,这两层通常都由单个嵌入相似性阈值控制,这会导致一个艰难的权衡:保守的阈值会错过安全重用的机会,而激进的阈值则可能会导致语义上不正确的服务......

来源:Apple机器学习研究

大型语言模型 (LLM) 现在位于搜索、辅助和代理工作流程的关键路径中,使得语义缓存对于降低推理成本和延迟至关重要。生产部署通常使用分层的静态-动态设计:从日志中挖掘的经过策划、离线审查的响应的静态缓存,由在线填充的动态缓存提供支持。在实践中,这两层通常由单个嵌入相似性阈值控制,这会导致一个艰难的权衡:保守的阈值会错过安全重用机会,而激进的阈值则有可能提供语义上不正确的响应。我们引入了 Krites,这是一种异步的、经 LLM 判断的缓存策略,可以在不改变服务决策的情况下扩展静态覆盖范围。在关键路径上,Krites 的行为与标准静态阈值策略完全相同。当提示的最近静态邻居低于静态阈值时,Krites 异步调用 LLM 判断来验证静态响应是否适合新提示。批准的匹配将提升到动态缓存中,允许将来的重复和释义重用策划的静态答案并随着时间的推移扩大静态范围。在对话和搜索工作负载的跟踪驱动模拟中,相对于调整后的基线,Krites 将对话流量和搜索式查询的提供策划静态答案(直接静态点击加上经过验证的促销)的请求比例提高了 3.9 倍,且关键路径延迟不变。