Retrieval Augmented Generation (RAG)
検索拡張生成(RAG)がリアルタイムデータでLLMを最適化する仕組みを解説します。Ultralytics YOLO26を使用してビジュアルRAG用のマルチモーダルパイプラインを構築する方法を学びましょう。
検索拡張生成 (RAG) は、人工知能分野における高度な手法であり、大規模言語モデル (LLM) の出力を、その学習データ以外の信頼できる知識ベースを参照することで最適化します。従来の生成モデルは、初期学習中に習得した静的な情報のみに依存しているため、回答が古くなったり、ハルシネーション と呼ばれる自信満々な誤った情報が出力されたりすることがあります。RAG は、企業データベース、最新のニュース、技術マニュアルなどの外部ソースから関連性の高い最新情報を取得し、回答が生成される前にコンテキストとしてモデルに提供することで、このギャップを埋めます。このプロセスにより、AI の出力は言語的に一貫しているだけでなく、事実に基づいた正確で根拠のあるものとなります。
Link to this sectionRAG システムの仕組み#
RAG システムのアーキテクチャには、通常、検索と生成という 2 つの主要なフェーズが含まれます。このワークフローにより、開発者は頻繁な再学習というコストのかかる作業を行うことなく、基盤モデル を維持できます。
-
Retrieval: When a user submits a query, the system first performs a semantic search across a specialized storage system called a vector database. This database contains data that has been converted into numerical representations known as embeddings, allowing the system to find conceptually similar information rather than just matching keywords.
-
生成: 検索中に見つかった関連ドキュメントやデータスニペットは、ユーザーの元の質問と組み合わされます。この強化されたプロンプトが生成モデルに送信されます。モデルは提供されたコンテキストを使用して回答を統合し、回答が取得した事実に基づいていることを保証します。仕組みの詳細については、IBM が提供する RAG ワークフローの包括的なガイド を参照してください。
Link to this sectionVisual RAG: コンピュータビジョンの統合#
RAG は伝統的にテキストベースですが、マルチモーダル学習 の台頭により「Visual RAG」が登場しました。このシナリオでは、コンピュータビジョン モデルが検索メカニズムとして機能します。モデルは画像やビデオストリームを分析して、オブジェクト名、数、アクティビティなどの構造化されたテキストデータを抽出し、それを LLM に入力して視覚的なシーンに関する質問に回答します。
例えば、開発者は YOLO26 を使用して画像内のオブジェクトを検出し、そのオブジェクトのリストをテキストモデルに渡して記述的なレポートを生成することができます。
from ultralytics import YOLO
# Load the YOLO26 model for state-of-the-art detection
model = YOLO("yolo26n.pt")
# Perform inference to 'retrieve' visual facts from an image
results = model("https://ultralytics.com/images/bus.jpg")
# Extract class names to build a text context for an LLM
detected_classes = [model.names[int(c)] for c in results[0].boxes.cls]
context_string = f"The scene contains: {', '.join(detected_classes)}."
print(context_string)
# Output example: "The scene contains: bus, person, person, person."Link to this section実社会での応用#
RAG は、AI エージェント が専有データやリアルタイムデータに安全にアクセスできるようにすることで、業界を変革しています。
- エンタープライズナレッジベース: 企業は RAG を使用して、人事規定や技術ドキュメントに関する従業員の質問に回答する社内チャットボットを構築しています。LLM をライブドキュメントリポジトリに接続することで、システムは古いポリシー情報を提供するのを防ぎます。エンタープライズでの実装の詳細については、Google Cloud の Vertex AI における RAG の概要 を参照してください。
- 臨床意思決定支援: ヘルスケア分野の AI において、RAG システムは患者の履歴や最近の医学研究論文を取得して医師の診断を支援し、最新の臨床研究を考慮した助言を可能にします。
- スマートリテールアシスタント: 小売分野の AI を使用するアプリケーションは、RAG を活用してライブ在庫データベースを確認します。顧客がチャットボットに「このランニングシューズの 10 サイズはありますか?」と尋ねると、モデルは回答前にリアルタイムの在庫レベルを取得するため、在庫切れによる顧客の不満を防ぐことができます。
Link to this sectionRAG とファインチューニングの比較#
RAG と ファインチューニング は異なる問題を解決するため、両者を区別することが重要です。
- RAG (検索拡張生成): 動的で頻繁に変更されるデータ (株価やニュースなど) や、公開学習セットには含まれていないプライベートデータにアクセスするのに最適です。実行時に 新しい情報 を提供することに重点を置いています。
- ファインチューニング: モデルの動作、スタイル、または用語を適応させるのに最適です。特定のデータセットで モデルウェイト を更新する必要があります。ファインチューニングはモデルが特定の言語パターン (医療用語など) を学習するのに役立ちますが、リアルタイムの事実へのアクセス権を与えるものではありません。意思決定フレームワークについては、OpenAI のファインチューニングと RAG に関するガイド を参照してください。
Link to this section関連概念#
- LangChain: リトリーバーと LLM を連鎖させることで RAG アプリケーションの作成を簡素化するように特別に設計された、人気のオープンソースフレームワークです。
- ナレッジグラフ: 検索ソースとして使用できる構造化されたデータ表現方法であり、単純なベクトル類似性よりもコンテキスト的に豊かな関係性を提供します。
- プロンプトエンジニアリング: モデルをガイドするための入力を作成する技術。RAG は本質的にプロンプトエンジニアリングの自動化形式であり、「プロンプト」がプログラムによって取得されたデータで強化されます。
- Ultralytics Platform: RAG はテキスト生成側を処理しますが、このようなプラットフォームは、マルチモーダル RAG パイプラインに視覚データを提供するビジョンモデルの データ前処理 および学習を管理するために不可欠です。






