Press "Enter" to skip to content

见面GPTCache:开发LLM查询语义缓存的库

见面GPTCache:开发LLM查询语义缓存的库 四海 第1张见面GPTCache:开发LLM查询语义缓存的库 四海 第2张

ChatGPT和大型语言模型(LLMs)非常灵活,可以创建多种程序。然而,当应用程序受欢迎并且流量增加时,与LLM API调用相关的成本可能变得显著。在处理许多查询时,LLM服务可能还需要较长的等待时间。

为了直面这一困难,研究人员开发了GPTCache,这是一个旨在存储LLM答案的语义缓存项目。开源的GPTCache程序可以通过缓存其输出答案来加快LLMs的速度。当所请求的响应已经在缓存中存储并且之前已经请求过时,这将极大地减少获取它所需的时间。

GPTCache具有灵活和简单的特点,非常适合任何应用。它与许多语言学习机器(LLMs)兼容,例如OpenAI的ChatGPT。

它是如何工作的?

为了正常运行,GPTCache会缓存LLM的最终回复。缓存是用于快速检索最近使用的信息的内存缓冲区。每当向LLM发出新请求时,GPTCache首先查找缓存,以确定所请求的响应是否已经存储在其中。如果答案可以在缓存中找到,它将立即返回。如果缓存中没有找到,LLM将生成响应并将其添加到缓存中。

GPTCache的模块化架构使其易于实施定制的语义缓存解决方案。用户可以通过选择不同的设置来定制每个模块的体验。

LLM适配器通过将各种LLM模型使用的API和请求协议标准化为OpenAI API,统一了它们之间的接口。由于LLM适配器可以在不需要重写代码或熟悉新API的情况下在LLM模型之间移动,它简化了测试和实验。

嵌入生成器使用所请求的模型创建嵌入,以进行相似性搜索。支持的模型可以使用OpenAI的嵌入API。这是使用GPTCache/paraphrase-albert-onnx模型的ONNX,Hugging Face嵌入API,Cohere嵌入API,fastText嵌入API和SentenceTransformers嵌入API。

在缓存存储中,像ChatGPT这样的LLM的响应被保留,直到可以检索。在确定两个实体是否在语义上相似时,会获取缓存的回复并将其发送回请求方。GPTCache与许多不同的数据库管理系统兼容。用户可以选择最符合其性能、可扩展性和最常用数据库成本要求的数据库。

向量存储的选择:GPTCache包括一个向量存储模块,它使用从原始请求中导出的嵌入来识别K个最相似的请求。此功能可用于确定两个请求的相似程度。此外,GPTCache支持多个向量存储,例如Milvus、Zilliz Cloud和FAISS,并为与它们一起使用提供了简单的接口。用户可以选择各种向量存储选项,其中任何一个都可能影响GPTCache的相似性搜索性能。凭借对各种向量存储的支持,GPTCache承诺是可适应的,并满足更多种用例的需求。

GPTCache缓存管理器管理缓存存储和向量存储组件的驱逐策略。当缓存被填满时,替换策略决定哪些旧数据应该从缓存中删除,以为新数据腾出空间。

相似性评估器的信息来自于GPTCache的缓存存储和向量存储部分。它使用几种不同的方法将输入请求与向量存储中的请求进行比较。是否从缓存中提供请求取决于相似度的程度。GPTCache提供了统一的接口和可用实现的库,以确定缓存匹配。GPTCache通过各种相似度算法来确定缓存匹配的能力,使其能够适应大范围的用例和用户需求。

特点和优势

  • 通过GPTCache减少LLM查询延迟,提高响应速度和速度。
  • 由于许多LLM服务采用基于令牌和请求的定价结构,GPTCache可以减少服务成本,限制API调用次数。
  • GPTCache具有从LLM服务卸载工作的能力,提高可扩展性。随着您接收的请求数量增加,这可以帮助您保持高效运行。
  • 借助GPTCache,可以将创建LLM应用程序的成本降至最低。通过缓存由LLM生成或模拟的数据,您可以在不向LLM服务发出API请求的情况下测试您的应用程序。

GPTCache可以与您选择的应用程序(LLM ChatGPT)、缓存存储(SQLite、PostgreSQL、MySQL、MariaDB、SQL Server或Oracle)和向量存储(FAISS、Milvus、Ziliz Cloud)配合使用。GPTCache项目的目标是在GPT-based应用程序中尽可能地重用先前生成的回复,而不是每次都从空白开始,从而实现对语言模型的最有效利用。

Leave a Reply

Your email address will not be published. Required fields are marked *