Prompt Enrichment
プロンプトエンリッチメントが入力拡張を自動化し、AIの精度を向上させる仕組みを学びます。より賢いビジョンタスクのために、この技術をUltralytics YOLO26で使用する方法を発見しましょう。
プロンプトエンリッチメント(拡張)とは、ユーザーの初期の入力に対して、関連するコンテキスト、具体的な指示、または補足データを追加し、Artificial Intelligence (AI)モデルに送信する前に自動的に補強するプロセスです。この技術は、人間とマシンの対話を最適化するインテリジェントなミドルウェアレイヤーとして機能し、Large Language Models (LLMs)やコンピュータビジョンシステムが包括的なクエリを受け取るようにします。ユーザーが省略しがちな詳細(過去の好み、位置データ、技術的な制約など)を注入することにより、プロンプトエンリッチメントは、ユーザーが詳細な指示を作成する専門家であることを要求することなく、モデルの出力のaccuracy(精度)とパーソナライゼーションを大幅に向上させます。
エンリッチメントのメカニズム#
プロンプトエンリッチメントの核心的な機能は、曖昧な人間の意図と、モデルが最適なパフォーマンスを発揮するために必要とする正確でデータが豊富な入力との間のギャップを埋めることです。クエリが受信されると、システムはそれを分析し、knowledge graphまたは構造化されたデータベースから必要な背景情報を取得します。この取得されたデータは、プログラムによってフォーマットされ、元のプロンプトに追加されます。
例えば、Natural Language Processing (NLP)のワークフローでは、「ステータスはどうなっていますか?」のような単純な質問では、コンテキストとして不十分です。エンリッチメントシステムはアクティブなセッションを特定し、transactional databaseから最新の注文番号を取得し、プロンプトを「ユーザーは注文番号#998について尋ねています。現在輸送中です。このステータスに基づいて出荷の更新を提供してください。」と書き換えます。このプロセスでは、注入するセマンティックに関連するコンテキストを素早く見つけるために、しばしばvector databasesが活用されます。
実社会での応用#
プロンプトエンリッチメントは、さまざまな業界に堅牢なgenerative AIアプリケーションを導入するために不可欠であり、テキストベースとビジョンベースの両方のシステムを強化します。
-
コンテキストアウェアなカスタマーサポート: 自動ヘルプデスクでは、chatbotがエンリッチメントを使用して、顧客の購入履歴と技術的な環境にアクセスします。ユーザーにデバイスのバージョンを尋ねる代わりに、システムはアカウントのメタデータからこれを取得し、プロンプトに注入します。これにより、AI agentは即座にデバイス固有のトラブルシューティング手順を提供できるようになり、customer experienceが大幅に向上します。
-
動的なコンピュータビジョン設定: セキュリティ運用において、ユーザーは単に「ナイトモード」の設定を切り替えるだけの場合があります。バックグラウンドでは、プロンプトエンリッチメントがこの高レベルの意図を、YOLO-Worldのようなオープンボキャブラリー検出器の特定のオブジェクトクラスに変換します。システムはプロンプトを充実させて、「懐中電灯」、「不審な動き」、または「不法侵入者」を具体的にスキャンするようにし、モデルがobject detectionの焦点を動的に適応させることができるようにします。
例:動的クラスエンリッチメント#
次の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")プロンプトエンリッチメントと関連概念の比較#
効果的なMachine Learning Operations (MLOps)を実装するために、プロンプトエンリッチメントを類似の用語と区別すると便利です。
- Retrieval-Augmented Generation (RAG): RAGはエンリッチメントの特定の一手法です。これは、モデルの応答の根拠とするために外部のコーパスから関連ドキュメントをフェッチするメカニズムを厳密に指します。エンリッチメントは、RAGを含みつつ、必ずしも複雑なsemantic searchを実行することなく、静的なセッションデータ、ユーザーメタデータ、またはシステム時間を注入することもカバーするより広い概念です。
- Prompt Engineering: これは、効果的なプロンプトを設計する手動の作業です。エンリッチメントは、実行時に動的にプロンプトエンジニアリングの原則を適用する自動化されたプロセスです。
- Prompt Tuning: これは、トレーニング中に「ソフトプロンプト」(学習可能なテンソル)が最適化されるparameter-efficient fine-tuning (PEFT)テクニックです。プロンプトエンリッチメントは完全にreal-time inference中に発生し、model weightsを変更しません。
- Few-Shot Learning: これには、モデルにタスクを教えるためにプロンプト内に例を提供することが含まれます。エンリッチメントシステムは、タスクのタイプに基づいてこれらのフューショットの例を動的に注入することが多く、両方の概念を効果的に組み合わせます。
現代のAIシステムにおける関連性#
Ultralytics YOLO26やGPT-4のようなモデルの性能が向上するにつれて、ボトルネックは入力の品質に移ることがよくあります。プロンプトエンリッチメントは、モデルに事実に基づく提供データを根拠づけることで、hallucinations in LLMsを軽減します。computer vision (CV)においては、システムに供給されるテキストプロンプトを変更するだけで、再トレーニングなしで新しい環境に即座に適応できる柔軟なzero-shot learning検出システムを可能にします。この柔軟性は、テキストと画像の両方を推論できる、スケーラブルなmulti-modal AIソリューションを構築するために不可欠です。これらのシステムを根拠づけるために使用されるデータセットを管理したいユーザーは、情報を効果的に整理および注釈付けするために、Ultralytics Platformのようなツールを利用することがよくあります。






