LLMクエリをキャッシュしてパフォーマンスとコストを改善

GPTCacheとは? 大規模言語モデル(LLM)アプリケーションのパフォーマンスを向上させながら、コストを削減したいとお考えですか?LLMのレスポンスを保存するためのセマンティック・キャッシュに勝るものはありません。LLM レスポンスをキャッシュすることで、データ取得にかかる時間を大幅に短縮し、API コールの費用を削減し、スケーラビリティを向上させることができます。さらに、キャッシュをカスタマイズし、そのパフォーマンスを監視することで、より効率的になるように最適化することができます。このブログでは、LLMレスポンスを保存するためのオープンソースのセマンティックキャッシュであるGPTCacheを紹介し、最良の結果を得るための実装のヒントを提供します。LLMクエリをキャッシュすることで、より良いパフォーマンスとコスト削減を実現する方法について、続きをお読みください。
なぜLLMの保存にセマンティックキャッシュを使うのか?
LLM(大規模言語モデル)のレスポンスを保存するためにセマンティックキャッシュを構築すると、以下のような利点があります:
- パフォーマンスの向上:パフォーマンスの向上: LLM レスポンスをキャッシュに保存することで、レスポンスの取得にかかる時間を大幅に短縮できます。レスポンスをキャッシュに保存することで、アプリケーション全体のパフォーマンスが向上します。 経費の削減:ほとんどのLLMサービスは、リクエスト数とトークン数の組み合わせに基づいて料金を請求します。LLM レスポンスをキャッシュすることで、サービスへの API 呼び出し回数を減らすことができ、コスト削減につながります。キャッシングは、APIコールの費用が相当なものになる可能性のある、高いトラフィックレベルに対処する場合に特に関連する。
- スケーラビリティの向上**:LLM応答をキャッシュすることで、LLMサービスの負荷を軽減し、アプリケーションのスケーラビリティを向上させることができます。キャッシングはボトルネックの回避に役立ち、アプリケーションが増大するリクエストに対応できることを保証します。
- カスタマイズセマンティックキャッシュは、入力のタイプ、出力フォーマット、レスポンスの長さなど、特定の要件に基づいてレスポンスを保存するようにカスタマイズすることができます。これはキャッシュを最適化し、より効率的にするのに役立つ。
- ネットワークの待ち時間を短縮する:よりユーザーの近くに位置するセマンティックキャッシュは、LLMサービスからデータを取得するのにかかる時間を短縮する。ネットワークの待ち時間を減らすことで、全体的なユーザーエクスペリエンスを向上させることができます。
LLMのレスポンスを保存するためのセマンティックキャッシュを構築することで、パフォーマンスの向上、費用の削減、拡張性の向上、カスタマイズ、ネットワーク遅延の短縮など、いくつかのメリットが得られます。
GPTCacheとは?
ChatGPTのデモアプリケーションであるOSS Chatを構築しているとき、テストを重ねるごとにパフォーマンスが低下し、サービス料金が増加することがわかりました。このため、パフォーマンスの低下とコストの増加に対処するためのキャッシュメカニズムが必要だと気付きました。 このキャッシング・レイヤーを構築し始めると、これがコミュニティにとって有用であることに気づいたので、これをGPTCacheとしてオープンソース化することにしました。
GPTCacheは、言語モデルによって生成された応答を保存するキャッシュを実装することによって、GPTベースのアプリケーションの効率と速度を改善するために設計されたオープンソースのツールです。GPTCacheでは、埋め込み関数、類似度評価関数、保存場所、退避などのオプションを含め、ユーザーが必要に応じてキャッシュをカスタマイズすることができます。また、GPTCacheは現在OpenAI ChatGPTインターフェースとLangChainインターフェースをサポートしています。
サポートされる埋め込み
GPTCacheは類似検索のリクエストから埋め込みを抽出するための様々なオプションも提供します。さらに、このツールは複数のエンベッディングAPIをサポートする汎用的なインターフェイスを提供しており、ユーザーは自分のニーズに最適なものを選択することができます。 サポートされているエンベッディングAPIのリストは以下の通りです:
- OpenAI](https://zilliz.com/partners/openai)エンベッディングAPI
- GPTCache/paraphrase-albert-onnx モデルによる ONNX
- Hugging Face ](https://zilliz.com/partners/hugging-face) エンベッディングAPI
- Cohere](https://zilliz.com/partners/cohere) エンベッディング API
- fastText 埋め込み API
- SentenceTransformers 埋め込み API
これらのオプションは、GPTCacheの類似検索機能の精度と効率に影響を与える埋め込み関数の選択肢の幅をユーザーに与えます。GPTCacheは複数のAPIをサポートすることで、柔軟性を提供し、より幅広いユースケースに対応することを目指しています。
キャッシュストレージ
GPTCacheは様々なデータベース管理システムにキャッシュされたレスポンスを保存するためのサポートを提供します。このツールは、以下のような複数の一般的なデータベースをサポートしています:
- SQLite
- PostgreSQL
- MySQL
- MariaDB
- SQL Server
- オラクル
一般的なデータベースをサポートしているため、ユーザーはパフォーマンス、スケーラビリティ、コストに応じて、ニーズに最も適したデータベースを選択することができます。さらに、GPTCacheはモジュールを拡張するための普遍的にアクセス可能なインターフェイスを提供しており、ユーザーは必要に応じて異なるデータベースシステムのサポートを追加することができます。
ベクターストアのオプション
GPTCache は Vector Store モジュールをサポートしており、入力リクエストから 抽出された埋め込みに基づいて、最も類似している K 個のリクエストを見つけることが できます。この機能はリクエスト間の類似性を評価するのに役立ちます。GPTCacheはMilvus, Zilliz Cloud, FAISSを含む様々なベクターストアをサポートするユーザーフレンドリーなインターフェイスを提供します。
これらのオプションは、GPTCacheの類似検索機能の効率と精度に影響を与える可能性のあるベクトルストアのための選択肢の範囲をユーザに与えます。GPTCacheは、複数のベクトルストアをサポートすることで、柔軟性を提供し、より幅広いユースケースに対応することを目指しています。また、近いうちに他のベクトルデータベースにも対応する予定です。
退去ポリシー管理
GPTCacheのCache Managerは、Cache StorageとVector Storeの両モジュールの動作を制御します。キャッシュが一杯になったとき、新しいデータのためにどのデータを退避させるか は、置換ポリシーによって決定されます。GPTCacheは現在2つの基本的なオプションをサポートしています:
- LRU (Least Recently Used) 退去ポリシー
- FIFO (First In, First Out)消去ポリシー
これらはどちらもキャッシュシステムで使われる標準的な立ち退きポリシーです。
類似性評価
GPTCacheのSimilarity EvaluatorモジュールはCache StorageとVector Storeからデータを収集します。様々なストラテジーを使って、入力リクエストとベクターストアからのリクエストの類似性を判断します。類似度はリクエストがキャッシュに一致するかどうかを決定します。GPTCacheは様々な類似性ストラテジーを統合するための標準化されたインターフェースと、実装のコレクションを提供します。これらの異なる類似性ストラテジーにより、GPTCacheは他のユースケースやニーズに基づいてキャッシュの一致を決定する際に柔軟性を提供することができます。
まとめ
GPTCache は GPT ベースのアプリケーションにおける言語モデルの使用を 最適化することを目的としたプロジェクトです。GPTCacheはオープンソースのプロジェクトですので、ご自身でチェックしてみてください。また、プロジェクトへのcontributeを手伝うこともできます!
もっと詳しく
GPTCacheとは](https://zilliz.com/what-is-gptcache)
- ChatGPT用のキャッシュ](https://zilliz.com/blog/Yet-another-cache-but-for-ChatGPT)
- Github Repo](https://github.com/zilliztech/GPTCache)
- OSSチャット、GPTCacheへのインスピレーション](リンク)
読み続けて

The Real Bottlenecks in Autonomous Driving — And How AI Infrastructure Can Solve Them
Autonomous driving is data-bound. Vector databases unlock deep insights from massive AV data, slashing costs and accelerating edge-case discovery.

Zilliz Cloud Delivers Better Performance and Lower Costs with Arm Neoverse-based AWS Graviton
Zilliz Cloud adopts Arm-based AWS Graviton3 CPUs to cut costs, speed up AI vector search, and power billion-scale RAG and semantic search workloads.

Announcing VDBBench 1.0: Open-Source VectorDB Benchmarking with Your Real-World Production Workloads
VDBBench 1.0 offers an open-source benchmarking solution for vector databases, emphasizing real-world production conditions, including streaming data and concurrent workloads.
