GPTCACHE是大型语言模型(LLM)应用程序之类的开源框架。它存储先前生成的LLM对类似查询的响应。该应用程序不依赖LLM,而是检查缓存是否相关响应以节省您的时间。
本指南探讨了gptcache的工作原理以及如何在项目中有效使用它。
什么是gptcache?
gptcache是一种缓存系统,旨在提高大语模型(LLM)(例如GPT-3)的性能和效率。它可以帮助LLMS存储先前生成的查询以节省时间和精力。
>
再次出现类似的查询时,LLM可以拉起缓存的响应,而不是从头开始开发新的响应。>
与其他工具不同,GPTCACHE在语义缓存上工作。语义缓存的目标是查询/请求的目标。结果,当召回先前存储的查询时,它们的结果会降低服务器的工作量并提高高速缓存命中率。使用gptcache
的好处 GPTCACHE背后的主要思想是存储和重复使用LLM推理过程中生成的中间计算。这样做有几个好处:LLM API调用上节省的成本
>>大多数llms根据所处理的令牌数量收取特定费用。那是gptcache派上用场的时候。它通过为类似查询提供先前生成的响应来最大程度地减少LLM API调用的数量。结果,这可以通过减少额外的LLM呼叫费用来节省成本。
>提高了响应时间和效率
> 从缓存中检索响应的比通过查询LLM从头开始生成它的速度要快得多。它提高了速度并改善了响应时间。有效的响应减轻了LLM本身的负担,并释放可以分配给其他任务的空间。
通过更快的应用程序性能增强了用户体验假设您正在搜索问题。您问的每个问题都需要年龄才能回答。为什么?因为大多数LLM服务在设定期间内强制执行请求限制。超过这些限制的进一步阻止了请求,直到重置限制,这会导致服务中断。
> chatgpt可以达到其响应生成限制
为了避免这些问题,gptchache caches先前对类似问题的答案。当您要求使用某些内容时,它会迅速检查其内存并将信息闪烁。结果,您在少于平常的时间内得到回复。>
>设置GPTCACHE 这是您可以直接安装GPTCACHE的方法:
>安装和配置
>使用此代码安装GPTCACHE软件包。
! pip install -q gptcache
接下来,将gptcache导入您的应用程序。
from gptcache import GPTCache cache = GPTCache() # keep the mode default
就是这样,您就完成了!
>与LLMS
集成>您可以通过其LLM适配器将GPTCACHE与LLMS集成。截至目前,它仅与两个大型语言模型适配器兼容:
>- openai
- langchain
这是您可以将其与两个适配器集成的方法:
>gptcache with openai chatgpt api
>将GPTCACHE与OpenAI集成,初始化缓存并从GPTCACHE.ADAPTER。
from gptcache import cache from gptcache.adapter import openai cache.init() cache.set_openai_key()在运行示例代码之前,通过执行echo $ openai_api_key。
如果尚未设置它,则可以在unix/linux/macOS系统上使用openAi_api_key = your_api_key进行设置,或在Windows Systems上设置OpenAI_API_KEY = your_api_key。 然后,如果您问Chatgpt两个确切的问题,它将从缓存中检索第二个问题的答案,而不是再次问ChatGpt。
这是一个类似搜索缓存的示例代码:
这是您在输出中会看到的:
import time def response_text(openai_resp): return openai_resp['choices'][0]['message']['content'] print("Cache loading.....") # To use GPTCache, that's all you need # ------------------------------------------------- from gptcache import cache from gptcache.adapter import openai cache.init() cache.set_openai_key() # ------------------------------------------------- question = "what's github" for _ in range(2): start_time = time.time() response = openai.ChatCompletion.create( model='gpt-3.5-turbo', messages=[ { 'role': 'user', 'content': question } ], ) print(f'Question: {question}') print("Time consuming: {:.2f}s".format(time.time() - start_time)) print(f'Answer: {response_text(response)}\n')
第二次,GPT花了将近0秒的时间来回答相同的问题
>> gptcache with langchain
的方式
学习如何使用Langchain构建LLM应用程序。在您的项目中使用gptcache
from langchain.globals import set_llm_cache from langchain_openai import OpenAI # To make the caching really obvious, lets use a slower model. llm = OpenAI(model_name="gpt-3.5-turbo-instruct", n=2, best_of=2)>让我们看一下GPTCACHE如何支持您的项目。
基本操作
由于LLM查询的固有复杂性和可变性, >凭借其模块化设计,您可以根据您的要求自定义语义缓存实现。 >
>
log_time_func
监视内置指标,例如命中率,召回和延迟,以分析缓存的性能。较高的命中率表明,缓存更有效地为存储数据提供了请求的内容,从而帮助您了解其有效性。
这是因为同一配置文件组中的用户倾向于具有可从缓存响应中受益的相关查询。但是,您必须采用正确的用户分析和分类技术来分组用户,并最大程度地利用共享缓存的好处。
2。过度依赖缓存的响应 尽管GPTCACHE可以提高效率,但如果缓存未正确无效,则对缓存响应的过度依赖会导致信息不准确。
>>>>>
>
>
gptcache杠杆嵌入算法将查询转换为称为嵌入的数值表示。这些嵌入式存储在矢量存储中,从而实现有效的相似性搜索。此过程允许GPTCACHE从高速缓存存储中识别和检索相似或相关的查询。
高级功能
>所有基本数据元素,例如初始查询,提示,响应和访问时间戳均存储在“数据管理器”中。 GPTCACHE当前支持以下缓存存储选项:> sqlite
>它不支持“ nosql”数据库,但计划很快就会合并。
但是,GPTCACHE可以根据指定的限制或计数从缓存存储中删除数据。要管理高速缓存大小,您可以实现至少最近使用的(LRU)驱逐策略,或者是先进的,首先是OUT(FIFO)方法。
>
> lru驱逐策略
用户的数据请求
'嵌入
您可以采取几个步骤来优化GPTCACHE的性能,如下所示。
1。澄清您的提示例如,使用一致的措辞,例如“我无法登录到我的帐户”。这样,gptcache识别出类似的问题,例如“忘记我的密码”或“帐户登录问题”,更有效地。
>2。使用内置跟踪指标
缩放LLM应用程序的GPTCACHE
>为较大的LLM应用程序扩展GPTCACHE,请实现共享的缓存方法,该方法将相同的缓存用于具有相似配置文件的用户组。创建用户配置文件并对其进行分类以识别类似的用户组。
1。缓存无效>
为了避免这种情况,请根据LLM的预期更新频率设置缓存条目的到期时间,并定期刷新缓存。
>
3。忽略缓存质量
gptcache是优化LLM应用程序的性能和成本效益的强大工具。需要适当的配置,监视和缓存评估策略,以确保您获得准确和相关的响应。
FAQS
>如何初始化缓存以运行GPTCACHE并导入OpenAI API?
! pip install -q gptcache
初始化缓存并导入OpenAI API,从gptcache.adapter导入OpenAI。这将自动设置数据管理器以匹配确切的缓存。您可以做到这一点:
以上是GPTCACHE教程:提高LLM应用程序的效率的详细内容。更多信息请关注PHP中文网其他相关文章!

轻松在家运行大型语言模型:LM Studio 使用指南 近年来,软件和硬件的进步使得在个人电脑上运行大型语言模型 (LLM) 成为可能。LM Studio 就是一个让这一过程变得轻松便捷的优秀工具。本文将深入探讨如何使用 LM Studio 在本地运行 LLM,涵盖关键步骤、潜在挑战以及在本地拥有 LLM 的优势。无论您是技术爱好者还是对最新 AI 技术感到好奇,本指南都将提供宝贵的见解和实用技巧。让我们开始吧! 概述 了解在本地运行 LLM 的基本要求。 在您的电脑上设置 LM Studi

盖伊·佩里(Guy Peri)是麦考密克(McCormick)的首席信息和数字官。尽管他的角色仅七个月,但Peri正在迅速促进公司数字能力的全面转变。他的职业生涯专注于数据和分析信息

介绍 人工智能(AI)不仅要理解单词,而且要理解情感,从而以人的触感做出反应。 这种复杂的互动对于AI和自然语言处理的快速前进的领域至关重要。 Th

介绍 在当今以数据为中心的世界中,利用先进的AI技术对于寻求竞争优势和提高效率的企业至关重要。 一系列强大的工具使数据科学家,分析师和开发人员都能构建,Depl

本周的AI景观爆炸了,来自Openai,Mistral AI,Nvidia,Deepseek和Hugging Face等行业巨头的开创性发行。 这些新型号有望提高功率,负担能力和可访问性,这在TR的进步中推动了

但是,该公司的Android应用不仅提供搜索功能,而且还充当AI助手,并充满了许多安全问题,可以将其用户暴露于数据盗用,帐户收购和恶意攻击中

您可以查看会议和贸易展览中正在发生的事情。您可以询问工程师在做什么,或咨询首席执行官。 您看的任何地方,事情都以惊人的速度发生变化。 工程师和非工程师 有什么区别

模拟火箭发射的火箭发射:综合指南 本文指导您使用强大的Python库Rocketpy模拟高功率火箭发射。 我们将介绍从定义火箭组件到分析模拟的所有内容


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
视觉化网页开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)