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

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
如何使用LM Studio在本地运行LLM? - 分析Vidhya如何使用LM Studio在本地运行LLM? - 分析VidhyaApr 19, 2025 am 11:38 AM

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

盖伊·佩里(Guy Peri)通过数据转换帮助麦考密克的未来盖伊·佩里(Guy Peri)通过数据转换帮助麦考密克的未来Apr 19, 2025 am 11:35 AM

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

迅速工程中的情感链是什么? - 分析Vidhya迅速工程中的情感链是什么? - 分析VidhyaApr 19, 2025 am 11:33 AM

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

12个最佳数据科学工作流程的AI工具-Analytics Vidhya12个最佳数据科学工作流程的AI工具-Analytics VidhyaApr 19, 2025 am 11:31 AM

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

AV字节:OpenAI的GPT-4O Mini和其他AI创新AV字节:OpenAI的GPT-4O Mini和其他AI创新Apr 19, 2025 am 11:30 AM

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

报告发现,困惑的Android应用程序有安全缺陷。报告发现,困惑的Android应用程序有安全缺陷。Apr 19, 2025 am 11:24 AM

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

每个人都擅长使用AI:关于氛围编码的想法每个人都擅长使用AI:关于氛围编码的想法Apr 19, 2025 am 11:17 AM

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

火箭发射模拟和分析使用Rocketpy -Analytics Vidhya火箭发射模拟和分析使用Rocketpy -Analytics VidhyaApr 19, 2025 am 11:12 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

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

SecLists

SecLists

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

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)