Prompt Caching
プロンプトキャッシングがレイテンシとコストを削減し、生成AIを最適化する方法を説明します。LLMやUltralytics YOLO26によるリアルタイムコンピュータービジョンにおける役割を紹介します。
プロンプトキャッシングは、主に**生成AIで使用される高度な最適化戦略であり、推論時のコストを大幅に削減し、応答時間を改善します。大規模言語モデル (LLMs)では、テキストを処理するために、入力をトークンと呼ばれる数値シーケンスに変換する必要があります。詳細なシステム指示、長大な法的文書、コードベースなど、入力データの大部分は、多くの異なるユーザークエリ間で変わらないことがよくあります。新しいリクエストごとにこうした不変のセクションを再処理する代わりに、プロンプトキャッシングでは、事前計算された数学的状態(Key-Valueキャッシュと呼ばれることが多い)をメモリに保存します。これにより、推論エンジン**は重複する計算を省略し、計算能力をユーザーのプロンプト内の新しく動的な部分だけに集中させることができます。
仕組みと利点#
プロンプトキャッシングの基本的な仕組みは、データを逐次処理する**Transformerのアーキテクチャに基づいています。プロンプト内で繰り返されるプレフィックスを特定することで、システムは対応するアテンションメカニズム**の状態を高速メモリから直接読み込めます。
- レイテンシの削減: キャッシングにより、推論レイテンシ、特に初回トークンまでの時間 (TTFT) が大幅に短縮されます。これにより、インタラクティブな**チャットボット**などのリアルタイムアプリケーションを、ユーザーは瞬時に応答するように感じられます。
- コスト効率: **クラウドコンピューティング**プロバイダーは、計算時間やトークン処理量に基づいて課金することが多いため、静的なコンテキストに対する負荷の高い処理を省略することで、大幅なコスト削減につながります。
- スループットの向上: **GPUリソースを解放することで、サーバーはより多くの同時リクエストを処理でき、モデルサービング**インフラ全体のスケーラビリティが向上します。
実世界での利用例#
プロンプトキャッシングは、大量のデータコンテキストに依存する業界を変革しています。
-
コーディングアシスタント: ソフトウェア開発では、**GitHub Copilotなどのツールが、ユーザーの開いているファイルやリポジトリ構造から膨大な量のコンテキストを利用します。コードベースの埋め込み**をキャッシュすることで、モデルはキーストロークごとにプロジェクト全体のファイル構造を再分析することなく、リアルタイムのコード補完候補を提供できます。
-
法務・医療分析: 専門家は、判例アーカイブや患者の病歴記録など、大規模な静的文書に対して**AIエージェントでクエリを実行することがよくあります。検索拡張生成 (RAG)を使用すると、システムは関連するテキストチャンクを取得します。プロンプトキャッシングにより、取得した文書の基盤となるコンテキストを追加の質問のたびに再計算する必要がなくなり、質問応答**ワークフローが効率化されます。
コンピュータビジョンにおける関連性#
従来はテキストに関連付けられていましたが、キャッシングの概念はマルチモーダルな**コンピュータビジョン (CV)においても重要です。YOLO-Worldなどのモデルでは、オープンボキャブラリーのテキストプロンプトを使用して物体を検出できます。ユーザーがクラスのリスト(例: 「person, backpack, car」)を定義すると、モデルはこれらのクラスのテキスト埋め込みを計算します。これらの埋め込みをキャッシュすることで、動画のフレームごとにテキストプロンプトを再エンコードする必要がなくなり、高速なリアルタイム推論**が可能になります。
関連用語との違い#
- プロンプトエンジニアリングとの比較: プロンプトエンジニアリングでは、モデルを誘導するための最適なテキスト入力を設計するという、人間による作業を行います。プロンプトキャッシングは、そのテキストに対する機械の処理結果を保存するバックエンドの計算最適化です。
- プロンプトチューニングとの比較: プロンプトチューニングは、特定の**モデルの重み(ソフトプロンプト)を更新してモデルをタスクに適応させる転移学習**手法です。キャッシングはモデルのパラメーターを変更せず、実行時のアクティベーション状態を記憶するだけです。
ビジョンにおけるテキスト埋め込みのキャッシング: コード例#
次の**Pythonスニペットは、ultralyticsパッケージを使用して、ビジョンのコンテキストでプロンプトを「キャッシュ」する概念を示しています。YOLO-World**モデルでクラスを一度設定すると、テキスト埋め込みが計算されて保存(永続化)されるため、テキストの説明を再処理することなく、モデルで複数の画像を効率的に予測できます。
from ultralytics import YOLOWorld
# Load a YOLO-World model capable of open-vocabulary detection
model = YOLOWorld("yolov8s-world.pt")
# "Cache" the prompt: Define classes once.
# The model computes and stores text embeddings for these specific terms.
model.set_classes(["helmet", "reflective vest", "gloves"])
# Run inference repeatedly. The text prompt is not re-computed for each call.
# This mimics the efficiency gains of prompt caching in LLMs.
results_1 = model.predict("construction_site_1.jpg")
results_2 = model.predict("construction_site_2.jpg")データセットの管理や最適化されたモデルのデプロイには、**Ultralytics Platformが、データへのアノテーション付け、YOLO26などの最先端モデルのトレーニング、さまざまなEdge AI**デバイスにおけるデプロイパフォーマンスの監視に対応した包括的な環境を提供します。









