第4回 生成AIの精度を高める「RAG」――ちょっとだけマニアックなAIの話
世界の皆さん、おはようございます、こんにちは、こんばんは。BCG XのプリンシパルAIエンジニア、高柳です。皆さんは、「RAG(Retrieval-Augmented Generation、検索拡張生成)」について聞いたことがあるでしょうか?生成AIの回答精度を高める仕組みのひとつで、ビジネスの現場でも急速に導入が進んでいます。大規模言語モデル(LLM)をより実践的に活用するための技術として、いま最もホットなトピックのひとつです。
今回のポイント
- RAGによって、大規模言語モデルは専門知識や非公開情報、最新情報を取り入れながら回答を生成できる
- RAGは追加学習のコストが少なく、性能面でも高い精度が見込める
- 多様なデータへの対応も進めば、科学分野などへの応用が期待される
- RAGの実践には検索精度の向上という古典的な課題がある
専門知識や最新情報が求められる場面で効果を発揮
RAGは、大規模言語モデル(LLM)が質問に答えるときに外部のデータベースやインターネットから情報を引っ張り出し、回答を補完する手法です(図表)。LLMの応答能力は事前学習済みのデータセットに依存するため、最新情報の反映や速やかなアップデートが苦手でした。しかしRAGを使えば、事前学習データだけに頼らず外部から取得された情報を用いて、より正確な応答ができるようになります。
LLMが保有していないような専門的な知識が必要な場合や、非公開情報、また時事ネタなどの最新情報が求められる場合に、RAGは効果を発揮します。たとえば医療、法律、テクノロジーなど、高い専門性が求められる分野や、社外には公表していない自社商品の詳細情報、直近のニュースなどを取り込んで応答するときに有効です。
特に応用が期待されるのは科学分野です。創薬の研究開発では、薬学的な観点から望ましい性質を持った分子構造を文字列(トークン)化し、 RAGを用いて似ている分子構造を検索する、といった形で活用可能です。
性能面でもコスト面でも優れているRAG
「大規模言語モデル(LLM)の性能を向上させる」という目的に対してとられるアプローチは、大きく2つあります。ひとつはRAG。もうひとつは、学習済みのLLMを新たなデータでさらにトレーニングして適応度を高める「ファインチューニング(微調整)」です。前者はモデルの能力を“推論時”に、後者は“学習時”に強化するものと言えます。
どちらの方がより効果的なのかは研究者の間で侃々諤々の議論が交わされていますが、私はいまのところ、RAGの方がより優れているという見方が妥当だと考えています(詳しく知りたい方は、注釈の論文を参照してみてください1)。
実務面で言うと、RAGは追加学習に必要なデータ収集などのコストがかかりません。LLMに独自の知識を与えたい場合には、かかる手間とコストを考えれば「初手RAG。効果が出ない場合、ファインチューニングを追加で実施する」が定石になると考えています。
RAGは基本的に、3世代にわたって進化してきました2。検索・生成・拡張の3ステップから成る最も単純な「ナイーブRAG」(第1世代)。検索の前後に処理を入れて性能を改善する「アドバンストRAG」(第2世代)。そして最後に、前処理~検索の機能をモジュール化し、モジュール(交換可能な構成部分)の組み合わせでRAGを構築する「モジュラーRAG」(第3世代)です。
私が実際に日本のビジネスの現場でRAGアプリケーションを開発してきた感覚から言うと、「アドバンストRAG」が、幅広いユーザーに対して価値提供をするうえで最低限押さえておくべきラインでしょう。LLM自体がビジネスのコアになっているような企業では、「モジュラーRAG」まで進んでいることが多い印象です。
検索精度の改善という古典的課題
RAGはすでに実践的な大規模言語モデル(LLM)の活用例となっている一方、まだ解決すべき課題も多くあります。例えば、検索精度が悪いために必要となる外部情報をそもそも引っ張って来られないという状況がしばしば起こります。この 課題を解決するため、多くのRAG実践の現場では、検索効率・精度の向上やデータセキュリティの確保など“古典的な”観点で、検索手法の改善に焦点が当てられている状況です。
また、外部に存在するノイズや矛盾する情報がRAGの出力品質に悪影響を与える可能性がある一方3、無関係なドキュメントを含めることで精度が30%以上向上するという、やや直感に反する結果も報告されています4。今後はこうした現象の解明に加えて、検索と基盤モデルをより効果的に統合する戦略を開発することも求められます。
ここまで読んだ皆さんは、「RAGとは何で、今何ができて、今後何ができそうか?」について、理解を深められたのではないでしょうか?次回もちょっとだけマニアックなAIの世界の情報をお届けしますので、お楽しみに!
高柳 慎一
ボストン コンサルティング グループ
BCG X プリンシパルAIエンジニア
北海道大学理学部卒業。同大学大学院理学研究科修了。総合研究大学院大学複合科学研究科統計科学専攻博士課程修了。博士(統計科学)。株式会社リクルートコミュニケーションズ、LINE株式会社、株式会社ユーザベースなどを経て現在に至る。デジタル専門組織BCG Xにおける、生成AIを含むAIと統計科学のエキスパート。
- Gao, Yunfan, et al. “Retrieval-augmented generation for large language models: A survey.” arXiv preprint arXiv:2312.10997 (2023)を参照。ある問題に対するLLMの知識の有無について、RAGの方がファインチューニングした場合よりも一貫して優れた性能を示した。 ↩︎
- 参照した論文は注釈1と同様。 ↩︎
- O Yoran, T. Wolfson, O. Ram, and J. Berant, “Making retrieval augmented language models robust to irrelevant context,” arXiv preprint arXiv: 2310.01558, 2023. ↩︎
- F. Cuconasu, G Trappolini, F. Siciliano, S. Felice, C. Campagnano, Y. Maarek, N. Tonellotto, and F. Silvestri, “The power of noise: Redefining retrieval for rag systems,” arXiv preprint arXiv: 2401.14887, 2024. ↩︎