検索拡張生成(RAG)とは、再学習することなく大規模言語モデル(LLM)に新しいデータソースを追加する手法です。
この記事を読み終えると、以下のことができるようになります。
記事のリンクをコピーする
検索拡張生成(RAG)とは、大規模言語モデル(LLM)を完全に再トレーニングすることなく、そのコンテキストに関連するナレッジベースにアクセスさせることで、特定のコンテキストで使用する大規模言語モデル(LLM)を最適化するプロセスです。RAGは、LLMを特殊なユースケースに素早く適応させる費用対効果の高い方法です。開発者が人工知能(AI)モデルを微調整するために使用できる方法の1つです。
LLMは、膨大な量のデータでトレーニングされますが、設定によっては必要な特定の情報を生成できない場合があります。人間の言語の仕組みに関する一般的な理解は持っていますが、あるトピック分野に関して必ずしも専門知識を持っているわけではありません。RAGはこれを修正する方法の1つです。
車の整備士が1964年製のシボレーを整備しようとする場面を想像してください。その整備士は、何千時間もの経験を積んだことで車の整備に関する一般的な知識を豊富に持っていますが、特定の車種を正しく整備するためには、その車のオーナーズマニュアルが必要です。しかし、その整備士は再び整備士として資格を取得する必要はありません。マニュアルを参照するだけで、既存の一般知識を活かして作業ができます。
RAGも同様です。LLMに「マニュアル」、つまりナレッジベースを提供することで、LLMは一般的な知識を特定のユースケースに適応させることができます。例えば、一般的なLLMはAPIクエリの仕組みについてのコンテンツは生成できても、特定のアプリケーションのAPIをどのようにクエリするかは説明できないかもしれません。しかしRAGでは、そのLLMをアプリケーションの技術文書とリンクさせることで、そのアプリケーションで使用するために適応させることができます。
通常、LLMがクエリを受け取ると、既存のパラメータとトレーニングに従ってそのクエリを処理します。
RAGにより、LLMは、LLMのトレーニングデータセットに含まれないデータベースである「外部データ」を参照することができるようになります。したがって、通常のLLMの動作とは異なり、RAGを備えたLLMは外部データを取り込んで応答を強化します。これが「Retrieval(外部データの取得)- Augmented(このデータで応答を強化)- Generation(応答を生成)」という名前の由来です。
上記の例の自動車の整備担当が、ユーザーのマニュアルを直接参照するのではなく、LLMを使用したいとします。RAGを利用することで、LLMはオーナーのマニュアルの参照をそのプロセスに直接組み込むことができます。LLMはクラシックカーのマニュアルで学習されていない、あるいは学習されていたとしてもわずかな割合しか含まれていないかもしれませんが、RAGを使うことで関連性が高く正確な回答を生成できるのです。
LLMが外部データソース(車のマニュアルなど)を使用し、クエリできるようにするために、データはまずベクトルに変換され、次にベクトルデータベースに保存されます。このプロセスは、機械学習モデルを使用して、データセットの項目の数学的表現を生成します(各「ベクトル」は、[-0.41522345,0.97685323...] のような数字の配列です)。
ユーザーがプロンプトを送信すると、LLMはそのプロンプトをベクトルに変換し、外部のデータソースから作成されたベクトルデータベースを検索して関連する情報を探します。プロンプトの追加コンテキストとしてその情報を追加し、拡張されたプロンプトを典型的なモデルで実行して応答を作成します。
LLMの微調整にRAGを使う長所:
潜在的な短所:
RAGチャットボットは、RAGを通じて特定のユースケースに特化したLLMベースのチャットボットです。このチャットボットは、動作する文脈に関連する1つまたは複数の外部データソースに接続されています。例えば、自動車整備工場向けのRAGチャットボットであれば、自動車の技術文書にアクセスでき、汎用のLLMチャットボットに質問するよりも整備士にとって実用的です。
低ランク適応(LoRA)は、モデルを特定の文脈に適応させるもう1つの方法です。完全な再学習を行わずにモデルを微調整します。ただし、LoRAではモデルのパラメータを調整する必要がありますが、RAGではモデルのパラメータを一切変更しません。LoRAの詳細は、こちらをご覧ください。
AutoRAGは、開発者向けにRAGパイプラインを構築し、管理します。インデックス作成、検索、生成に必要なツールを接続し、定期的にデータとインデックスを同期させることですべてを最新の状態に保ちます。セットアップすると、AutoRAGはバックグラウンドでコンテンツのインデックスを作成し、リアルタイムでクエリに応答します。AutoRAGの仕組みの詳細は、こちらをご覧ください。
利用開始
人工知能
機械学習
ビッグデータ
用語集
ラーニングセンター