乐趣区

关于人工智能:GPTCacheLLM-应用必备的省省省利器

想晋升大型语言模型(LLM)利用的性能?用 GPTCache。

想晋升 LLM 利用性能的同时升高开销?还得用 GPTCache!

GPTCache 是 LLM 语义缓存层(caching layer),它采纳语义缓存(semantic cache)[1] 技术,可能存储 LLM 响应,从而显著缩小检索数据所需的工夫、升高 API 调用开销、晋升利用可扩展性。不仅如此,用户还能够通过定制个性化缓存规定并监控缓存性能,进一步优化 GPTCache 并晋升效率。

总之,能够用三个词来概括:高效(省工夫)、节约老本(省钱)、定制化(省劲儿)。接下来,咱们将具体介绍 GPTCache 的性能以及如何物尽其用,最大水平地借助它实现性能、老本的最优化。

01. 用语义缓存来存储 LLM 响应的五大理由

咱们在开篇曾经介绍过,GPTCache 采纳语义缓存技术来贮存 LLM 响应。起因是什么?这背地有 5 个重点:

重点一,晋升性能。将 LLM 响应存储在缓存中能够显著缩小检索响应所需的工夫。如果之前的申请曾经存储在缓存中,可能更大幅度地升高响应工夫,进步应用程序的整体性能。

重点二,节俭开销。大多数 LLM 服务依据申请次数和令牌数(token count)免费。缓存 LLM 响应能够缩小对服务 API 的调用次数,从而节省成本。尤其是在高流量场景下,缓存尤为重要。如果不应用语义缓存,可能会屡次调用 API,产生极高的费用。

重点三,进步可扩展性。缓存 LLM 响应能够通过升高 LLM 服务的负载来进步整个利用的可扩展性。而语义缓存有助于防止零碎瓶颈,确保利用能够解决更多申请。

重点四,定制个性化缓存规定。依据特定要求定制语义缓存规定(如:输出类型、输入格局或响应长度等)有助于晋升缓存效率。

重点五,升高网络提早。语义缓存更凑近客户端,能够缩小从 LLM 服务检索数据所需的工夫,升高网络提早,从而无效晋升用户的整体体验。

02.GPTCache 的前世今生

如果要寻根究底,GPTCache 的灵感其实来自 OSSChat[2]。在搭建 ChatGPT 的 demo 利用 OSSChat 时,咱们发现随着工夫的推移,OSSChat 呈现性能逐渐降落、服务费用一直减少的状况。为解决这些问题,须要引入一套缓存机制,在研发缓存层 GPTCache 时,咱们的工程师意识到,这可能帮忙到社区用户。所以,咱们决定将其开源,为更多用户提供便当。

目前,GPTCache 曾经可能通过缓存语言模型的响应,进步 GPT 利用的效率和速度。同时,GPTCache 也容许用户依据本人的需要自定义缓存规定,包含 embedding 函数、相似性计算形式、存储地位和存储逐出(eviction)规定等。此外,GPTCache 反对 OpenAI ChatGPT 接口和 LangChain 接口。

embedding API

不同的 embedding 形式会影响 GPTCache 中相似性搜寻的准确性和效率。为应答多样的利用场景,GPTCache 反对丰盛的 embedding 形式。迄今为止,GPTCache 反对的用于提取 embedding 的 API 包含:

  • OpenAI embedding API
  • ONNX with the GPTCache/paraphrase-albert-onnx model
  • Hugging Face embedding API
  • Cohere embedding API
  • fastText embedding API
  • SentenceTransformers embedding API

此外,GPTCache 还提供一个通用接口,同时反对多个 embedding API,这意味着用户能够依据本人的需要灵便抉择最适宜的 embedding API。

缓存存储(Cache Storage)

GPTCache 将 LLM 响应存储在各种数据库管理系统中。GPTCache 反对丰盛的缓存存储数据库,用户可依据性能、可扩展性需要和老本估算,灵便抉择最适宜的数据库。GPTCache 反对的热门数据库包含:

  • SQLite
  • PostgreSQL
  • MySQL
  • MariaDB
  • SQL Server
  • Oracle

此外,GPTCache 还提供一个通用接口,用于扩大模块,容许用户按需增加不同的数据库系统。

向量存储(Vector Store)

GPTCache 蕴含向量存储模块,向量存储模块会依据输出申请的 embedding 查找 top-K 最类似的申请。简而言之,该模块用于评估申请之间的相似性。GPTCache 的界面非常敌对,提供丰盛的向量存储数据库。抉择不同的向量数据库会影响相似性检索的效率和准确性。目前,GPTCache 反对多个向量数据库,包含:

  • Milvus[3]
  • Zilliz Cloud[4]
  • FAISS

当然,咱们也打算在将来反对更多其余的向量数据库。

逐出策略

GPTCache 中的缓存管理器(Cache Manager)管制 Cache Storage 和 Vector Store 模块的操作。缓存满后,缓存替换机制会决定淘汰哪些数据,为新数据腾出空间。GPTCache 目前反对以下两种规范逐出策略:

  • “最近起码应用”逐出策略(Least Recently Used,LRU)
  • “先进先出”逐出策略(First In First Out,FIFO)

相似性评估

GPTCache 中的相似性评估模块从 Cache Storage 和 Vector Store 中收集数据,并应用各种策略来确定输出申请与来自 Vector Store 的申请之间的相似性,该模块用于确定某一申请是否与缓存匹配。GPTCache 提供标准化接口,集成各种相似性计算形式。多样的的相似性计算形式可能灵便满足不同的需要和利用场景。GPTCache 依据其余用例和需要提供灵活性。

所以,还是那句话:想晋升大型语言模型(LLM)利用的性能?用 GPTCache。想晋升 LLM 利用性能的同时升高开销?还得用 GPTCache!

欢送大家点击链接【https://github.com/zilliztech/GPTCache】应用 GPTCache 开源我的项目!同时,如果你对 GPTCache 有任何倡议,也欢送通知咱们或在 GPTCache 奉献代码 [5]!

🌟【相干链接】🌟

  • 语义缓存(semantic cache):https://zilliz.com/glossary/semantic-cache
  • OSSChat:https://osschat.io/
  • Milvus:https://milvus.io/
  • Zilliz Cloud:https://zilliz.com/cloud
  • GPTCache 奉献代码:https://gptcache.readthedocs.io/en/latest/contributing.html

本文由 mdnice 多平台公布

退出移动版