RAG
RAGとは
Retrieval-augmented Generation
RAGは、外部の知識ベースから事実を検索して
最新の正確な情報に基づいて大規模言語モデル(LLM)に回答を生成させることで
ユーザーの洞察をLLMの生成プロセスに組み込むというAIフレームワークです。
Retrieval-augmented Generation(RAG、検索により強化した文章生成)は
LLMが持つ知識の内部表現を補うために外部の知識ソースにモデルを接地させる(グラウンドさせる)ことで、LLMが生成する回答の質を向上するAIのフレームワークです。
LLMベースの質問応答システムにRAGを実装すると、主に2つの利点があります。
すなわち、モデルが最新の信頼できる事実にアクセスできることと
ユーザーがモデルの情報ソースにアクセスできるようにすることで、モデルの主張が正確かどうかをチェック可能にし、最終的に信頼できることを保証することです。
LLMを含むすべての基盤モデルの基礎構造にあるのは、トランスフォーマーと呼ばれるAIアーキテクチャー
これは、大量の生データをその基本構造を圧縮した知識表現に変換します。
基盤モデルはこの未加工の知識表現から出発して、ラベル付けされたドメイン固有の知識に基づいてファイン・チューニングを加えることで、さまざまなタスクに適応させることができます。
しかし、ファイン・チューニングだけでは、刻々と変化する文脈の中で詳細な質問に答えるために必要な知識の幅を、モデルが完全に獲得することは困難です。
Meta社は2020年の論文で、LLMが学習データ以外の情報にアクセスできるようにするためのretrieval-augmented generationと呼ばれるフレームワークを発表しました。
RAGは、LLMがより正確な方法で質問に答えるために専門的な知識体系を構築することを可能にします。
Lastrasは言います。「いわばオープンブック試験とクローズドブック試験の違いです」(オープンブック試験とは、大学などで行われる教材持ち込み可のテスト形式のこと)。
「記憶から事実を思い出そうとするのではなく、RAGシステムでは、本の内容を閲覧して質問に答えるようモデルに求めているというわけです」
その名が示すように、RAGには検索(Retrieval)とコンテンツ生成(Generation)という2つのフェーズがあります。
検索フェーズでは、ユーザーのプロンプトや質問に関連する情報のスニペット(断片)をアルゴリズムが検索し、取得します。
オープン・ドメインの消費者向け設定では、インターネット上のインデックス化された文書から情報を取得するかもしれません。
クローズド・ドメインの企業向け設定では、セキュリティーと信頼性を高めるために、通常、より狭い範囲の情報ソースが使用されます。
取得した外部知識の詰め合わせは、ユーザーのプロンプトに追加され、言語モデルに渡されます。
生成フェーズでは、LLMはこの増強されたプロンプトと学習データの内部表現から、その瞬間のユーザーに合わせて気の利いた回答を生成します。
そしてこの際の回答は、ソースへのリンクとともにチャットボットに渡すことができます。
技術的説明
リトリーバモデルは、与えられたクエリに対して、大規模なデータベースから関連する情報を検索します。
この情報は、文書、段落、またはテキストスニペットの形で存在する可能性があります。
次に、ジェネレータモデルが登場します。
このモデルは、リトリーバモデルが提供したコンテキストを基に、テキストを生成します。
この生成されたテキストは、質問に対する回答や、特定のタスクを達成するための指示など、多様な形を取ることができます。
RAGもORQAやREALMと同様に
知識コーパスから文書を抜き出すRetriever
文書から答えを生成するGenerator(ORQAでは答えを抽出するのでReaderと読んでいました)に分けられます。
事前学習によって得られる知識をそのパラメータの中に知識が埋め込まれることから
パラメトリック・メモリと呼び
適宜知識コーパスを参照して取得する知識を
ノン・パラメトリック・メモリと呼びます。
ノン・パラメトリック・メモリはWikipediaの記事を使って、それらの記事の埋め込み表現となります。
そして、これらをEnd-to-Endで学習します。
つまり、従来(ORQA以前)のような知識コーパスからの抽出をどの文書を抽出するのが正しいか?というラベルを使って学習し、それとは別に文書から答えを抜き出すタスクを学習する、というような形ではなく、文書の抽出から答えの抜き出しまで一気通貫で学習します(ORQAやREALMと同じです)。
論文