Retrieval Augmented Generation (RAG)
検索拡張生成(RAG)がリアルタイムデータによってLLMを最適化する方法を説明します。Ultralytics YOLO26を使用して、ビジュアルRAG向けのマルチモーダルパイプラインを構築する方法を紹介します。
検索拡張生成(RAG)は、トレーニングデータの外部にある信頼できるナレッジベースを参照することで、大規模言語モデル(LLM)の出力を最適化する、人工知能分野の高度な手法です。従来の生成モデルは、初期トレーニング中に学習した静的な情報だけに依存するため、古い回答や、ハルシネーションと呼ばれる自信に満ちた不正確な回答につながる可能性があります。RAGは、企業データベース、最新ニュース、技術マニュアルなどの外部ソースから関連性の高い最新情報を取得し、回答を生成する前にコンテキストとしてモデルに入力することで、この隔たりを埋めます。このプロセスにより、AIの出力は言語的に自然であるだけでなく、事実に基づき、具体的なデータに裏付けられたものになります。
RAGシステムの仕組み#
RAGシステムのアーキテクチャには通常、検索と生成という2つの主要なフェーズがあります。このワークフローにより、開発者は頻繁な再トレーニングにかかる高額なコストを負担することなく、基盤モデルを維持できます。
-
検索: ユーザーがクエリを送信すると、システムはまず、ベクトルデータベースと呼ばれる専用ストレージシステム全体を対象にセマンティック検索を実行します。このデータベースには、埋め込みと呼ばれる数値表現に変換されたデータが格納されているため、単にキーワードを照合するのではなく、概念的に類似した情報を検索できます。
-
生成: 検索中に見つかった関連ドキュメントやデータの断片を、ユーザーの元の質問と組み合わせます。この拡張されたプロンプトを生成モデルに送信します。モデルは提供されたコンテキストを使用して回答を統合し、取得した事実に基づく応答を生成します。仕組みについて詳しくは、IBMのRAGワークフローに関する包括的なガイドをご覧ください。
Visual 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."実世界での利用例#
RAGは、AIエージェントが独自データやリアルタイムデータに安全にアクセスできるようにすることで、さまざまな業界を変革しています。
- 企業ナレッジベース: 企業はRAGを使用して、HRポリシーや技術ドキュメントに関する従業員の質問に回答する社内チャットボットを構築しています。LLMを最新のドキュメントリポジトリに接続することで、システムが古いポリシー情報を提供することを防ぎます。企業での導入について詳しくは、Vertex AIにおけるRAGに関するGoogle Cloudの概要をご覧ください。
- 臨床意思決定支援: ヘルスケアにおけるAIでは、RAGシステムが患者の病歴や最新の医学研究論文を検索して、医師の診断を支援できます。これにより、助言に最新の臨床研究が確実に反映されます。
- スマート小売アシスタント: 小売業におけるAIを使用するアプリケーションは、RAGを活用して最新の在庫データベースを確認します。顧客がチャットボットに「このランニングシューズのサイズ10はありますか?」と尋ねると、モデルは回答前にリアルタイムの在庫数を取得し、在庫切れによる不満を防ぎます。
RAGとファインチューニングの比較#
RAGとファインチューニングは異なる問題を解決するため、両者を区別することが重要です。
- 検索拡張生成(RAG): 動的で頻繁に変化するデータ(株価やニュースなど)や、公開トレーニングセットに含まれていない非公開データへのアクセスに適しています。実行時に新しい情報を提供することに重点を置きます。
- ファインチューニング: モデルの動作、スタイル、用語を適応させるのに適しています。特定のデータセットでモデルの重みを更新します。ファインチューニングは、モデルに特定の言語パターン(医学用語など)を学習させるのに役立ちますが、リアルタイムの事実へのアクセスを与えるものではありません。意思決定のフレームワークについては、ファインチューニングとRAGを比較したOpenAIのガイドをご覧ください。
関連する概念#
- LangChain: retrieverとLLMを連結することで、RAGアプリケーションの作成を簡素化するために特別に設計された、人気のオープンソースフレームワークです。
- ナレッジグラフ: データを構造化して表現する方法の1つで、検索ソースとして使用できます。単純なベクトル類似度よりも、コンテキストに富んだ関係性を提供します。
- プロンプトエンジニアリング: モデルを誘導するための入力を作成する技術です。RAGは本質的に、取得したデータで「プロンプト」をプログラムによって拡張する、自動化されたプロンプトエンジニアリングの一形態です。
- Ultralytics Platform: RAGがテキスト生成側を担う一方で、このようなプラットフォームは、マルチモーダルRAGパイプラインに視覚データを提供するビジョンモデルのデータ前処理とトレーニングを管理するうえで不可欠です。









