Multimodal RAG
マルチモーダルRAGでテキスト、画像、動画を処理する方法を確認します。Ultralytics YOLO26がAI検索パイプラインを強化し、より正確でコンテキストを考慮した応答を実現する方法を学びます。
マルチモーダル検索拡張生成(Multimodal RAG)は、テキスト、画像、動画、音声など多様なデータ形式を処理・推論できるよう、従来のRAGシステムを拡張した高度な人工知能(AI)フレームワークです。標準的な検索拡張生成(RAG)が関連するテキスト文書を検索して大規模言語モデル(LLM)の精度を向上させるのに対し、マルチモーダルRAGでは、複数メディアを含むナレッジベースからコンテキストを検索することで、モデルが「見て」「聞く」ことを可能にします。このアプローチは、具体的な視覚的または聴覚的証拠に基づいてモデルの生成内容を導き、LLMのハルシネーションを大幅に削減するとともに、プライベートデータセットに対する画像を用いた質問応答などの複雑なタスクを可能にします。マルチモーダル学習を活用することで、これらのシステムはユーザーのクエリ(例:テキスト)と検索されたアセット(例:図や監視カメラのフレーム)から情報を統合し、包括的でコンテキストを考慮した応答を生成できます。
マルチモーダルRAGの仕組み#
マルチモーダルRAGシステムのアーキテクチャは、通常、標準的な「検索してから生成する」パイプラインに似ていますが、テキスト以外のデータに対応するよう調整されています。このプロセスは、ベクトルデータベースと共有セマンティック空間に大きく依存します。
-
インデックス作成: PDF、動画、スライド資料など、さまざまなソースのデータを処理します。特徴抽出モデルは、これらの異なるモダリティを、埋め込みと呼ばれる高次元の数値ベクトルに変換します。たとえば、OpenAIのCLIPのようなモデルは、画像とテキストの埋め込みを整合させ、犬の画像と「犬」という単語が数学的に近くなるようにします。
-
検索: ユーザーが「この回路基板の不具合を見せてください」のような質問をすると、システムはセマンティック検索をベクトルデータベース全体に対して実行し、クエリの意図に一致する最も関連性の高い画像や動画クリップを見つけます。
-
生成: 検索された視覚的コンテキストを視覚言語モデル(VLM)に入力します。VLMは、ユーザーのテキストプロンプトと検索された画像特徴の両方を処理して最終回答を生成し、データと効果的に「対話」します。
実世界での利用例#
マルチモーダルRAGは、AIエージェントが視覚データを通じて物理世界とインタラクションできるようにすることで、さまざまな業界を変革しています。
- 産業メンテナンスと製造: 製造業におけるAIでは、技術者が故障した機械部品の写真を使ってシステムに問い合わせることができます。マルチモーダルRAGシステムは、過去の類似するメンテナンス記録、技術図面、修理手順の動画チュートリアルを検索し、修理プロセスを案内します。これにより、ダウンタイムを短縮し、専門知識をより多くの人が活用できるようになります。
- 小売・Eコマースにおける商品探索: 小売業におけるAIを利用したアプリケーションでは、顧客が気に入ったコーディネートの画像をアップロードできます。システムは現在の在庫から見た目が類似する商品を検索し、スタイリングのアドバイスや商品の比較を生成することで、高度にパーソナライズされたショッピング体験を実現します。
関連用語の区別#
マルチモーダルRAGの具体的な位置付けを理解するには、関連する概念と区別すると役立ちます。
- マルチモーダルRAGとマルチモーダルモデルの違い: マルチモーダルモデル(GPT-4oやGeminiなど)が応答を生成します。マルチモーダルRAGは、そのモデルが学習していない外部のプライベートデータ(画像、ドキュメント)をモデルに提供するアーキテクチャです。モデルがエンジンであり、RAGは燃料配管に相当します。
- マルチモーダルRAGとファインチューニングの違い: ファインチューニングは、新しいタスクやスタイルを学習するためにモデルの重みを恒久的に更新します。RAGは推論時に一時的な知識を提供します。RAGは、頻繁な再トレーニングが現実的でない動的なデータ(例:毎日の在庫)に適しています。
Ultralyticsを使用した実装#
開発者は、Ultralytics YOLOを使用して、マルチモーダルRAGパイプラインの検索コンポーネントを構築できます。YOLOは画像内のオブジェクトを検出・分類することで、テキストベースの検索用にインデックス化できる構造化メタデータを提供したり、VLM向けに関連する画像領域をクロップしたりできます。Ultralytics Platformを使用すると、特定のドメインで重要となるカスタムオブジェクトを認識する、こうした専門的なビジョンモデルのトレーニングを簡素化できます。
次の例では、YOLO26を使用して画像から視覚的コンテキスト(検出されたオブジェクト)を抽出します。抽出した情報は、RAGワークフローの一部としてLLMに渡すことができます。
from ultralytics import YOLO
# Load the YOLO26 model (smaller, faster, and more accurate)
model = YOLO("yolo26n.pt")
# Run inference on an image to 'retrieve' visual content
results = model("https://ultralytics.com/images/bus.jpg")
# Extract detected class names to form a text context
detected_objects = results[0].boxes.cls.tolist()
object_names = [model.names[int(cls)] for cls in detected_objects]
print(f"Retrieved Context: Image contains {', '.join(object_names)}")
# Output: Retrieved Context: Image contains bus, person, person, person詳細情報とリソース#
- LangChainドキュメント: マルチモーダル対応を含む検索パイプラインの構築に関する包括的なガイドです。
- LlamaIndexマルチモーダルガイド: LLM向けの複雑なデータ形式のインデックス作成と検索に関する詳細なドキュメントです。
- Google Cloud Vertex AI Search: スケーラブルなRAGアプリケーションを構築するためのエンタープライズ向けベクトル検索機能です。
- Ultralytics Solutions: コンピュータービジョンがさまざまな業界でより広範なAIシステムとどのように統合されるかをご覧ください。









