大規模言語モデルのための検索拡張生成(RAG)技術の現状
(discuss.pytorch.kr)PyTorchKR
-
LLMの人気とともに、RAGへの関心も高まっています。PyTorch韓国ユーザー会では、先週 12/18〜24 の主要ML論文で紹介されたRAG技術に関するサーベイ論文を整理してみました。
-
内容がやや長いため、2本の記事に分けて掲載しており、第1部ではRAG技術のパラダイムを、第2部では主要な構成要素と評価、今後の研究課題について整理しました。
以下は目次を中心に主要な内容だけを抜粋したものです
検索拡張生成(RAG)技術の紹介
大規模言語モデル(LLM)は優れた能力を示しますが、実際に活用するには、ハルシネーションや知識更新の遅さ、回答の透明性不足といった問題を克服する必要があります。RAG(Retrieval-Augmented Generation)は、こうした問題を解決するために提案された技術です。
RAGは、大規模言語モデル(LLM)が質問への回答やテキストを生成する前に、広範な文書集合から関連情報を検索し、それを利用して応答を生成する方法です。これは、LLMの既存の問題である知識の陳腐化、特定領域に関する知識不足、そして応答の透明性不足を解決することに重点を置いています。
このようなRAGは、回答の正確性を大きく向上させ、とくに知識集約型タスクにおいてモデルのハルシネーションを減らすのに役立ちます。ユーザーは出典を引用して回答の正確性を検証でき、これはモデル出力への信頼を高めます。また、知識の更新や特定分野の知識導入も容易です。
RAG以外にも、ファインチューニング(fine-tuning)を用いて大規模言語モデルが特定の知識に集中するようにできます。しかし、このようなファインチューニングはリアルタイムで更新される情報を反映するのに時間がかかり、モデルを再学習させるための追加リソースも消費します。これに対して、RAGはLLMに特定のクエリに関する情報を検索できる「参考書」を提供するのに似ています。
RAGの3つの主要パラダイム - 概要
RAG技術の研究パラダイムは、時間とともに絶えず進化しています。主要なパラダイムは、基本RAG、高度RAG、モジュール型RAGの3つで、初期の基本RAGはコスト効率が高く、LLM単独より高性能でしたが、多くの欠点がありました。高度RAGとモジュール型RAGの登場は、基本RAGの特定の欠陥を解決するためのものでした。
RAGの3つの主要パラダイム - 基本RAG(Naive RAG)
基本RAGは、RAG研究の初期手法を指し、従来のインデキシング、検索、生成のプロセスを含みます。基本RAGは主にシンプルな検索・生成方式に焦点を当てており、RAGの基本概念と原理を説明するうえで重要です。
しかし、検索精度の低さ、応答生成の品質の低さ、拡張プロセスの難しさなどにより、不必要な反復、不正確な情報、不適切な文脈の統合などが発生する可能性があります。そのため、複雑または困難なシナリオに基本RAGを使うのは不適切な場合があります。
RAGの3つの主要パラダイム - 高度RAG(Advanced RAG)
高度RAGは、基本RAGの不足点を改善するために開発されたパラダイムです。これは主に、検索と生成の質を向上させるための事前検索および事後検索の手法を含みます。高度RAGは大きく、検索前プロセス(Pre-Retrieval Process)、検索後プロセス(Post-Retrieval Process)、RAGパイプライン最適化(RAG Pipeline Optimization)の3段階に分けて考えることができます。
RAGの3つの主要パラダイム - モジュール型RAG(Modular RAG)
モジュール型RAGは、高度RAGをさらに発展させた形態で、既存のRAGフレームワークから一歩進み、さまざまなモジュールと機能を統合することで、より大きな多様性と柔軟性を提供します。このアプローチには、RAGシステムを多様なシナリオや要件に合わせて調整できるようにする複数の新しいモジュールとパターンが含まれています。
RAG技術の主要構成要素:検索器(Retriever)
検索器(Retriever)は、RAGという略称の先頭文字であるRを表すほど、システムにおいて重要な情報探索の役割を担います。検索器は、大規模データセットから関連情報を見つけ出し、テキスト生成のためのデータを準備する役割を果たします。このような検索器は、LLMの一般的な知識と、現在の文脈に即した正確な情報の必要性との間のギャップを埋めるために使われます。これは、リアルタイムデータ、特定分野の専門知識、またはファクトチェックが必要なシナリオで特に重要です。
RAG技術の主要構成要素:生成器(Generator)
前述の検索器(Retriever)の役割がユーザー入力から候補文書を抽出することだとすれば、生成器(Generator)の役割は、検索結果を活用してユーザーに提供する回答を生成することです。検索された情報を効果的に活用して正確で関連性の高い回答を生成するために、情報を圧縮し再ランキングする後処理と、入力データに適応する最適化プロセスを実行します。
RAG技術の主要構成要素:拡張手法(Augmentation Methods)
この章では、RAGにおける拡張手法を次の3つの側面から見ていきます。
- 拡張の段階(the stage of augmentation)
- データソースの拡張(augmentation data sources)
- 拡張のプロセス(the process of augmentation)
RAG評価(RAG Evaluation)
RAG評価(RAG Evaluation)は、RAGがどれだけ効果的に動作するかを評価することです。評価は大きく2種類に分かれ、1つは検索器や生成器など各モジュールに対する独立評価(independent evaluation)、もう1つは入力から出力までの全体プロセスを評価するエンドツーエンド評価(end-to-end evaluation)です。それぞれの評価方法や、評価時の指標(metric)、利用できるフレームワーク(framework)などについて見ていきます。
RAGの将来展望(Future Prospects)
RAGの垂直的最適化と水平的拡張、そしてRAGのエコシステムに関する内容を扱っています。
⚠️広告: PyTorch韓国ユーザー会がまとめたこの記事は役に立ちましたか? 会員登録すると主要な記事をメールでお届けします!(デフォルトはWeeklyですが、Dailyに変更することもできます。)
2件のコメント
良い資料を共有していただき、ありがとうございます
あっ、お読みいただきありがとうございます!
もしお読みになる中で不自然な点や誤っている部分を見つけられましたら、お知らせいただけますと幸いです。 ^^;