GPTCACHE是大型语言模型(LLM)应用程序之类的开源框架。它存储先前生成的LLM对类似查询的响应。该应用程序不依赖LLM,而是检查缓存是否相关响应以节省您的时间。
本指南探讨了gptcache的工作原理以及如何在项目中有效使用它。
什么是gptcache?
>
再次出现类似的查询时,LLM可以拉起缓存的响应,而不是从头开始开发新的响应。>
与其他工具不同,GPTCACHE在语义缓存上工作。语义缓存的目标是查询/请求的目标。结果,当召回先前存储的查询时,它们的结果会降低服务器的工作量并提高高速缓存命中率。使用gptcache
的好处 GPTCACHE背后的主要思想是存储和重复使用LLM推理过程中生成的中间计算。这样做有几个好处:>大多数llms根据所处理的令牌数量收取特定费用。那是gptcache派上用场的时候。它通过为类似查询提供先前生成的响应来最大程度地减少LLM API调用的数量。结果,这可以通过减少额外的LLM呼叫费用来节省成本。
>比通过查询LLM从头开始生成它的速度要快得多。它提高了速度并改善了响应时间。有效的响应减轻了LLM本身的负担,并释放可以分配给其他任务的空间。
通过更快的应用程序性能增强了用户体验> chatgpt可以达到其响应生成限制
为了避免这些问题,gptchache caches先前对类似问题的答案。当您要求使用某些内容时,它会迅速检查其内存并将信息闪烁。结果,您在少于平常的时间内得到回复。>
>设置GPTCACHE 这是您可以直接安装GPTCACHE的方法:
>使用此代码安装GPTCACHE软件包。
! pip install -q gptcache
接下来,将gptcache导入您的应用程序。
from gptcache import GPTCache cache = GPTCache() # keep the mode default
就是这样,您就完成了!
>>您可以通过其LLM适配器将GPTCACHE与LLMS集成。截至目前,它仅与两个大型语言模型适配器兼容:
>这是您可以将其与两个适配器集成的方法:
>>将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中文网其他相关文章!