検索拡張生成「RAG」とはなにか?生成AIの精度を高める仕組みとメリットをわかりやすく解説
![](/hatalabo/wp-content/uploads/2024/07/it689_main.jpg)
あらゆる場面での活用が進み、生成AIは日々進化を続けています。しかし、想定している利用目的や用途によっては、その技術はまだまだ実用レベルには至っていない。そう判断される場面が多いことも事実です。
そんな現状の生成AIの弱点を補い、活用の幅をさらに広げる技術として注目されているのが、「検索拡張生成」と訳されるRAGです。
本記事では、生成AIのより積極的な活用を検討しているビジネスパーソンやエンジニアに向けて、RAGの概要から仕組み、導入するメリットから活用シーンなどを考察します。
POINT
- RAG(検索拡張生成)とは、独自に付与した外部データベース内の情報を反映し、生成AIがテキストなどをアウトプットする精度を高める技術のこと
- LLMの出力精度が高まる特性から、RAGはアウトプットの信頼性を担保しやすくする技術として注目されている
- RAGにより、最新の情報へのアクセスや正確なデータソースの提示、回答のパーソナライズ化といったメリットを得られる
RAG(検索拡張生成)とは
![](/hatalabo/wp-content/uploads/2024/07/it689_01.jpg)
RAG(検索拡張生成)とは、簡単にいうと、独自に付与した情報(データ)を反映し、生成AIがテキストなどをアウトプットする精度を高める技術を指します。
正確には「検索AIと生成AIを組み合わせた自然言語処理(NLP)技術」であり、たとえば、ChatGPTをカスタマイズできる「GPTs」もRAGによるサービスです。
そもそも、検索AIと従来型のAIには、それぞれ次のような弱点がありますが、この両者を組み合わせることでお互いの弱点を補完し、生成AIによる独自性の高いアウトプットを可能にする関係性が成り立ちます。
- 検索AI
AIに付与された情報のなかで、「キーワードに合致する内容」のみをオンラインソースから抽出・羅列する。情報量が多いと取捨選択に時間がかかる。
- 従来のAI
学習済みの情報しか回答できないため、情報を付与したことがないクローズドな事項について質問した場合、偽りの内容を適当に述べることもある(ハルシネーション)。
つまり、検索AIと従来のAIを組み合わせ、両者の弱点を補うRAGを活用すれば、検索時間の短縮およびハルシネーションの低減が実現できるということです。
具体的には、ChatGPTなどの大規模言語モデル(LLM)にナレッジベースなどの特定の情報源(外部データ)を付与することで、サーチに時間がかかる「検索AI」と、知らない情報に対して虚偽回答する「生成AI」の弱点を補完します。結果、大規模言語モデルよりも、専門性・正確性の高い出力を期待できるようになるというプロセスです。
RAGの仕組み
RAGは、次のような仕組みによって実現します。
![](/hatalabo/wp-content/uploads/2024/07/it689_02.jpg)
-
プロンプト(指示・質問)をチャットAIアプリに入力する
ユーザーが知りたいことや生成してほしいものに対する指示をチャットAIアプリに入力します。
-
外部データ内を検索し、結果から情報を取捨選択する
アプリ内部にて、外部データからプロンプトの内容に合致する結果を検索します。この際、キーワードだけでなく、プロンプトの文脈・意味を考慮したうえで、関連情報を割り出します。
-
プロンプトと検索結果をLLMに渡し、回答を生成・アプリに提示する
ナレッジベースなどの外部データから得た検索結果と、ユーザーからのプロンプトの内容をLLMに渡し、情報を要約して回答を生成。生成した回答をアプリで提示します。
ファインチューニングとの違い
ファインチューニングとは、事前学習させたモデルの一部、あるいは全体に対して新たなデータを用いて追加学習させ、モデル全体の汎用性を高める手法です。つまり、すでに学習済みのモデルを、別のモデルにも活用するために実施する微調整作業の位置づけです。
ファインチューニングもRAGと同様に、生成AIにクローズドな情報を扱わせる技術です。しかし両者では生成AIに対するアプローチ方法が異なります。
- ファインチューニング:生成AIに新たな情報を学習させ、扱える情報量を増やす
- RAG:生成AIが参照できるデータベースを用意する(仕組みを構築する)
わかりやすくいうと、生成AIに知識を与えて定着させるのがファインチューニングで、いつでも参照できるように資料(データベース)を用意するのがRAGというわけです。
RAGが注目される理由
LLMの出力精度が高まる特性から、RAGはアウトプットの信頼性を担保しやすくする技術として注目されています。
ChatGPTやGeminiなどに代表されるLLMは、その性質から以下のような課題を抱えています。
- 虚偽の回答を提示する(ハルシネーション)
- 参照元が古いことがある
- 参照元の信頼性が低いことがある
- ユーザーの誘導により、意図しない結果を生成する(敵対的プロンプト)
LLMは、単語と単語の組み合わせから結果を生成しており、プロンプトの文脈や意味は考慮しません。そのため上記のように、アウトプットの質を担保できない現象が起きてしまいます。これにより、ユーザーに誤情報を提供してしまったり、正確性が担保されていない参照元の情報を引用したりといった問題を誘発します。
こうしたLLMの課題を補ってくれるとして、RAGへの関心が高まっているのです。RAGを実装し、外部ソースを参照できるようになればLLMの知識の偏りをなくせます。また、最新の情報やデータベースへのアクセスがなされることで、データソースの信頼性も向上します。
結果、LLMが判断できない内容に対してハルシネーションを起こすのではなく、「わからない」と回答させることも可能になるため、根拠の曖昧な回答を回避できるのです。
RAGのメリット
![](/hatalabo/wp-content/uploads/2024/07/it689_03.jpg)
RAGの実装には、次のようなメリットがあります。
- 最新の情報にアクセスできる
- 正確なソースを提示できる
- よりパーソナライズされた回答を提供できる
- LLMと比較してコストの効率性が高い
実装する外部データベースの精度に依存はするものの、AIに適切な情報や行動データなどを参照させることで、同じ質問であってもユーザー1人ひとりに対してパーソナライズされた回答を提供できるようになります。
また、必要なデータ量も少量であることから、LLMよりもコスト効率が高い点も特徴です。
最新の情報にアクセスできる
RAGでは、付与された外部データベースに登録されている情報に基づいた結果が生成されます。この外部データベースは定期的なチューニングもできるため、ユーザーのプロンプトに対して最新の情報を含む結果を返せる仕組みです。
同様の要領にて、たとえば外部データベースに自社製品のオリジナル情報を登録すれば、AIは自社製品に関する情報を回答として提示できるようになります。
正確なソースを提示できる
RAGでは独自に付与した外部データソースから結果を引用するため、ソースの正確性を担保できます。また、結果を提示する際には、出典・引用元を含めることができるため、ユーザーが自身でデータソースを確認することも可能です。
たとえば企業がチャットボットを使用する場合、それが「企業の顔」としてユーザーから認識されることは避けられません。問い合わせを受け、チャットボットが信頼性の低いソースを反映した情報を提供してしまうとどうなるでしょうか? それはユーザーに間違った判断や行動を促してしまうことであり、企業のブランド棄損などにもつながりかねないでしょう。
こうした問題に対し、RAGを実装すれば信頼できるソースからの情報を提供できるようになるため、誤った回答を提示することにより想定されるリスクを防止できます。
よりパーソナライズされた回答を提供できる
RAGでは、顧客情報や購買履歴・行動データなど独自のデータソースを参照させることで、LLMよりもユーザーそれぞれにパーソナライズされた回答を提示できるようになります。
たとえば製品に対する問い合わせに対して、製品情報をはじめ、ユーザーの過去の購入履歴や問い合わせ履歴などをデータベースに登録しておけば、これらのデータを総合的に分析して、個人に最適な回答を出力するアクションが実現します。
LLMと比較してコストの効率性が高い
LLMから専門性・信頼性の高い結果を得るためには、大量のデータを学習させなければいけません。しかし、これには大量かつ良質なデータが不可欠となり、その収集には多大な時間とコストが付随します。また、高度な技術・知識を有するデータサイエンティストの存在も必須となることから、多くの場合は現実的な方法とはなりません。
一方、RAGであれば必要なデータの計算量は少量で、実装にあたってのモデルの変更も不要なため、コスト効率は飛躍的に高まります。
RAGの課題
多くのメリットの一方で、RAGには次のような課題も指摘されています。
- 高度な技術が求められる
- 規模が大きくなるほど生成に時間がかかる
- 外部データベースの質に結果の質も左右される
- インフラコストが増大する可能性がある
高度な技術が求められる
RAGの実装には、検索コンポーネントと生成コンポーネントを統合するための高度な技術が必要です。また、表現方法など、LLMによる生成の傾向は変えられないため、条件を課す場合はLLMに新たに追加学習をさせる必要も生じます。
規模が大きくなるほど生成に時間がかかる
外部データベースが大規模になるほど、結果の生成には時間を要することから、ユーザー満足度を下げる可能性があります。データベースに登録する情報の絞り込みは運用における重要なポイントです。
外部データベースの質に結果の質も左右される
データベースに登録されている情報を参照して結果を生成するプロセスであることから、その大前提となるインプット情報が誤っていた場合は、回答も誤った内容を提示してしまいます。誤情報を提示させないために、定期的に情報を更新し、正確性を保つ必要があります。
インフラコストが増大する可能性がある
RAGではリアルタイムで膨大なデータを高速処理する必要があるため、ネットワークやストレージの整備にコストがかかります。従来よりもインフラコストが増大する可能性も否めません。
RAGが活用されるシーン
![](/hatalabo/wp-content/uploads/2024/07/it689_04.jpg)
まだまだ課題も残されているRAGですが、それに余りある複数のメリットや高いポテンシャルから、すでに次のようなシーンで具体的に活用されています。
- 顧客の問い合わせ対応やサポート
- 社内のマニュアルやトラブルシューティング
- パーソナライズされたコンテンツの作成
顧客の問い合わせ対応やサポート
まずはチャットボットやバーチャルアシスタントへのRAGの導入です。顧客からの問い合わせ対応やサポートを自動化できるほか、データベースに製品情報や購入履歴、問い合わせ履歴などのデータを登録しておくことで、問い合わせに至った背景や文脈までをも考慮した回答が可能になります。
ユーザーの課題や疑問に対して的確な回答を提示することは、顧客満足度の向上にも貢献するでしょう。
社内のマニュアルやトラブルシューティング
RAGに付与する外部データベースに、社内マニュアルやトラブルシューティングを登録しておくことで、社内から寄せられた問い合わせやトラブルに即時対応できるようになります。
これは、プロンプトを入力するだけで知りたいことやトラブルに対して参考になる解決策が提示される環境が整うということです。従業員個人が専門的な知識やスキルを身に付ける必要もなくなります。
これにより従業員の育成コスト低減が見込めるほか、知識やスキルの偏りがなくなることで、業務に対して誰であっても一定の成果を出せるようになるため、業務平準化も進めやすくなるでしょう。
パーソナライズされたコンテンツの作成
自社情報や顧客情報をデータベースに登録することで、営業先それぞれにパーソナライズされたコンテンツの作成が可能になります。たとえば営業資料やメール文、ブログ記事、製品カタログなどにおいて、より詳細で正確、かつ自社の形式・文体に沿ったコンテンツを生成してくれます。
さらにRAGはマーケティングリサーチなどにも活用可能です。AIが調査した好みや検索履歴などのユーザー行動におけるデータを参照させれば、よりパーソナライズされた商品・サービスの提案ができるようになります。
- RAG(検索拡張生成)とは、独自に付与した外部データベース内の情報を反映し、生成AIがテキストなどをアウトプットする精度を高める技術のこと
- 検索AIと従来のAIを組み合わせ、両者の弱点を補うRAGを活用することで、検索時間の短縮およびハルシネーションの低減が実現できる
- LLMの出力精度が高まる特性から、RAGはアウトプットの信頼性を担保しやすくする技術として注目されている
- RAGにより、最新の情報へのアクセスや正確なデータソースの提示、回答のパーソナライズ化といったメリットを得られる
- 一方で、高度な技術が不可欠であることや、インフラコストの増大といった課題も懸念される
- チャットボットによる問い合わせ対応や社内マニュアルの整備など、RAGはすでにビジネスシーンでも活用されている