Prompt Caching
プロンプトキャッシングがレイテンシとコストを削減することで、生成AIをどのように最適化するかを発見します。LLMにおける役割と、Ultralytics YOLO26を用いたリアルタイムコンピュータビジョンでの活用を学びましょう。
プロンプトキャッシングは、主に**生成AIで使用される高度な最適化戦略であり、推論時のコストを大幅に削減し、応答時間を改善します。大規模言語モデル (LLM)の分野では、テキストを処理するために、入力をトークンと呼ばれる数値シーケンスに変換する必要があります。多くの場合、詳細なシステム指示、長い法的な文書、ソースコードなど、入力データの大部分は、ユーザーからの多くのクエリ間で静的なままです。これらの変更されないセクションを新しいリクエストのたびに再処理する代わりに、プロンプトキャッシングは事前計算された数学的状態(Key-Valueキャッシュと呼ばれることが多い)をメモリに保存します。これにより、推論エンジン**は冗長な計算をスキップし、ユーザーのプロンプトの新しい動的な部分のみに計算リソースを集中させることができます。
Link to this section仕組みと利点#
プロンプトキャッシングの基本的な仕組みは、データを順次処理する**Transformerのアーキテクチャに依存しています。プロンプトの繰り返し部分を識別することで、システムは対応するアテンションメカニズム**の状態を高速メモリから直接ロードできます。
- 遅延の削減: キャッシングは、推論遅延、特にTime to First Token (TTFT)を劇的に低減します。これにより、インタラクティブな**チャットボット**のようなリアルタイムアプリケーションにおいて、ユーザーは即座に応答を感じることができます。
- コスト効率: **クラウドコンピューティング**プロバイダーは計算時間やトークン処理量に基づいて課金することが多いため、静的なコンテキストに対する負荷の高い処理をスキップすることで大幅なコスト削減につながります。
- スループットの向上: **GPUリソースを解放することで、サーバーはより多くの同時リクエストを処理できるようになり、モデルサービング**インフラストラクチャ全体の拡張性が向上します。
Link to this section実社会での応用#
プロンプトキャッシングは、膨大なデータコンテキストに依存する業界を変革しています。
-
コーディングアシスタント: ソフトウェア開発において、**GitHub Copilotのようなツールは、ユーザーが開いているファイルやリポジトリ構造から膨大な量のコンテキストを利用します。コードベースの埋め込み (embeddings)**をキャッシュすることで、モデルはキー入力のたびにプロジェクトの全ファイル構造を再解析することなく、リアルタイムでコード補完の提案を行うことができます。
-
法務および医療分析: 専門家は、判例アーカイブや患者の病歴記録など、膨大な静的文書に対して**AIエージェントにクエリを投げることがよくあります。検索拡張生成 (RAG)を使用することで、システムは関連するテキストチャンクを取得します。プロンプトキャッシングにより、これらの取得された文書の基盤となるコンテキストをフォローアップの質問のために再計算する必要がなくなり、質問応答 (Question Answering)**ワークフローが効率化されます。
Link to this sectionコンピュータビジョンにおける関連性#
従来はテキストに関連付けられていましたが、キャッシングの概念はマルチモーダルな**コンピュータビジョン (CV)においても不可欠です。YOLO-Worldのようなモデルでは、ユーザーはオープンボキャブラリーのテキストプロンプトを使用してオブジェクトを検出できます。ユーザーがクラスのリスト(例: "person, backpack, car")を定義すると、モデルはこれらのクラスのテキスト埋め込みを計算します。これらの埋め込みをキャッシュすることで、モデルはビデオフレームごとにテキストプロンプトを再エンコードする必要がなくなり、高速なリアルタイム推論**が可能になります。
Link to this section関連用語の区別#
- vs プロンプトエンジニアリング: プロンプトエンジニアリングは、モデルをガイドするための最適なテキスト入力を設計する人間の努力を指します。プロンプトキャッシングは、そのテキストに対する機械の処理を保存するバックエンドの計算最適化です。
- Vs. Prompt Tuning: Prompt tuning is a Transfer Learning technique that updates specific Model Weights (soft prompts) to adapt a model to a task. Caching does not change the model's parameters; it only memorizes activation states during runtime.
Link to this sectionコード例: ビジョンにおけるテキスト埋め込みのキャッシング#
以下の**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のような最先端モデルのトレーニング、およびさまざまなエッジAI**デバイス全体でのデプロイパフォーマンスの監視を行うための包括的な環境を提供します。






