Prompt Caching
プロンプトキャッシングがレイテンシとコストを削減することで、生成AIをどのように最適化するかを発見します。LLMにおける役割と、Ultralytics YOLO26を用いたリアルタイムコンピュータビジョンでの活用を学びましょう。
プロンプトキャッシングは、主に**生成AIで使用される高度な最適化戦略であり、推論時のコストを大幅に削減し、応答時間を改善します。大規模言語モデル(LLMs)の領域では、テキストの処理に入力をトークンと呼ばれる数値列に変換することが必要です。詳細なシステム指示、長い法的な文書、コードベースなど、入力データの大部分は多くの異なるユーザーのクエリ間で静的なままであることがよくあります。新しいリクエストごとにこれらの変化しないセクションを再処理する代わりに、プロンプトキャッシングは事前に計算された数学的状態(多くの場合、Key-Valueキャッシュと呼ばれる)をメモリに保存します。これにより、推論エンジン**は冗長な計算をスキップし、ユーザーのプロンプトの新しい動的な部分のみに計算能力を集中させることができます。
仕組みと利点#
プロンプトキャッシングの基本メカニズムは、データを順次処理する**Transformersのアーキテクチャに依存しています。システムは、プロンプトの反復するプレフィックスを特定することで、対応するアテンション機構**の状態を高速メモリから直接読み込むことができます。
- レイテンシの削減: キャッシングにより、推論レイテンシ、具体的にはTime to First Token(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プラットフォームは、データの注釈付け、YOLO26のような最先端モデルのトレーニング、およびさまざまなエッジAI**デバイス全体でのデプロイパフォーマンスのモニタリングを行うための包括的な環境を提供します。






