用語集

プロンプト・キャッシング

プロンプト・キャッシングでAIの効率を高めよう!この強力なテクニックを使って、レイテンシーを減らし、コストを削減し、AIアプリを拡張する方法を学びましょう。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

プロンプトキャッシングは、主に大規模言語モデル(LLM)やその他の生成人工知能(AI)モデルで使用される最適化手法である。これは、特定の入力プロンプト(またはその一部)を処理した結果を保存しておくことで、同じプロンプトやよく似たプロンプトを再び受け取った場合に、ゼロから再計算する代わりに、保存された結果を素早く取り出して再利用できるようにするものである。これにより、推論の待ち時間が大幅に短縮され、GPT-4のような強力なモデルの実行に伴う計算コストが削減され、AIアプリケーションの全体的な効率とスケーラビリティが向上します。

プロンプト・キャッシングの仕組み

LLMがプロンプトを処理するとき、トークン化やニューラルネットワーク層内での複雑な計算など、いくつかの計算ステップを経る。プロンプトのキャッシュは通常、与えられたプロンプトまたはプロンプトの接頭辞に関連する中間的な計算状態(Transformerアーキテクチャのアテンション層のキーと値のペアのようなもので、しばしばKVキャッシュと呼ばれる)を格納する。新しいプロンプトが到着すると、システムはその接頭辞が、以前に処理されキャッ シュされたプロンプトと一致するかどうかをチェックする。一致した場合、キャッシュされた中間状態が取り出され、モデルは最初の計算ステップをバイパスして、保存された状態から応答の生成を開始することができる。これは、会話型AIや、プロンプトが共通の開始を共有するシナリオで特に効果的である。システムは多くの場合、これらのキャッシュを効率的に管理するために、Redisや Memcachedのようなキー・バリュー・ストアを使用する。

プロンプト・キャッシングの利点

プロンプト・キャッシングの実装にはいくつかの利点がある:

  • 待ち時間の短縮:繰り返しや類似のクエリに対する応答時間を大幅に短縮し、チャットボットのような対話型アプリケーションでのユーザー体験を向上させます。
  • 計算コストの削減: GPUのような高価なハードウェアへの負荷を減らし、特にクラウドコンピューティングリソースや 商用LLMへのAPIコールを使用する場合のコスト削減につながります。
  • スループットの向上:リソースがより速く解放されるため、システムはより多くのリクエストを同時に処理できるようになる。
  • 一貫性:同じプロンプトに対して同じレスポンスを保証する。

実世界での応用

プロンプト・キャッシングは、さまざまなAI主導のシステムで重宝されている:

  1. 会話型AIとバーチャルアシスタント: カスタマーサービス・バーチャル・アシスタントのようなシステムでは、多くの会話が似たような挨拶や共通の質問(「営業時間を教えてください」「パスワードのリセット方法を教えてください」など)から始まる。このような一般的な入力の初期処理をキャッシュすることで、システムははるかに速く応答できるようになる。例えば、"Hello, I need help with... "を処理した後の処理状態をキャッシュし、複数のユーザーが同様のリクエストを開始した場合に即座に再利用することができる。カスタマーサービスにおけるAIを探る
  2. コンテンツ生成プラットフォーム:ライティングアシスタントやコードジェネレータのような、テキスト生成に使用されるツールは、多くの場合、繰り返し指示やコンテキストの接頭辞を持つプロンプトを受け取ります(例えば、「次のテキストをフランス語に翻訳してください:」、「...のPython コードを書いてください」)。これらの接頭辞に対応する状態をキャッシュすることで、生成プロセスが高速化され、特に対話的な環境や大量の環境で役立ちます。生成AIの使用例について学ぶ

プロンプト・キャッシングと関連概念

プロンプト・キャッシングを他の関連技術と区別することは有益である:

  • プロンプトエンジニアリング:AIモデルから望ましい反応を引き出すために、効果的なプロンプトを設計することに重点を置く。キャッシングは、プロンプトの設計の良し悪しに関わらず、プロンプトの実行を最適化します。
  • プロンプト・エンリッチメント:プロンプトがモデルに送信される前に、ユーザーのプロンプトにコンテキストや明確な情報を追加すること。キャッシュは、モデルが(潜在的にエンリッチされた)プロンプトを処理している間、または処理後に行われます。
  • プロンプト・チューニングそして ローラ:これらはパラメータ効率の良い微調整(PEFT)手法であり、追加パラメータの小さなセットを学習することでモデルの動作を適応させ、特定のタスク用にモデルを効果的にカスタマイズする。キャッシングは推論時間の最適化であり、モデル自体を変更することはありません。
  • 検索補強型ジェネレーション(RAG):外部の知識ベースから関連情報を取得し、プロンプトのコンテキストに追加することで、プロンプトを拡張する。RAGは入力を変更するが、キャッシングは組み合わされたプロンプト(元のクエリ+検索されたデータ)の処理にも適用できる。
  • 標準出力キャッシュ:従来のWebキャッシュはリクエストの最終出力を保存する。プロンプトのキャッシュはしばしばモデルの処理パイプライン内の中間的な計算状態を保存し、特に共通の接頭辞を持ちながら異なる語尾を持つプロンプトに対して、より柔軟な再利用を可能にします。

プロンプトのキャッシュは主にLLMと関連しているが、計算をキャッシュするという基本原理は、テキストプロンプトが他のモダリティと相互作用する複雑なマルチモーダルモデルに適用できる可能性がある。 Ultralytics YOLO YOLO モデルの比較を参照)。Ultralytics HUBのようなプラットフォームは、AIモデルのデプロイと管理を効率化します。キャッシングのような最適化は、本番環境でのパフォーマンスにとって非常に重要です(デプロイのベストプラクティスについて学ぶ)。

すべて読む