GPTCacheは、ChatGPTのような大規模な言語モデル(LLM)アプリケーション向けのオープンソースフレームワークです。以前に生成されたLLM応答を同様のクエリに保存します。 LLMに頼る代わりに、アプリケーションはキャッシュをチェックして、時間を節約するための関連する応答をチェックします。
このガイドでは、Gptcacheがどのように機能し、プロジェクトで効果的に使用できるかを調査します。gptcacheとは?
他のツールとは異なり、GptCacheはセマンティックキャッシングで動作します。セマンティックキャッシュは、クエリ/リクエストの目的を保持します。その結果、以前に保存されたクエリがリコールされると、その結果はサーバーのワークロードを減らし、キャッシュヒット率を改善します。 GPTCACHE
を使用することの利点GPTCacheの背後にある主なアイデアは、LLMの推論プロセス中に生成された中間計算を保存および再利用することです。そうすることにはいくつかの利点があります:
LLM API呼び出しのコスト削減
キャッシュから応答を取得することは、LLMを照会することでゼロから生成するよりも大幅に高速です。速度を高め、応答時間を改善します。効率的な応答は、LLM自体の負担を軽減し、他のタスクに割り当てることができるスペースを解放します。 より高速なアプリケーションパフォーマンスによるユーザーエクスペリエンスの強化
chatgptは、その応答を生成することで到達できます
単純に言えば、キャッシュされた応答を活用することにより、GPTCacheはLLMベースのアプリケーションが応答性と効率的になることを保証します。
gptcacheのセットアップ
! pip install -q gptcache
from gptcache import GPTCache cache = GPTCache() # keep the mode default
LLMS
との統合openai
gptcache
サンプルコードを実行する前に、echo $ openai_api_keyを実行してOpenai_Api_key環境変数を設定します。
まだ設定されていない場合は、unix/linux/macosシステムでexport openai_api_key = your_api_keyを使用するか、openai_api_key = your_api_key on windows systemsを使用して設定できます。from gptcache import cache from gptcache.adapter import openai cache.init() cache.set_openai_key()
同様の検索キャッシュの例コード:
出力に表示されるものは次のとおりです
2回目、GPTは同じ質問に答えるのにほぼ0秒かかりました
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')
gptcache
別のLLMを使用する場合は、Langchainアダプターを試してください。 GptcaheをLangchain:と統合する方法は次のとおりです
基本操作
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)
llmsは効果がなくなり、キャッシュヒット率が低くなります。 この制限を克服するために、GPTCacheはセマンティックキャッシュ戦略を採用しています。セマンティックキャッシングストアは、同様のクエリまたは関連するクエリ - キャッシュヒットの確率を増やし、全体的なキャッシュ効率を高める。 gptcacheは、埋め込みアルゴリズムを活用して、クエリを埋め込みと呼ばれる数値表現に変換します。これらの埋め込みはベクターストアに保存され、効率的な類似性検索を可能にします。このプロセスにより、GPTCacheはキャッシュストレージから類似または関連するクエリを識別および取得できます。 モジュラー設計を使用すると、要件に応じてセマンティックキャッシュの実装をカスタマイズできます。
ただし、誤ったキャッシュのヒットとキャッシュミスは、セマンティックキャッシュで発生する場合があります。このパフォーマンスを監視するために、GPTCacheは3つのパフォーマンスメトリックを提供しますsqlite
その間、
fifo eviction policy他の2つの関数を使用することもできます
テキストデータの高次元表現
)が一致するほど類似している場合を決定するためのしきい値を定義できます。ヒット率、リコール、レイテンシなどの組み込みメトリックを監視して、キャッシュのパフォーマンスを分析します。より高いヒット率は、キャッシュが保存されたデータから要求されたコンテンツをより効果的に提供し、その有効性を理解するのに役立つことを示しています。
3。大規模なユーザーベースを備えたLLMアプリケーション用のGPTCACHEのスケーリングgptcacheに苦労している場合、問題のトラブルシューティングに実行できるいくつかの手順があります。
1。キャッシュ無効gptcacheは、最新のキャッシュ応答に依存しています。基礎となるLLMの応答またはユーザーの意図が時間とともに変化した場合、キャッシュされた応答は不正確または無関係になる可能性があります。 これを回避するには、LLMの予想される更新頻度に基づいてキャッシュされたエントリの有効時間を設定し、キャッシュを定期的に更新します。
GPTCacheは効率を改善できますが、キャッシュされた応答への過度の依存は、キャッシュが適切に無効にされない場合、情報の不正確な情報につながる可能性があります。 この目的のために、同様のクエリであっても、アプリケーションがLLMから新たな応答を取得することがあることを確認してください。これにより、重要なまたは時間に敏感な情報を扱う際の回答の正確性と品質が維持されます。
3。キャッシュの品質を無視これらの潜在的な落とし穴とそのソリューションを理解することにより、GPTCacheがLLMを搭載したアプリケーションのパフォーマンスと費用効率を効果的に改善することを保証できます。
ラップアップgptcacheは、LLMアプリケーションのパフォーマンスと費用効率を最適化するための強力なツールです。正確で関連性のある応答を確実に得るには、適切な構成、監視、およびキャッシュ評価戦略が必要です。
! pip install -q gptcache
以上がGPTCacheチュートリアル:LLMアプリケーションの効率の向上の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。