目次
インストールと構成
は、最近アクセスされていないアイテムを立ち退かせます。
2。組み込みの追跡メトリックを使用してください
2。キャッシュされた応答への過度の依存
LLMSが初めての場合、これらのリソースが役立つ場合があります:
ホームページ テクノロジー周辺機器 AI GPTCacheチュートリアル:LLMアプリケーションの効率の向上

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

Mar 07, 2025 am 10:18 AM

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 までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Meta Llama 3.2を始めましょう - 分析Vidhya Meta Llama 3.2を始めましょう - 分析Vidhya Apr 11, 2025 pm 12:04 PM

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

10生成AIコーディング拡張機能とコードのコードを探る必要があります 10生成AIコーディング拡張機能とコードのコードを探る必要があります Apr 13, 2025 am 01:14 AM

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

AVバイト:Meta' s llama 3.2、GoogleのGemini 1.5など AVバイト:Meta' s llama 3.2、GoogleのGemini 1.5など Apr 11, 2025 pm 12:01 PM

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

従業員へのAI戦略の販売:Shopify CEOのマニフェスト 従業員へのAI戦略の販売:Shopify CEOのマニフェスト Apr 10, 2025 am 11:19 AM

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

ビジョン言語モデル(VLM)の包括的なガイド ビジョン言語モデル(VLM)の包括的なガイド Apr 12, 2025 am 11:58 AM

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

GPT-4o vs Openai O1:新しいOpenaiモデルは誇大広告に値しますか? GPT-4o vs Openai O1:新しいOpenaiモデルは誇大広告に値しますか? Apr 13, 2025 am 10:18 AM

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

SQLに列を追加する方法は? - 分析Vidhya SQLに列を追加する方法は? - 分析Vidhya Apr 17, 2025 am 11:43 AM

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

最高の迅速なエンジニアリング技術の最新の年次編集 最高の迅速なエンジニアリング技術の最新の年次編集 Apr 10, 2025 am 11:22 AM

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

See all articles