検索
ホームページテクノロジー周辺機器AIGPTCacheチュートリアル: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ベースのアプリケーションが応答性と効率的になることを保証します。

gptcacheGPTCacheチュートリアル:LLMアプリケーションの効率の向上のセットアップ

gptcacheを直接インストールする方法は次のとおりです

インストールと構成

このコードを使用してgptcacheパッケージをインストールします。

! pip install -q gptcache
次に、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()
それから、ChatGPTに2つの正確な質問をすると、ChatGptをもう一度尋ねるのではなく、キャッシュから2番目の質問への回答を取得します。

同様の検索キャッシュの例コード:

出力に表示されるものは次のとおりです

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')
Langchainを搭載した

gptcache

別のLLMを使用する場合は、Langchainアダプターを試してください。 GptcaheをLangchain:GPTCacheチュートリアル:LLMアプリケーションの効率の向上と統合する方法は次のとおりです

LANGCHAINを使用してLLMアプリケーションを構築する方法を学びます プロジェクトでgptcacheを使用して

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)
LLMクエリの固有の複雑さとばらつきのために

llmsは効果がなくなり、キャッシュヒット率が低くなります。 この制限を克服するために、GPTCacheはセマンティックキャッシュ戦略を採用しています。セマンティックキャッシングストアは、同様のクエリまたは関連するクエリ - キャッシュヒットの確率を増やし、全体的なキャッシュ効率を高める。 gptcacheは、埋め込みアルゴリズムを活用して、クエリを埋め込みと呼ばれる数値表現に変換します。これらの埋め込みはベクターストアに保存され、効率的な類似性検索を可能にします。このプロセスにより、GPTCacheはキャッシュストレージから類似または関連するクエリを識別および取得できます。 モジュラー設計を使用すると、要件に応じてセマンティックキャッシュの実装をカスタマイズできます。

ただし、誤ったキャッシュのヒットとキャッシュミスは、セマンティックキャッシュで発生する場合があります。このパフォーマンスを監視するために、GPTCacheは3つのパフォーマンスメトリックを提供します
  • ヒット比充填リクエストにおけるキャッシュの成功率を測定します。値が高いとパフォーマンスが向上します
  • レイテンシキャッシュからデータを取得するのにかかった時間を示します。
  • recall
  • は、正しく提供されたキャッシュクエリの割合を示しています。より高いパーセンテージは、より良い精度を反映しています。
  • 高度な機能

初期クエリ、プロンプト、応答、アクセスタイムスタンプなどのすべての基本的なデータ要素は、「データマネージャー」に保存されます。 GPTCacheは現在、次のキャッシュストレージオプションをサポートしています

sqlite

    mysql
  • postgreSqlデータベース。
  • 「NOSQL」データベースはまだサポートしていませんが、すぐに組み込まれる予定です。 立ち退きポリシーを使用して
  • ただし、GPTCacheは、指定された制限またはカウントに基づいて、キャッシュストレージからデータを削除できます。キャッシュサイズを管理するには、最近使用されていない(LRU)立ち退きポリシーまたはFirst In、First Out(FIFO)アプローチのいずれかを実装できます。

lru eviction policy

は、最近アクセスされていないアイテムを立ち退かせます。

その間、

fifo eviction policy
    は、最も長い間存在していたキャッシュされたアイテムを破棄します。
  • 応答パフォーマンスの評価
  • GPTCacheは「評価」関数を使用して、キャッシュされた応答がユーザークエリに対処するかどうかを評価します。そのためには、3つの入力が必要です
  • ユーザーのデータのリクエスト 評価されているキャッシュされたデータ
ユーザー定義のパラメーター(存在する場合)

他の2つの関数を使用することもできます

  • log_time_func
  • ’では、「
  • embeddings
  • 」を生成したり、キャッシュを実行したりするなど、集中的なタスクの期間を記録および報告できます。
  • '
  • signily_threshold、
’で、2つの埋め込みベクター(

テキストデータの高次元表現

)が一致するほど類似している場合を決定するためのしきい値を定義できます。
  • 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アプリケーションのパフォーマンスと費用効率を最適化するための強力なツールです。正確で関連性のある応答を確実に得るには、適切な構成、監視、およびキャッシュ評価戦略が必要です。

    LLMSが初めての場合、これらのリソースが役立つ場合があります:

    • 大規模な言語モデルの開発
    • LangchainおよびGPT
    • を使用したLLMアプリケーションの構築 pytorchでLLMをトレーニングします
    • cohere apiを使用してLLMを使用します
    • LANGCHAIN faqs
  • キャッシュを初期化してGPTCacheを実行してOpenaI APIをインポートするにはどうすればよいですか?

キャッシュを初期化してopenai APIをインポートするには、gptcache.adapterからopenaiをインポートします。これにより、データマネージャーが正確なキャッシュに一致するように自動的に設定されます。これを行う方法は次のとおりです

CHATGPTに2回同じ質問をするとどうなりますか?

! pip install -q gptcache

gptcacheは、以前の応答をキャッシュに保存し、APIに新しいリクエストを行う代わりにキャッシュから回答を取得します。したがって、2番目の質問に対する答えは、ChatGPTを再度リクエストすることなくキャッシュから得られます。

以上がGPTCacheチュートリアル:LLMアプリケーションの効率の向上の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Huggingface smollmであなたの個人的なAIアシスタントを構築する方法Huggingface smollmであなたの個人的なAIアシスタントを構築する方法Apr 18, 2025 am 11:52 AM

オンデバイスAIの力を活用:個人的なチャットボットCLIの構築 最近では、個人的なAIアシスタントの概念はサイエンスフィクションのように見えました。 ハイテク愛好家のアレックスを想像して、賢くて地元のAI仲間を夢見ています。

メンタルヘルスのためのAIは、スタンフォード大学でのエキサイティングな新しいイニシアチブによって注意深く分析されますメンタルヘルスのためのAIは、スタンフォード大学でのエキサイティングな新しいイニシアチブによって注意深く分析されますApr 18, 2025 am 11:49 AM

AI4MHの最初の発売は2025年4月15日に開催され、有名な精神科医および神経科学者であるLuminary Dr. Tom Insel博士がキックオフスピーカーを務めました。 Insel博士は、メンタルヘルス研究とテクノでの彼の傑出した仕事で有名です

2025年のWNBAドラフトクラスは、成長し、オンラインハラスメントの成長と戦いに参加します2025年のWNBAドラフトクラスは、成長し、オンラインハラスメントの成長と戦いに参加しますApr 18, 2025 am 11:44 AM

「私たちは、WNBAが、すべての人、プレイヤー、ファン、企業パートナーが安全であり、大切になり、力を与えられたスペースであることを保証したいと考えています」とエンゲルバートは述べ、女性のスポーツの最も有害な課題の1つになったものに取り組んでいます。 アノ

Pythonビルトインデータ構造の包括的なガイド-AnalyticsVidhyaPythonビルトインデータ構造の包括的なガイド-AnalyticsVidhyaApr 18, 2025 am 11:43 AM

導入 Pythonは、特にデータサイエンスと生成AIにおいて、プログラミング言語として優れています。 大規模なデータセットを処理する場合、効率的なデータ操作(ストレージ、管理、アクセス)が重要です。 以前に数字とstをカバーしてきました

Openaiの新しいモデルからの代替案からの第一印象Openaiの新しいモデルからの代替案からの第一印象Apr 18, 2025 am 11:41 AM

潜る前に、重要な注意事項:AIパフォーマンスは非決定論的であり、非常にユースケース固有です。簡単に言えば、走行距離は異なる場合があります。この(または他の)記事を最終的な単語として撮影しないでください。これらのモデルを独自のシナリオでテストしないでください

AIポートフォリオ| AIキャリアのためにポートフォリオを構築する方法は?AIポートフォリオ| AIキャリアのためにポートフォリオを構築する方法は?Apr 18, 2025 am 11:40 AM

傑出したAI/MLポートフォリオの構築:初心者と専門家向けガイド 説得力のあるポートフォリオを作成することは、人工知能(AI)と機械学習(ML)で役割を確保するために重要です。 このガイドは、ポートフォリオを構築するためのアドバイスを提供します

エージェントAIがセキュリティ運用にとって何を意味するのかエージェントAIがセキュリティ運用にとって何を意味するのかApr 18, 2025 am 11:36 AM

結果?燃え尽き症候群、非効率性、および検出とアクションの間の隙間が拡大します。これは、サイバーセキュリティで働く人にとってはショックとしてはありません。 しかし、エージェントAIの約束は潜在的なターニングポイントとして浮上しています。この新しいクラス

Google対Openai:学生のためのAIの戦いGoogle対Openai:学生のためのAIの戦いApr 18, 2025 am 11:31 AM

即時の影響と長期パートナーシップ? 2週間前、Openaiは強力な短期オファーで前進し、2025年5月末までに米国およびカナダの大学生にChatGpt Plusに無料でアクセスできます。このツールにはGPT ‑ 4o、Aが含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません