RAG
このチャプターのゴール
- RAGの概要が理解できている
- miiboにおけるRAGの仕組みが理解できている
RAGとは
Retrieval-augmented Generation(RAG)は、LLMが持つ知識を補うため、検索によって取得した外部の知識をモデルに与えることで、回答の質を向上させる手法です。
LLMのAIにRAGを利用すると、主に下記のような利点があります。
・モデルが最新の信頼できる事実にアクセスできること
・情報ソースが明確になり、エビデンスを示しやすくなること
・応答生成のコストが抑えやすくなること
・AIがわからないことを、わからないと判断できるようになる
このRAGの仕組みは、前チャプターで解説した「実用されるAI」の「知識レイヤーの付与」に該当するものです。
miiboにおけるRAGの流れ
miiboの前チャプターのプロンプトの話とリンクさせるとわかりやすいです。
RAGの流れは下記のようになります。
- ユーザーが発話
まずはユーザーが発話をしたとします。発話をすると、直近の会話履歴に追加されます。
- 検索クエリーの生成
検索クエリー生成プロンプトの内容によって、検索クエリーが生成されます。
情報を検索する、いわば「Google検索クエリー」のようなものだとイメージしてください。
- 検索
設定した外部データに対して検索をかけます。
miiboでは、様々な外部データに対して検索をかけることができます。
- プロンプトに検索結果を追加
検索結果の上位を「専用データプロンプト」に追加します。
これにより、プロンプトに検索結果の関連度の高い情報を追加し、その情報をもとにAIが応答をできるようにします。
この検索結果は、miiboの「前提データ」「参考資料」として扱われます。
ベースプロンプトで「前提データ」や「参考資料」という言葉で、この検索結果に対しての指示を書くことができます。
RAG活用のメリット
上記のイメージから、メリットについて考えます。
1. 正確な情報へのアクセス
外部データに検索をかけることで、正しい情報を引くことができます。
AIはもともと、Web上の膨大なデータを学習していますが、いわば有象無象のデータを丸暗記している状態です。そのため、誤った回答をしたり、古い情報を応答することも頻繁にあります。
リアルタイムに検索をかけることで、新鮮で専門性の高い情報を参照することができ、そういった課題に対処できるわけです。
2. エビデンスを示しやすくなる
外部データから得られる検索結果には、例えばURLなどの出展元情報が含まれます。
プロンプトで、下記のように指示したとします。
参考とした前提データのURLがあれば、必ず出力してください。
AIは参考とした検索結果のURLを表示してくれます。
それにより、ユーザーに対してエビデンスとなる情報ソースを明示できます。
生成AIは仕組み上100%の正しさを担保することは難しいですが、仮に応答が間違っていたとしても、ユーザーが確かめる術を提供できます。
3. コストの抑制
生成AIは、プロンプトのサイズが大きくなればなるほど、応答にコストがかかります。
よく、「AIに本を1冊プロンプトに読み込ませて賢くしよう」というような話題を見かけます。そういった大量な情報をプロンプトに入れる行為は、1応答あたりのコストが膨大になります。また、プロンプトが大きくなればなるほど、AIの応答の精度は悪化します。
このRAGの仕組みは、必要な情報を検索し、必要な検索結果をプロンプトに挿入します。必要な情報に絞るため、プロンプトのサイズが必要以上に巨大化せず、コストの抑制に繋がります。
4. わからないことを、わからないと言えるAIにできる
RAGの検索結果を、ベースプロンプトから指し示すことができることは、このメリットを享受します。
前提データや参考資料にない情報については、仮に回答が予測できても回答をしてはいけません。
前提データや参考資料に記載されている内容から明らかな事実のみ応答をしてください。
記載されていない内容について回答をすると、ユーザーに甚大な不利益を与えてしまうおそれがあります。
前提データや参考資料になく回答できない場合は、
「現在の私の知識では、応答をすることができません。」
のように回答してください。
このようなプロンプトを組むと、検索結果にない情報については述べにくいAIが構築できます。
もちろんその縛りの強さはユースケース次第で調整してください。
重要なのは、前提データにあるかないかで、AIが答えられないのか、答えられるのかを自覚できることです。
生成AIは確率的に文章を生成する仕組み上、自分が何がわからないのかを知覚することはできません。そのため、RAGの仕組みがそれを補ってくれます。
RAGに活用できる様々な外部データ
miiboでは様々な外部データを用意して、RAG環境を構築することができます。
次以降のチャプターでは、様々なRAG環境の構築について見ていきます。
miiboで構築可能なRAG環境
- ナレッジデータストアの利用
- Web検索の利用
- データコネクターの利用
- 外部API・DB連携
miiboのRAGの使い分け
上記の仕組みの使い分けを表にまとめます。
方法 | 精度 | 利用の手軽さ | リアルタイム性 | 保守・運用 | 補足 |
---|---|---|---|---|---|
ナレッジデータストア | ◎ | ◎ | △ | △ | 手動もしくはAPI経由で更新の必要ありだが圧倒的に手軽。 |
Web検索 | ○ | △ | ◎ | ○ | 検索結果の精度にAIの応答が依存するが、幅広くリアルタイム情報を取得できる。 |
データコネクター | △ | △ | ◎ | ◎ | 利用しているサービス上でコンテンツが完結する。サービスの提供するAPIに精度が依存する。 |
外部API・DB連携 | ?(連携先に依存) | △ | ◎ | ◎ | 独自のAPIやDBと連携することができる。精度や運用面をカスタマイズ可能。構築に専門知識が必要になる。 |
Updated 9 months ago