首页 >科技周边 >人工智能 >GPTCACHE教程:提高LLM应用程序的效率

GPTCACHE教程:提高LLM应用程序的效率

Joseph Gordon-Levitt
Joseph Gordon-Levitt原创
2025-03-07 10:18:11217浏览

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教程:提高LLM应用程序的效率>

简单地说,通过利用缓存的响应,GPTCACHE确保基于LLM的应用程序变得响应和高效,就像您对任何现代工具所期望的那样。

>设置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 GPTCACHE教程:提高LLM应用程序的效率

如果要使用其他LLM,请尝试使用Langchain适配器。这是您可以将GPTCAHE与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查询的固有复杂性和可变性,为了克服这一限制,GPTCACHE采用语义缓存策略。语义缓存存储相似或相关的查询 - 提高缓存命中率并提高总体缓存效率的可能性。

gptcache杠杆嵌入算法将查询转换为称为嵌入的数值表示。这些嵌入式存储在矢量存储中,从而实现有效的相似性搜索。此过程允许GPTCACHE从高速缓存存储中识别和检索相似或相关的查询。

>凭借其模块化设计,您可以根据您的要求自定义语义缓存实现。

> 但是,有时会在语义缓存中出现错误的缓存命中,并可能发生缓存失误。为了监视此性能,GPTCACHE提供了三个性能指标:

  • 命中率>测量缓存在满足请求时的成功率。较高的值表明性能更好。
  • >延迟指示从缓存中检索数据所花费的时间,其中较低。
  • 召回>显示了正确使用的高速缓存查询的比例。较高的百分比反映了更好的准确性。
高级功能

>所有基本数据元素,例如初始查询,提示,响应和访问时间戳均存储在“数据管理器”中。 GPTCACHE当前支持以下缓存存储选项:

>

    > sqlite
  • > mysql
  • > postgresql数据库。
>它不支持“ nosql”数据库,但计划很快就会合并。

>

使用驱逐策略

但是,GPTCACHE可以根据指定的限制或计数从缓存存储中删除数据。要管理高速缓存大小,您可以实现至少最近使用的(LRU)驱逐策略,或者是先进的,首先是OUT(FIFO)方法。

>

    > lru驱逐策略
  • 驱逐最近访问的项目。 同时, fifo驱逐策略
  • 放弃了最长持续时间存在的缓存项目。
  • 评估响应性能
  • 用户的数据请求

    的缓存数据
    • >用户定义的参数(如果有)
    • 您也可以使用其他两个功能:
    '

    log_time_func

    ’让您记录并报告密集任务的持续时间,例如生成“
      嵌入
    • ”或执行缓存'搜索>。 ''samelity_threshold,'您可以定义何时确定何时两个嵌入向量(文本数据
    • 的高维表示)的阈值足够相似,以匹配。>。
    • > gptcache最佳实践和故障排除 >现在您知道了GPTCACHE的功能,这里有一些最佳实践和技巧,以确保您获得其好处。 优化GPTCACHE性能
    您可以采取几个步骤来优化GPTCACHE的性能,如下所示。

    1。澄清您的提示

    >您如何提示LLM会影响GPTCACHE的工作原理。因此,保持措辞一致以增强您到达缓存的机会。

    例如,使用一致的措辞,例如“我无法登录到我的帐户”。这样,gptcache识别出类似的问题,例如“忘记我的密码”或“帐户登录问题”,更有效地。

    >

    2。使用内置跟踪指标

    监视内置指标,例如命中率,召回和延迟,以分析缓存的性能。较高的命中率表明,缓存更有效地为存储数据提供了请求的内容,从而帮助您了解其有效性。

    3。使用大型用户群

    缩放LLM应用程序的GPTCACHE

    >为较大的LLM应用程序扩展GPTCACHE,请实现共享的缓存方法,该方法将相同的缓存用于具有相似配置文件的用户组。创建用户配置文件并对其进行分类以识别类似的用户组。

    >利用共享的缓存为同一配置文件组的用户产生有关缓存效率和可扩展性的良好回报。

    这是因为同一配置文件组中的用户倾向于具有可从缓存响应中受益的相关查询。但是,您必须采用正确的用户分析和分类技术来分组用户,并最大程度地利用共享缓存的好处。

    >故障排除常见的gptcache问题

    如果您在GPTCACHE上挣扎,则可以采取几个步骤来解决问题。

    1。缓存无效

    > gptcache依赖于最新的缓存响应。如果基础LLM的响应或用户的意图随着时间的流逝而发生变化,则缓存的响应可能会变得不准确或无关紧要。

    > 为了避免这种情况,请根据LLM的预期更新频率设置缓存条目的到期时间,并定期刷新缓存。

    2。过度依赖缓存的响应

    尽管GPTCACHE可以提高效率,但如果缓存未正确无效,则对缓存响应的过度依赖会导致信息不准确。

    > 为此,即使在类似的查询中,也要确保您的应用程序偶尔从LLM检索新的响应。在处理关键或时间敏感的信息时,这保持了响应的准确性和质量。

    >

    3。忽略缓存质量

    缓存响应的质量和相关性会影响用户体验。因此,您应该使用评估指标来评估缓存响应的质量,然后再将其提供给用户。 通过了解这些潜在的陷阱及其解决方案,您可以确保GPTCACHE有效地提高LLM驱动应用程序的性能和成本效益,而不会损害准确性或用户体验。

    >>>>>

    总结

    gptcache是​​优化LLM应用程序的性能和成本效益的强大工具。需要适当的配置,监视和缓存评估策略,以确保您获得准确和相关的响应。

    >

    如果您是LLM的新手,这些资源可能会有所帮助:

    >

    • 开发大型语言模型
    • >使用Langchain和GPT
    • 构建LLM应用程序
    • >用pytorch
    • 培训LLM
    • 使用llm与cohere api
    • > 使用langchain
    • 开发LLM应用程序

    FAQS

    >如何初始化缓存以运行GPTCACHE并导入OpenAI API?

    ! pip install -q gptcache
    初始化缓存并导入OpenAI API,从gptcache.adapter导入OpenAI。这将自动设置数据管理器以匹配确切的缓存。您可以做到这一点:

    >如果您向ChatGpt提出两次相同的问题会发生什么情况?

    gptcache将先前的答复存储在缓存中,并从高速缓存中检索答案,而不是向API提出新请求。因此,第二个问题的答案将从缓存中获得,而无需再次请求chatgpt。

以上是GPTCACHE教程:提高LLM应用程序的效率的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn