検索拡張生成(RAG)
Last updated
Last updated
RAGアーキテクチャは、ベクトル検索を中核としで、大規模モデルが最新の外部知識にアクセスすることを可能にします。これにより、生成されたコンテンツに関する幻覚問題にも対処できる、主流の技術フレームワークとなっています。この技術は多様なアプリケーションシナリオで利用されています。
開発者は、この技術を活用して、低コストでAIを活用したカスタマーサービスや企業のナレッジベース、AI検索エンジンなどを構築できます。自然言語入力を介して様々な知識構成と対話することで、知的なシステムを創造できます。代表的なRAGアプリを例に示します:
次の図では、ユーザーが「アメリカ合衆国の大統領は誰ですか?」と尋ねた場合、システムはその質問を直接大規模モデルに渡して回答を得るのではなく、まずナレッジベース(図に示されているWikipediaなど)でベクトル検索を行います。意味的類似性マッチングを通じて関連コンテンツ(例:「ジョー・バイデンはアメリカ合衆国の第46代および現職大統領である…」)を見つけ出します。その後、システムはユーザーの質問と収集した関連知識を大規模モデルに提供し、十分な情報を基に信頼性のある回答を得ることができます。
なぜこれが必要なのか?
大規模モデルは、さまざまな人類知識の分野に精通したスーパーエキスパートと見なすことができますが、いくつかの制限があります。例えば、個人情報については把握していないため、その情報はプライベートであり、インターネット上にも公開されていません。そのため、事前学習の機会がありません。
このスーパーエキスパートを個人の財務アドバイザーとして雇う場合、質問に答える前に投資記録や家計支出などのデータを確認することを許可する必要があります。これにより、専門家はあなたの状況に基づいた専門的なアドバイスを提供できるのです。
これがRAGシステムの役割です:大規模モデルが持っていない外部知識を一時的に取得し、質問に答える前に必要な情報を見つけ出す手助けをします。
この例から、RAGシステムにおいて最も重要な要素が外部知識の収集であることがわかります。専門家が必要な情報を正確に見つけられるかどうかが、専門的な財務アドバイスを提供できるかどうかを決定します。もし投資記録ではなく減量計画を見つけてしまった場合、どれほど知識が豊富な専門家でも無力になってしまうのです。
RAG対ファインチューニング:同じレベルの成果を達成できた場合、RAGはコストの面とリアルタイムでの性能において明らかな優位性を持ちます。しかし、ファインチューニングの手法は、データの質と量に対してより高い基準を要求します。さらに、ファインチューニングを採用したアプリケーションは、時にRAGの技術サポートが必要になることもあります。
長文テキストの取り扱いとRAG:多くの研究で示されているように、長いテキストを処理する際、テキストが長くなるほど検索の精度が低下するという問題が存在します。そのため、どのような状況でも、高精度な検索システムであるRAGと組み合わせることが可能です。これにより、長文テキストを扱う能力を持つLLMとRAGを効果的に組み合わせることで、互いの強みを活かし合い、欠点を補い合うことができます。
全体を通して、RAGは大規模なモデルが外部の最新情報データソースにアクセスし、関連分野の知識のギャップを埋め、提供する回答と知識の関連性を強化することを可能にします。RAGは、LLMが外部ソースから取得した検証可能なリアルタイムデータと組み合わせることで、より正確な回答を出力する手助けをし、結果の信頼性を高め、不要なリスクを減少させます。