Prompt Enrichment
プロンプトエンリッチメントが入力の拡張を自動化し、AIの精度を向上させる方法を説明します。Ultralytics YOLO26でこの手法を使用し、より高度なビジョンタスクを実行する方法を紹介します。
プロンプトエンリッチメントとは、人工知能 (AI)モデルに送信する前に、ユーザーの初期入力へ関連するコンテキスト、具体的な指示、補足データを自動的に追加するプロセスです。この技術は、人間と機械のインタラクションを最適化するインテリジェントなミドルウェア層として機能し、大規模言語モデル (LLMs)やコンピュータービジョンシステムが包括的なクエリを受け取れるようにします。ユーザーが省略しがちな過去の設定、位置情報、技術的な制約などの詳細を注入することで、プロンプトエンリッチメントは、詳細な指示の作成に関する専門知識をユーザーに求めることなく、モデル出力の精度とパーソナライズ性を大幅に向上させます。
エンリッチメントの仕組み#
プロンプトエンリッチメントの中核となる機能は、曖昧な人間の意図と、モデルが最適な性能を発揮するために必要とする正確でデータに富んだ入力とのギャップを埋めることです。クエリを受け取ると、システムはその内容を分析し、ナレッジグラフまたは構造化データベースから必要な背景情報を取得します。取得したデータはプログラムによって整形され、元のプロンプトに追加されます。
たとえば、自然言語処理 (NLP)のワークフローでは、「What is the status?(状況はどうなっていますか?)」のような単純な質問だけでは、コンテキストが不足しています。エンリッチメントシステムはアクティブなセッションを特定し、トランザクションデータベースから最新の注文番号を取得して、プロンプトを次のように書き換えます。「ユーザーは現在輸送中の注文 #998について尋ねています。この状況に基づいて配送状況を更新してください。」このプロセスでは、注入する意味的に関連性の高いコンテキストを迅速に検索するために、ベクトルデータベースがよく利用されます。
実世界での利用例#
プロンプトエンリッチメントは、さまざまな業界で堅牢な生成AIアプリケーションを展開し、テキストベースとビジョンベースのシステムの両方を強化するうえで不可欠です。
-
コンテキスト対応カスタマーサポート: 自動化されたヘルプデスクでは、チャットボットがエンリッチメントを使用して、顧客の購入履歴や技術環境にアクセスします。ユーザーにデバイスのバージョンを尋ねる代わりに、システムはアカウントメタデータからその情報を取得し、プロンプトに注入します。これにより、AIエージェントはデバイスに特化したトラブルシューティング手順をすぐに提供でき、カスタマーエクスペリエンスを大幅に向上させます。
-
動的コンピュータービジョン設定: セキュリティ運用では、ユーザーが単に「Night Mode」設定を切り替えるだけの場合があります。舞台裏では、プロンプトエンリッチメントがこの高レベルの意図を、YOLO-Worldのようなオープンボキャブラリー検出器向けの具体的なオブジェクトクラスに変換します。システムはプロンプトをエンリッチして、「懐中電灯」、「不審な動き」、「許可されていない人物」を具体的にスキャンするようにし、モデルが物体検出の対象を動的に調整できるようにします。
例: 動的クラスエンリッチメント#
以下のPythonの例では、ultralyticsパッケージを使用してプロンプトエンリッチメントの概念を示します。ここでは、ユーザーの高レベルの意図をプログラムによって、モデルがスキャンする具体的で説明的なクラスのリストにエンリッチしています。
from ultralytics import YOLO
def run_enriched_inference(user_mode):
"""Enriches a simple user mode into specific detection prompts."""
# Load a YOLO-World model capable of open-vocabulary detection
model = YOLO("yolov8s-world.pt")
# Enrichment Logic: Map simple user intent to detailed class prompts
context_map = {
"site_safety": ["hard hat", "safety vest", "gloves"],
"traffic": ["car", "bus", "traffic light", "pedestrian"],
}
# Inject the enriched context into the model
enriched_classes = context_map.get(user_mode, ["object"])
model.set_classes(enriched_classes)
# The model now looks for the specific enriched terms
print(f"Mode: {user_mode} -> Enriched Prompt: {enriched_classes}")
run_enriched_inference("site_safety")プロンプトエンリッチメントと関連概念の比較#
効果的な機械学習運用 (MLOps)を実装するには、プロンプトエンリッチメントと類似用語を区別することが役立ちます。
- 検索拡張生成 (RAG): RAGは、エンリッチメントの具体的な手法です。これは、モデルの応答を根拠付けるために、外部コーパスから関連ドキュメントを取得する仕組みを指します。エンリッチメントはRAGを含む、より広い概念ですが、複雑なセマンティック検索を必ずしも実行せずに、静的なセッションデータ、ユーザーメタデータ、システム時刻を注入することも含みます。
- プロンプトエンジニアリング: これは、効果的なプロンプトを設計する手動の技術です。エンリッチメントは、プロンプトエンジニアリングの原則をランタイムに動的に適用する自動化されたプロセスです。
- プロンプトチューニング: これは、学習中に「ソフトプロンプト」(学習可能なテンソル)を最適化するパラメータ効率の高いファインチューニング (PEFT)手法です。プロンプトエンリッチメントはリアルタイム推論中にのみ実行され、モデルの重みは変更しません。
- 少数ショット学習: これは、タスクをモデルに教えるために、プロンプト内に例を提示する手法です。エンリッチメントシステムは、タスクの種類に基づいてこれらの少数ショット例を動的に注入することが多く、両方の概念を効果的に組み合わせます。
現代のAIシステムにおける重要性#
Ultralytics YOLO26やGPT-4のようなモデルの性能が向上するにつれて、ボトルネックは入力の品質へ移ることがよくあります。プロンプトエンリッチメントは、モデルを提供された事実データに基づかせることで、LLMsのハルシネーションを軽減します。コンピュータービジョン (CV)では、ゼロショット学習による柔軟な検出システムを実現し、システムに入力するテキストプロンプトを変更するだけで、再トレーニングなしに新しい環境へ即座に適応できます。この柔軟性は、テキストと画像の両方を推論できる、スケーラブルなマルチモーダルAIソリューションの構築に不可欠です。これらのシステムの根拠付けに使用するデータセットを管理したいユーザーは、情報を効果的に整理してアノテーションするために、Ultralytics Platformのようなツールを利用することがよくあります。









