本文将深入介绍 GPTCache,并探讨如何使用 GPTCache 与 Milvus 提供更好的多模态场景用户体验。 01. GPTCache 包含以下几个重要组件: LLM 适配器:负责确保 GPTCache 能够与各种大模型无缝协作。 上下文管理器:使系统能够在不同阶段灵活处理各种数据。 GPTCache 架构 以下代码片段展示了如何在 GPTCache 中配置不同模块和初始化缓存。 GPTCache 保留了机器学习中温度参数的概念,在使用 GPTCache 时,可以选择以下 3 个选项来调节温度: a. 如果缓存中没有令人满意的结果,GPTCache 则会调用图像生成模型。随后,模型生成的图像和文本将保存在 GPTCache,从而丰富缓存的数据库。
用 GPTCache。 想提升 LLM 应用性能的同时降低开销?还得用 GPTCache! GPTCache 的前世今生 如果要追本溯源,GPTCache 的灵感其实来自 OSSChat[2]。 用 GPTCache。想提升 LLM 应用性能的同时降低开销?还得用 GPTCache! 欢迎大家点击【阅读原文】或复制链接【https://github.com/zilliztech/GPTCache】使用 GPTCache 开源项目! 同时,如果你对 GPTCache 有任何建议,也欢迎告诉我们或在 GPTCache 贡献代码[5]!
本文为解码 LangChain 系列,将从 GPTCache 的适用场景出发,厘清 GPTCache 和 LangChain 集成的原理,并附赠集成教程。 01. GPTCache 的功能和原理 GPTCache 能做什么? GPTCache 的推荐场景有哪些? GPTCache 首先将输入的问题转化为 embedding 向量,随后 GPTCache 会在缓存中进行向量近似搜索。 以下示例中在 LangChain 中集成了 GPTCache,并使用了 GPTCache 进行向量相似性检索。
这次,我想先讲讲 GPTCache。 01. 由一次午饭时闲聊开始的项目…… 是的,你没看错,GPTCache 的灵感起源是从一次午饭闲聊时开始的。 在展开讲述前,先普及一个背景。 所以,需要专门为 AIGC 应用设计搭建了一种全新的缓存,我们给它命名为——GPTCache。 GPTCache 能干什么? 有了 GPTCache,用户只需修改几行代码便可缓存 LLM 响应,将 LLM 应用提速 100 多倍。 当然,进行到这里,GPTCache 还只是一个概念。是否真正具备可行性还需要进一步验证。 从零搭建 GPTCache 话不多说,先放一张 GPTCache 的架构图: 为了简化流程,我们最终决定了删除上下文管理器,所以整个 GPTCache 系统共包含五个主要组件: LLM 适配器(LLM 在进一步规划上面,团队正努力在 GPTCache 中接入更多 LLM 模型和向量数据库。此外,GPTCache Bootcamp 也即将发布。
最近,有这样一个项目引发业内关注和讨论——GPTCache(https://github.com/zilliztech/GPTCache)。 有了 GPTCache,用户只需修改几行代码便可缓存 LLM 响应,将 LLM 应用提速100多倍。 当然,进行到这里,GPTCache 还只是一个概念。是否真正具备可行性还需要进一步验证。 从零搭建GPTCache 话不多说,先放一张 GPTCache 的架构图: 为了简化流程,我们最终决定了删除上下文管理器,所以整个 GPTCache 系统共包含五个主要组件: LLM 适配器(LLM GPTCache 支持三种评估函数:精确匹配(exact match)、向量距离(embedding distance)和 ONNX 模型评估。 相似性评估模块对于 GPTCache 同样至关重要。 在进一步规划上面,团队正努力在 GPTCache 中接入更多 LLM 模型和向量数据库。此外,GPTCache Bootcamp 也即将发布。
为 GPTCache 等 LLM 平台提供语义缓存,优化性能并节省成本。 实现文档知识功能,降低 LLM 应用产生幻觉概率(如:OSSChat)。 如何解决 ChatGPT 的幻觉问题? 提升 AIGC 应用程序性能:使用 GPTCache 如果想要提升 AIGC 应用性能并节省成本,可以试试 GPTCache。这个创新项目旨在创建语义缓存,以存储 LLM 响应。 具体而言,GPTCache 会缓存 LLM 的响应。在收到问题时,GPTCache 使用向量数据库检索相似的问题并查询此前缓存的响应。这样一来,应用便可快速准确地回答用户。 GPTCache 可有效避免重复问题多次调用 LLM 接口所产生的费用以及需要等待的响应时间,从而提供更快速、更准确的答案,使 AIGC 应用更受用户欢迎。
对此,Filip 建议集成 GPTCache 与 LangChain,使用 GPTCache 存储 LLM 生成的问题和答案。 在用户下一次提出类似查询时,GPTCache 会先在缓存中搜索是否是已经问过的重复问题,之后如有必要再执行语义搜索并调用 LLM。这样一来,可以大大节省 LLM 的调用成本。 04.
具体技术可以考虑选择RouteLLM、GPTCache、Redis、Guardrails AI等。
Zilliz Cloud 官方文档和云产品中集成该功能 探索 LLM 在技术要求更严苛的 Support 场景中的应用,解决包括准确性、数据隐私安全和权限在内的各类问题 利用 Serverless 和 GPTCache
目前,已经有针对响应的解决方案出现,例如 GPTCache(点击了解更多)。
milvus.io https://github.com/milvus-io/milvus VectorDBBench: https://github.com/zilliztech/VectorDBBench GPTcache : https://github.com/zilliztech/GPTCache
对于刚入门的用户,可以选择使用预先构建的服务,如 GPTCache,或者使用常见的缓存数据库,如 Redis、Cassandra、Memcached 来运行自己的服务。
服务 •GPTCache[35]: 一个用于创建LLM查询的语义缓存的库•Gorilla[36]: 一个LLM的API商店•LlamaHub[37]: 由社区制作的LLM数据加载器的库•EVAL[38] https://github.com/homanp/langchain-ui [34] Yeager.ai: https://github.com/yeagerai/yeagerai-agent [35] GPTCache : https://github.com/zilliztech/GPTCache [36] Gorilla: https://github.com/ShishirPatil/gorilla [37] LlamaHub
对于刚入门的用户,可以选择使用预先构建的服务,如 GPTCache,或者使用常见的缓存数据库,如 Redis、Cassandra、Memcached来运行自己的服务。
对于入门来说,可以使用GPTCache等预构建的工具,或者利用Redis, Apache Cassandra, Memcached等常用缓存数据库自己构建。
比如说,开源项目GPTCache可以将大模型的查询结果缓存至向量数据库,避免重复计算,提高查询效率,这有点像CDN和Redis对网站数据的作用。 6、构建更复杂的AI系统。
Zilliz 产品生态丰富,致力于构建开源+云的大模型加强方案,其中开源向量数据库 Milvus 扮演着大模型知识库的角色;Towhee 可以为大模型提供编排服务;GPTCache 则为大模型提供缓存;
Cache Library Description GPTCache A Library for Creating Semantic Cache for LLM Queries.
'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like GPTCache
工具包 [52]•Yeager.ai[53]:Yeager.ai Agent是第一个设计用于帮助您轻松构建、原型和部署AI驱动的代理的Langchain Agent创建工具 [54]" 服务[55] •GPTCache 68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f79656167657261692f79656167657261692d6167656e743f7374796c653d736f6369616c [55] 服务: https://github.com/kyrolabs/awesome-langchain/blob/main/README.md#services [56] GPTCache : https://github.com/zilliztech/GPTCache [57] : https://camo.githubusercontent.com/00b53511e42ff679259ffae7a508ddc2ccdd07f82c0f56adee16f17f4f6a5033