GPTCache 为 LLM 查询创建语义缓存的库开源项目

我要开发同款
匿名用户2023年04月20日
131阅读
开发技术Python
所属分类LLM(大语言模型)、人工智能
授权协议MIT

作品详情

GPTCache是一个用于创建语义缓存以存储来自LLM查询的响应的库。将你的LLMAPI成本削减10倍,将速度提高100倍。

ChatGPT和各种大型语言模型(LLM)拥有令人难以置信的多功能性,能够开发广泛的应用程序。然而,随着你的应用程序越来越受欢迎,遇到更高的流量水平,与LLMAPI调用相关的费用可能会变得很高。此外,LLM服务可能会表现出缓慢的响应时间,特别是在处理大量的请求时。GPTCache的创建就是为了应对这一挑战,这是一个致力于建立一个用于存储LLM响应的语义缓存的项目。

GPTCache提供以下主要优势:

减少费用:大多数LLM服务根据请求数量和令牌计数的组合收取费用。GPTCache通过缓存查询结果有效地减少你的开支,这反过来又减少了发送到LLM服务的请求和令牌的数量。因此,你可以在使用该服务时享受更具成本效益的体验。增强性能:LLM采用生成式AI算法实时生成响应,这个过程有时可能很耗时。然而,当类似的查询被缓存时,响应时间会显着缩短,因为结果是直接从缓存中获取的,无需与LLM服务交互。在大多数情况下,与标准的LLM服务相比,GPTCache还可以提供更高的查询吞吐量。适应性强的开发和测试环境:作为LLM应用程序的开发人员,你知道连接到LLMAPI通常是必要的,并且在将应用程序移至生产环境之前对其进行全面测试至关重要。GPTCache提供了一个镜像LLMAPI的接口,并容纳了LLM生成的数据和模拟数据的存储。此功能使你能够毫不费力地开发和测试您的应用程序,无需连接到LLM服务。改进的可伸缩性和可用性:LLM服务经常执行速率限制,这是API对用户或客户端在给定时间范围内访问服务器的次数施加的限制。达到速率限制意味着额外的请求将被阻止,直到某个时间段过去,从而导致服务中断。借助GPTCache,你可以轻松扩展以适应不断增加的查询量,确保随着应用程序用户群的扩展而保持一致的性能。它是如何工作的?在线服务通常表现出数据局部性,用户经常访问流行或趋势内容。缓存系统通过存储经常访问的数据来利用这种行为,这反过来又减少了数据检索时间,改进了响应时间,并减轻了后端服务器的负担。传统的缓存系统通常利用新查询和缓存查询之间的精确匹配来确定请求的内容在获取数据之前是否在缓存中可用。

然而,由于LLM查询的复杂性和可变性,对LLM缓存使用精确匹配方法效果较差,导致缓存命中率较低。为了解决这个问题,GPTCache采用了语义缓存等替代策略。语义缓存识别并存储相似或相关的查询,从而增加缓存命中概率并提高整体缓存效率。

GPTCache使用嵌入算法将查询转换为嵌入,并使用向量存储对这些嵌入进行相似性搜索。这个过程允许GPTCache从缓存存储中识别和检索相似或相关的查询,如模块部分所示。

GPTCache采用模块化设计,使用户可以轻松定制自己的语义缓存。系统为每个模块提供了不同的实现,用户甚至可以开发自己的实现来满足他们的特定需求。

在语义缓存中,你可能会在缓存命中期间遇到误报,在缓存未命中期间遇到漏报。GPTCache提供了三个指标来衡量其性能,这有助于开发人员优化他们的缓存系统:

命中率:该指标量化缓存成功满足内容请求的能力,与它收到的请求总数相比。更高的命中率表示更有效的缓存。延迟:该指标衡量处理查询和从缓存中检索相应数据所需的时间。较低的延迟意味着更高效和响应更快的缓存系统。召回率:该指标表示缓存提供的查询占缓存本应提供的查询总数的比例。较高的召回百分比表明缓存正在有效地提供适当的内容。包含一个示例基准,供用户开始评估其语义缓存的性能。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论