プロンプトキャッシング
プロンプトキャッシングは、大規模言語モデル(LLM)やその他の生成AIサービスと対話するアプリケーションで使用される技術です。これは、入力プロンプトとその対応する出力(または中間結果)を、高速でアクセス可能なメモリストアに保存することを含みます。同じ、または非常に類似したプロンプトが再度送信された場合、システムは計算コストの高い推論プロセスをLLMで再実行する代わりに、キャッシュされた応答を取得します。
本番環境では、特にテスト、反復的な開発、または標準化されたワークフローを使用している際に、多くのユーザーが反復的なクエリを送信します。キャッシングがない場合、同一のリクエストごとにLLMはニューラルネットワーク全体をフルフォワードパス実行する必要があり、これはかなりの計算リソース(GPU時間)を消費し、直接的なAPIコストを発生させます。プロンプトキャッシングは、これらの非効率性に直接対処します。
リクエストが到着すると、システムはまずプロンプトから派生したハッシュまたは類似性メトリックを使用してキャッシュをチェックします。一致が見つかった場合、保存された結果が即座に返されます。一致がない場合は、プロンプトがLLMに送信されて処理されます。LLMが応答を返した後、システムは結果をユーザーに返す前に、プロンプトと生成された出力を両方ともキャッシュに保存します。キャッシュの無効化戦略は、古いデータが提供されないようにするために極めて重要です。
プロンプトキャッシングは、いくつかのシナリオで非常に効果的です。
プロンプトキャッシングを実装する利点は多岐にわたります。
強力である一方で、プロンプトキャッシングは複雑さを導入します。
関連する概念には、ベクトルデータベース(キャッシングにおける意味的類似性検索に使用)、モデル量子化(モデルサイズ/コストを削減する技術)、およびセッション管理(複数のプロンプトにわたるユーザーコンテキストの追跡)が含まれます。