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)驅逐策略,或者先於首先使用(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中文網其他相關文章!