Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Retrieval Augmented Generation (RAG)

RAGは、外部の知識ベースから関連する文章を検索し、LLMのプロンプトに追加します。これにより、最新かつ非公開で、出典を示せる情報に基づいた回答を生成できます。

検索拡張生成(RAG)は、大規模言語モデル(LLM)が質問に回答する際、外部の知識ソースからクエリ時に検索した文章を、質問とともにプロンプトへ挿入して利用する手法です。LLMの学習データには期限があり、企業の内部ドキュメントも含まれていないため、検索を使わないと事実を知らないか、もっともらしい内容を作り出してしまいます。これはハルシネーションと呼ばれる問題です。この用語は、Facebook AI ResearchのPatrick Lewis氏らによる2020年の論文Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasksに由来します。同論文では、事前学習済みBART生成モデルと、Wikipediaの密ベクトルインデックスを対象とするニューラルリトリーバーを組み合わせ、オープンドメイン質問応答の3つのタスクで最高水準の性能を達成しました。現在では、検索してから生成するあらゆるシステムをRAGと呼びます。

RAGパイプラインの仕組み#

RAGは2段階で動作します。インデックス作成は事前に行います。たとえばセマンティックチャンク化でドキュメントを文章に分割し、各文章を埋め込みに変換して、ベクトルをベクトルデータベースに保存します。クエリ時には、同じモデルで質問を埋め込みに変換し、ベクトル検索で最も近い文章を取得して、指示、文章、質問からプロンプトを作成します。次にLLMが、提供されたテキストに根拠を置いた回答を作成し、各主張の根拠となる文章を引用できます。

本番システムでは、この中核処理にいくつかのステップを加えます。ハイブリッド検索はベクトル類似度とキーワード照合を組み合わせ、型番などの完全一致が必要な語句を見落とさないようにします。リランカーは、より高精度なモデルを使って上位候補の順序を入れ替えます。また、コンテキスト検索では、インデックス作成前にLLMが各チャンクへ短い注記を付け、ドキュメント内での位置付けを示します。LangChainやLlamaIndexなどのフレームワークは、これらのコンポーネントをまとめて提供します。

検索と拡張の処理は、Sentence Transformersライブラリを使って、数行のPythonで実装できます。

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")

# Knowledge base: passages the LLM never saw during training
passages = [
    "Badge access to Building C requires a safety briefing completed within the last 12 months.",
    "The cafeteria in Building A serves breakfast from 7:00 to 9:30 on weekdays.",
    "Forklift operators must renew their certification every three years.",
]
passage_embeddings = model.encode(passages)

# Retrieve: embed the question and keep the most similar passage
question = "How often do I need to redo forklift training?"
scores = model.similarity(model.encode(question), passage_embeddings)[0]
context = passages[int(scores.argmax())]

# Augment: put the retrieved passage in the prompt the LLM will answer from
prompt = f"Answer using only this context.\nContext: {context}\nQuestion: {question}"
print(prompt)

このコードは、質問と意味が一致するフォークリフト認定の文章を含むプロンプトを出力します。質問はトレーニングのやり直しについて尋ねており、文章では認定の更新について述べています。どのLLMでもこのプロンプトから回答でき、モデルを再学習しなくても文章を毎日更新できます。

RAG、ファインチューニング、長いコンテキストの比較#

  • ファインチューニング:新しい例を使ってモデルの重みを更新します。動作、スタイル、出力形式の変更には適していますが、頻繁に変わる事実を追加するには時間がかかり、引用できる情報源も残りません。そのため、多くのシステムでは形式の調整にファインチューニングを使い、知識の取得にRAGを使います。
  • 長いコンテキストウィンドウ: 100万トークンを受け付けるモデルは、大量のドキュメントを直接読み込めますが、クエリごとにすべてのトークンのコストがかかり、入力が長くなるほど精度が低下します。この現象はコンテキスト劣化と呼ばれます。RAGは関連するパッセージだけを送信します。

基本的な手法を拡張したバリエーションもあります。GraphRAGはナレッジグラフから検索し、エージェント型RAGではエージェントが検索のタイミングと場所を判断します。マルチモーダルRAGはテキストだけでなく、画像、動画、音声も検索します。

RAGの用途#

  • 企業向けチャットボット: 社内アシスタントがポリシー、Wiki、過去のサポートチケットに基づいて回答し、回答の根拠となった段落へのリンクを提示します。
  • カスタマーサポート: アシスタントは返信前に、顧客の正確な製品モデルに対応するマニュアルと、その顧客の注文履歴を検索します。
  • 医療: 臨床アシスタントは最新のガイドラインや医薬品情報を検索するため、モデルの記憶ではなく、確認可能な情報源に基づいて回答できます。

RAGは動画に関する質問にも回答できます。LLMは質問のたびに何時間もの映像を確認できないため、RAGとコンピュータービジョンを組み合わせることで、まず映像を検索可能な記録に変換します。トラッキングモードのUltralytics YOLO26は、各フレーム内のオブジェクトについてクラス、ボックス、永続的なトラックIDを報告し、パイプラインはこれらを行として保存します。そのため、「今朝、ドック3に何台のトラックが入ってきましたか?」のような質問では、動画ではなく該当する行を検索できます。

RAGの回答が誤る理由#

RAGは2つの段階で失敗します。検索の失敗は、チャンク化で回答を含む文章が分割された、埋め込みモデルが同義語を見逃した、または上位k件のカットオフよりわずかに下位にランクされたなどの理由で、その文章がプロンプトに届かないことを指します。これはテスト質問セットに対するk件以内の再現率で測定します。生成の失敗は、適切な文章が届いているにもかかわらず、モデルがそれを無視したり、誤読したり、矛盾する内容を述べたりすることです。Ragasなどの評価ライブラリは、両方を評価します。リトリーバーについてはコンテキスト再現率、生成モデルについては忠実度を測定します。忠実度は、回答内の主張のうち、検索したコンテキストで裏付けられるものの割合として定義されます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう