GPTCache为 LLM 查询创建语义缓存的库
GPTCache 是一个用于创建语义缓存以存储来自 LLM 查询的响应的库。将你的 LLM API 成本削减 10 倍,将速度提高 100 倍。
ChatGPT 和各种大型语言模型(LLM)拥有令人难以置信的多功能性,能够开发广泛的应用程序。然而,随着你的应用程序越来越受欢迎,遇到更高的流量水平,与 LLM API 调用相关的费用可能会变得很高。此外,LLM 服务可能会表现出缓慢的响应时间,特别是在处理大量的请求时。GPTCache 的创建就是为了应对这一挑战,这是一个致力于建立一个用于存储 LLM 响应的语义缓存的项目。
GPTCache 提供以下主要优势:
- 减少费用:大多数 LLM 服务根据请求数量和令牌计数的组合收取费用。GPTCache 通过缓存查询结果有效地减少你的开支,这反过来又减少了发送到 LLM 服务的请求和令牌的数量。因此,你可以在使用该服务时享受更具成本效益的体验。
- 增强性能:LLM 采用生成式 AI 算法实时生成响应,这个过程有时可能很耗时。然而,当类似的查询被缓存时,响应时间会显着缩短,因为结果是直接从缓存中获取的,无需与 LLM 服务交互。在大多数情况下,与标准的 LLM 服务相比,GPTCache 还可以提供更高的查询吞吐量。
- 适应性强的开发和测试环境:作为 LLM 应用程序的开发人员,你知道连接到 LLM API 通常是必要的,并且在将应用程序移至生产环境之前对其进行全面测试至关重要。GPTCache 提供了一个镜像 LLM API 的接口,并容纳了 LLM 生成的数据和模拟数据的存储。此功能使你能够毫不费力地开发和测试您的应用程序,无需连接到 LLM 服务。
- 改进的可伸缩性和可用性:LLM 服务经常执行速率限制,这是 API 对用户或客户端在给定时间范围内访问服务器的次数施加的限制。达到速率限制意味着额外的请求将被阻止,直到某个时间段过去,从而导致服务中断。借助 GPTCache,你可以轻松扩展以适应不断增加的查询量,确保随着应用程序用户群的扩展而保持一致的性能。
它是如何工作的?
在线服务通常表现出数据局部性,用户经常访问流行或趋势内容。缓存系统通过存储经常访问的数据来利用这种行为,这反过来又减少了数据检索时间,改进了响应时间,并减轻了后端服务器的负担。传统的缓存系统通常利用新查询和缓存查询之间的精确匹配来确定请求的内容在获取数据之前是否在缓存中可用。
然而,由于 LLM 查询的复杂性和可变性,对 LLM 缓存使用精确匹配方法效果较差,导致缓存命中率较低。为了解决这个问题,GPTCache 采用了语义缓存等替代策略。语义缓存识别并存储相似或相关的查询,从而增加缓存命中概率并提高整体缓存效率。
GPTCache 使用嵌入算法将查询转换为嵌入,并使用向量存储对这些嵌入进行相似性搜索。这个过程允许 GPTCache 从缓存存储中识别和检索相似或相关的查询,如模块部分所示。
GPTCache 采用模块化设计,使用户可以轻松定制自己的语义缓存。系统为每个模块提供了不同的实现,用户甚至可以开发自己的实现来满足他们的特定需求。
在语义缓存中,你可能会在缓存命中期间遇到误报,在缓存未命中期间遇到漏报。GPTCache 提供了三个指标来衡量其性能,这有助于开发人员优化他们的缓存系统:
- 命中率:该指标量化缓存成功满足内容请求的能力,与它收到的请求总数相比。更高的命中率表示更有效的缓存。
- 延迟:该指标衡量处理查询和从缓存中检索相应数据所需的时间。较低的延迟意味着更高效和响应更快的缓存系统。
- 召回率:该指标表示缓存提供的查询占缓存本应提供的查询总数的比例。较高的召回百分比表明缓存正在有效地提供适当的内容。
包含一个示例基准,供用户开始评估其语义缓存的性能。