首頁 >科技週邊 >人工智慧 >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)驅逐策略,或者先於首先使用(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