Retrieval Augmented Generation (RAG)
検索拡張生成(RAG)がリアルタイムデータでLLMを最適化する仕組みを解説します。Ultralytics YOLO26を使用してビジュアルRAG用のマルチモーダルパイプラインを構築する方法を学びましょう。
Retrieval Augmented Generation (RAG) は、トレーニングデータの外部にある信頼できる知識ベースを参照することで、Large Language Model (LLM) の出力を最適化する人工知能分野の高度な技術です。従来の生成モデルは初期トレーニング中に学習した静的な情報のみに依存しているため、情報の古い回答や、hallucinations と呼ばれる確信を持った不正確な情報につながることがあります。RAG は、企業データベース、最新ニュース、技術マニュアルなどの外部ソースから関連する最新情報を取得し、応答が生成される前にコンテキストとしてモデルに供給することで、このギャップを埋めます。このプロセスにより、AI の出力が言語的に一貫しているだけでなく、事実に基づき、特定のデータに裏付けられていることが保証されます。
RAG システムの仕組み#
RAG システムのアーキテクチャには、通常、取得(retrieval)と生成(generation)という2つの主要なフェーズが含まれます。このワークフローにより、開発者は頻繁な再トレーニングという高コストな必要なしに、foundation model を維持することができます。
-
取得(Retrieval): ユーザーがクエリを送信すると、システムはまず、vector database と呼ばれる特殊なストレージシステム全体で semantic search を実行します。このデータベースには、embeddings と呼ばれる数値表現に変換されたデータが含まれており、単なるキーワード一致ではなく、概念的に類似した情報をシステムが見つけることを可能にします。
-
生成(Generation): 取得時に見つかった関連ドキュメントやデータスニペットが、ユーザーの元の質問と組み合わされます。この強化されたプロンプトが生成モデルに送信されます。モデルはこの提供されたコンテキストを使用して回答を合成し、応答が取得された事実に依存していることを確実にします。メカニズムの詳細については、IBM provides a comprehensive guide on RAG workflows を参照してください。
Visual RAG: コンピュータビジョンの統合#
RAG は従来テキストベースですが、multi-modal learning の台頭により「ビジュアル RAG」が導入されました。このシナリオでは、computer vision モデルが取得メカニズムとして機能します。これらは画像やビデオストリームを分析して、オブジェクト名、数、アクティビティなどの構造化されたテキストデータを抽出し、それが 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."実社会での応用#
AI agents が独自のデータやリアルタイムデータに安全にアクセスできるようにすることで、RAG は業界を変革しています。
- エンタープライズ知識ベース: 企業は RAG を使用して、人事方針や技術文書に関する従業員の質問に答える内部チャットボットを構築します。LLM をライブドキュメントリポジトリに接続することで、システムは古い方針情報の提供を回避します。エンタープライズ実装の詳細については、Google Cloud's overview of RAG in Vertex AI を参照してください。
- 臨床意思決定支援: AI in healthcare において、RAG システムは患者の履歴や最近の医学研究論文を取得して医師の診断を支援し、アドバイスが最新の臨床研究を確実に考慮するようにします。
- AI in retail を使用するアプリケーションは、RAG を活用してライブ在庫データベースを確認します。顧客がチャットボットに「このランニングシューズの 10 サイズはありますか?」と尋ねると、モデルは回答する前にリアルタイムの在庫レベルを取得し、在庫切れアイテムに関するフラストレーションを防ぎます。
RAG とファインチューニングの比較#
RAG と fine-tuning は異なる問題を解決するため、これらを区別することが極めて重要です。
- RAG (検索拡張生成): 動的で頻繁に変更されるデータ (株価やニュースなど) や、公開学習セットには含まれていないプライベートデータにアクセスするのに最適です。実行時に 新しい情報 を提供することに重点を置いています。
- ファインチューニング(Fine-Tuning): モデルの動作、スタイル、または専門用語を適応させるのに最適です。特定のデータセットで model weights を更新することが含まれます。ファインチューニングはモデルが特定の言語パターン(医療用語など)を学習するのに役立ちますが、リアルタイムの事実へのアクセスは付与しません。意思決定フレームワークについては、OpenAI's guide on fine-tuning vs. RAG を参照してください。
関連概念#
- LangChain: リトリーバーと LLM を連鎖させることで RAG アプリケーションの作成を簡素化するように特別に設計された、人気のあるオープンソースフレームワーク。
- Knowledge Graph: 単なるベクトル類似度よりもコンテキスト的に豊かな関係性を提供し、取得ソースとして使用できるデータの構造化された表現方法。
- Prompt Engineering: モデルを誘導するための入力を作成する技術。RAG は本質的に、取得されたデータで「プロンプト」がプログラムによって強化されるプロンプトエンジニアリングの自動化された形式です。
- Ultralytics Platform: RAG がテキスト生成側を処理する一方で、このようなプラットフォームは、マルチモーダル RAG パイプラインに視覚データを供給するビジョンモデルの data preprocessing とトレーニングを管理するために不可欠です。






