GPTCacheチュートリアル:LLMアプリケーションの効率の向上
GPTCacheは、ChatGPTのような大規模な言語モデル(LLM)アプリケーション向けのオープンソースフレームワークです。以前に生成されたLLM応答を同様のクエリに保存します。 LLMに頼る代わりに、アプリケーションはキャッシュをチェックして、時間を節約するための関連する応答をチェックします。
このガイドでは、Gptcacheがどのように機能し、プロジェクトで効果的に使用できるかを調査します。gptcacheとは?
GPTCacheは、GPT-3のような大規模な言語モデル(LLM)のパフォーマンスと効率を改善するために設計されたキャッシュシステムです。 LLMSが以前に生成されたクエリを保存して時間と労力を節約するのに役立ちます。
同様のクエリが再び登場すると、LLMは新しい応答をゼロから開発する代わりにキャッシュした応答を引き上げることができます。他のツールとは異なり、GptCacheはセマンティックキャッシングで動作します。セマンティックキャッシュは、クエリ/リクエストの目的を保持します。その結果、以前に保存されたクエリがリコールされると、その結果はサーバーのワークロードを減らし、キャッシュヒット率を改善します。 GPTCACHE
を使用することの利点GPTCacheの背後にある主なアイデアは、LLMの推論プロセス中に生成された中間計算を保存および再利用することです。そうすることにはいくつかの利点があります:
LLM API呼び出しのコスト削減
ほとんどのLLMSは、処理されたトークンの数に基づいて、リクエストごとに特定の料金を請求します。それはgptcacheが役立つときです。同様のクエリに対して以前に生成された応答を提供することにより、LLM API呼び出しの数を最小化します。その結果、これにより、追加のLLMコールコストを削減することでコストを節約できます。
応答時間と効率の改善キャッシュから応答を取得することは、LLMを照会することでゼロから生成するよりも大幅に高速です。速度を高め、応答時間を改善します。効率的な応答は、LLM自体の負担を軽減し、他のタスクに割り当てることができるスペースを解放します。 より高速なアプリケーションパフォーマンスによるユーザーエクスペリエンスの強化
コンテンツの質問を検索しているとします。あなたが尋ねるすべての質問は、AIが答えるのに何年もかかります。なぜ?ほとんどのLLMサービスは、設定期間内にリクエスト制限を実施するためです。これらの制限を超えることは、制限がリセットされるまでさらに要求をブロックします。これにより、サービスの中断が発生します。
chatgptは、その応答を生成することで到達できます
これらの問題を回避するために、Gptchacheは同様の質問に対する以前の回答をキャッシュします。何かを求めると、それはすぐにそのメモリをチェックし、情報をフラッシュで配信します。その結果、あなたは通常よりも短い時間であなたの応答を得ます。
単純に言えば、キャッシュされた応答を活用することにより、GPTCacheはLLMベースのアプリケーションが応答性と効率的になることを保証します。
gptcacheのセットアップ
インストールと構成
このコードを使用してgptcacheパッケージをインストールします。
! pip install -q gptcache
from gptcache import GPTCache cache = GPTCache() # keep the mode default
LLMS
との統合LLMアダプターを介してGPTCacheをLLMSと統合できます。現在のところ、それは2つの大きな言語モデルアダプターのみと互換性があります。
openai
- langchain
- 両方のアダプターと統合する方法は次のとおりです Openai Chatgpt API
gptcache
gptcacheをOpenaiと統合するには、キャッシュを初期化し、gptcache.AdapterからOpenAIをインポートします。
サンプルコードを実行する前に、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:と統合する方法は次のとおりです
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)
llmsは効果がなくなり、キャッシュヒット率が低くなります。 この制限を克服するために、GPTCacheはセマンティックキャッシュ戦略を採用しています。セマンティックキャッシングストアは、同様のクエリまたは関連するクエリ - キャッシュヒットの確率を増やし、全体的なキャッシュ効率を高める。 gptcacheは、埋め込みアルゴリズムを活用して、クエリを埋め込みと呼ばれる数値表現に変換します。これらの埋め込みはベクターストアに保存され、効率的な類似性検索を可能にします。このプロセスにより、GPTCacheはキャッシュストレージから類似または関連するクエリを識別および取得できます。 モジュラー設計を使用すると、要件に応じてセマンティックキャッシュの実装をカスタマイズできます。
ただし、誤ったキャッシュのヒットとキャッシュミスは、セマンティックキャッシュで発生する場合があります。このパフォーマンスを監視するために、GPTCacheは3つのパフォーマンスメトリックを提供します- ヒット比充填リクエストにおけるキャッシュの成功率を測定します。値が高いとパフォーマンスが向上します
- レイテンシキャッシュからデータを取得するのにかかった時間を示します。 recall
- は、正しく提供されたキャッシュクエリの割合を示しています。より高いパーセンテージは、より良い精度を反映しています。 高度な機能
初期クエリ、プロンプト、応答、アクセスタイムスタンプなどのすべての基本的なデータ要素は、「データマネージャー」に保存されます。 GPTCacheは現在、次のキャッシュストレージオプションをサポートしています
sqlite
- mysql
- postgreSqlデータベース。
- 「NOSQL」データベースはまだサポートしていませんが、すぐに組み込まれる予定です。 立ち退きポリシーを使用して ただし、GPTCacheは、指定された制限またはカウントに基づいて、キャッシュストレージからデータを削除できます。キャッシュサイズを管理するには、最近使用されていない(LRU)立ち退きポリシーまたはFirst In、First Out(FIFO)アプローチのいずれかを実装できます。
は、最近アクセスされていないアイテムを立ち退かせます。
その間、
fifo eviction policy- は、最も長い間存在していたキャッシュされたアイテムを破棄します。
- 応答パフォーマンスの評価 GPTCacheは「評価」関数を使用して、キャッシュされた応答がユーザークエリに対処するかどうかを評価します。そのためには、3つの入力が必要です
- ユーザーのデータのリクエスト 評価されているキャッシュされたデータ
他の2つの関数を使用することもできます
- ’
- log_time_func ’では、「
- embeddings 」を生成したり、キャッシュを実行したりするなど、集中的なタスクの期間を記録および報告できます。
- ' signily_threshold、
テキストデータの高次元表現
)が一致するほど類似している場合を決定するためのしきい値を定義できます。- gptcacheのベストプラクティスとトラブルシューティング gptcacheがどのように機能するかを知っているので、その利点を確実に享受するためのいくつかのベストプラクティスとヒントがあります。 gptcacheパフォーマンスの最適化 以下に概説するように、GPTCacheのパフォーマンスを最適化するために実行できるいくつかのステップがあります。 1。プロンプトを明確にします
-
LLMにどのように促され、GPTCacheがどの程度うまく機能するかに影響を与えます。したがって、キャッシュに到達する可能性を高めるために、フレージングを一貫性に保ちます。
たとえば、「アカウントにログインできない」などの一貫したフレーズを使用します。これにより、GPTCacheは「パスワードを忘れた」や「アカウントログインの問題」など、同様の問題をより効率的に認識しています。
2。組み込みの追跡メトリックを使用してください
ヒット率、リコール、レイテンシなどの組み込みメトリックを監視して、キャッシュのパフォーマンスを分析します。より高いヒット率は、キャッシュが保存されたデータから要求されたコンテンツをより効果的に提供し、その有効性を理解するのに役立つことを示しています。
3。大規模なユーザーベースを備えたLLMアプリケーション用のGPTCACHEのスケーリングより大きなLLMアプリケーションのGPTCacheをスケーリングするには、同様のプロファイルを持つユーザーグループに同じキャッシュを利用する共有キャッシュアプローチを実装します。ユーザープロファイルを作成し、それらを分類して同様のユーザーグループを識別します。
同じプロファイルグループのユーザーに共有キャッシュをレバレッジすると、キャッシュの効率とスケーラビリティに関して良好なリターンが得られます。 これは、同じプロファイルグループ内のユーザーが、キャッシュされた応答の恩恵を受けることができる関連クエリを持っている傾向があるためです。ただし、ユーザーをグループ化し、共有キャッシュの利点を正確に最大化するには、適切なユーザープロファイリングと分類手法を使用する必要があります。 一般的なgptcacheの問題のトラブルシューティングgptcacheに苦労している場合、問題のトラブルシューティングに実行できるいくつかの手順があります。
1。キャッシュ無効2。キャッシュされた応答への過度の依存
GPTCacheは効率を改善できますが、キャッシュされた応答への過度の依存は、キャッシュが適切に無効にされない場合、情報の不正確な情報につながる可能性があります。 この目的のために、同様のクエリであっても、アプリケーションがLLMから新たな応答を取得することがあることを確認してください。これにより、重要なまたは時間に敏感な情報を扱う際の回答の正確性と品質が維持されます。
3。キャッシュの品質を無視これらの潜在的な落とし穴とそのソリューションを理解することにより、GPTCacheがLLMを搭載したアプリケーションのパフォーマンスと費用効率を効果的に改善することを保証できます。
ラップアップLLMSが初めての場合、これらのリソースが役立つ場合があります:
- 大規模な言語モデルの開発 LangchainおよびGPT
- を使用したLLMアプリケーションの構築 pytorchでLLMをトレーニングします
- cohere apiを使用してLLMを使用します
- LANGCHAIN faqs
キャッシュを初期化してGPTCacheを実行してOpenaI APIをインポートするにはどうすればよいですか?
CHATGPTに2回同じ質問をするとどうなりますか?
! pip install -q gptcache
以上がGPTCacheチュートリアル:LLMアプリケーションの効率の向上の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











メタのラマ3.2:マルチモーダルとモバイルAIの前進 メタは最近、ラマ3.2を発表しました。これは、モバイルデバイス向けに最適化された強力なビジョン機能と軽量テキストモデルを特徴とするAIの大幅な進歩です。 成功に基づいてo

ねえ、忍者をコーディング!その日はどのようなコーディング関連のタスクを計画していますか?このブログにさらに飛び込む前に、コーディング関連のすべての問題について考えてほしいです。 終わり? - &#8217を見てみましょう

今週のAIの風景:進歩、倫理的考慮、規制の議論の旋風。 Openai、Google、Meta、Microsoftのような主要なプレーヤーは、画期的な新しいモデルからLEの重要な変化まで、アップデートの急流を解き放ちました

Shopify CEOのTobiLütkeの最近のメモは、AIの能力がすべての従業員にとって基本的な期待であると大胆に宣言し、会社内の重大な文化的変化を示しています。 これはつかの間の傾向ではありません。これは、pに統合された新しい運用パラダイムです

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

導入 Openaiは、待望の「Strawberry」アーキテクチャに基づいて新しいモデルをリリースしました。 O1として知られるこの革新的なモデルは、推論能力を強化し、問題を通じて考えられるようになりました

SQLの変更テーブルステートメント:データベースに列を動的に追加する データ管理では、SQLの適応性が重要です。 その場でデータベース構造を調整する必要がありますか? Alter Tableステートメントはあなたの解決策です。このガイドの詳細は、コルを追加します

私のコラムに新しいかもしれない人のために、具体化されたAI、AI推論、AIのハイテクブレークスルー、AIの迅速なエンジニアリング、AIのトレーニング、AIのフィールディングなどのトピックなど、全面的なAIの最新の進歩を広く探求します。
