RAG(検索拡張生成)とは何かをわかりやすく解説、LLMとどう併用?安野氏の活用例とは
RAGの仕組み
RAGは、検索フェーズと生成フェーズの2段階のフェーズにわかれる。 ■検索フェーズ 検索フェーズとは、LLMが保有していない知見を補うために、組織内に蓄積された社内情報や組織外の最新情報を取得するプロセスだ。 RAGを活用した生成AIのアプリケーションに対して利用者が質問をした際、データベースや文書から関連情報を検索する。これにより、生成AIは外部データから関連度の高い文書を入手できる。 検索フェーズの精度を上げるためには、検索のしやすさや構造化の方法を考慮する必要がある。また、どの検索手法を活用するのかについても検討が必要だ。安野氏は「似ている情報を取ってくるためのアルゴリズムだけでも、数十種類もある」と話す。 検索結果から情報を得られたら、次の段階に移る。 ■生成フェーズ 生成フェーズでは、検索フェーズで得られた情報を利用して、利用者の質問に対する回答を生成する。 具体的には、アプリケーションは利用者からの質問に加えて、検索フェーズで取得した関連文書の情報をLLMに送信する。この過程の後に、LLMが回答を生成してアプリケーションが出力する。 このような2つのフェーズを経て、ハルシネーション(事実と異なる情報や、実際には存在しない情報を生成する現象)を避けて信頼性の高い回答を提供できるようになる。
RAGを導入するメリット
RAGを導入することで得られるメリットは多岐にわたる。ここでは、RAGを導入する4つのメリットを解説する。 ■信頼性の高い回答を生成できる RAG活用のメリットとして、回答の信頼度を高められる点が挙げられる。LLM単体で回答を作り出すと、元データが古い可能性があり、ファクトチェックに時間を要してしまう。 対してRAGでは、信頼できる外部の情報を検索し、生成AIと連携させて回答を作ることができる。回答の信憑性に疑問を感じた場合は、参照元のチェックも可能だ。 加えて、事前学習されていない情報も参照できるため、より網羅的かつ専門性の高い情報をもとにした回答が得られる。たとえば、データベース内の最新論文や自社製品情報などを参照し、内容を踏まえた回答を出力できるのだ。 ■外部情報の更新が容易になる LLMの知識をアップデートするには、最新情報などを再学習させる「ファインチューニング」などが必要で、一般的に膨大な手間がかかってしまう。RAGはユーザーが用意した正確な外部情報を検索するため、ファインチューニングが不要だ。 安野氏はファインチューニングとRAGについて、「どちらもAIに知識を注入するための手法ですが、その違いはかなり大きい」とした上で、「ファインチューニングでは大量の情報を使ってAIを学習させる必要があり、多くのデータと時間を必要とするほか、場合によってはコストもかかる」と指摘する。 「ファインチューニングでは特定の言葉遣いやスタイルなどのフォーマットを学ばせることはできる一方、新しい知識を効率的に注入するのはかなり困難です。そのため、AIに新しい情報を与えて正確な回答を得たい場合には、ファインチューニングよりもRAGのほうが効果的です。質問に対して必要な情報を検索してAIに提供するため、新しい知識を効率的に取り入れやすいというRAGの特徴が、ファインチューニングとの決定的な差と言えます」(安野氏) RAGであれば、常に最新の情報を反映した回答が生成できる。専門性の高い分野においても、更新が容易になる。 ■コストを大幅に抑えられる LLMのファインチューニングには、データセットの準備や環境構築などが必要であり、コストがかさむ。それに対し、RAGであればLLMの生成プロセスに外部情報の検索手順を加えるだけで済む。 また、ファインチューニングに比べ、ハルシネーションが起こるリスクは低減されるため、一般的にはコストパフォーマンスの面でも優れていると言われている。 ■パーソナライズされた回答を生成できる 生成AIがリサーチする際、ユーザーの行動履歴や趣味・嗜好などの関連情報を外部データベースから取得すれば、よりパーソナライズされた商品やサービスの提案が可能になる。 LLMは、インターネット上にある情報を根拠とするため、限られた分野・範囲の回答しか生成できず、パーソナライズもできない。 一方のRAGであれば、製品に関する問い合わせに対し、製品情報に加えてユーザーの購入履歴や問い合わせ履歴などをデータベースに登録して、その情報を総合的に分析し、個人に最適化された回答を出力できるのだ。