AI検索

検索拡張生成(RAG)

別名: RAG, Retrieval-Augmented Generation, 検索拡張生成

検索拡張生成(RAG)とは、言語モデルがまず外部のソースから関連する文書を検索して取り出し、その取り出したテキストに基づいて回答を生成する手法のことで、モデルが学習した重みだけから事実を思い出すのではなく、出典を示せる具体的な資料を反映した回答になります。

RAGは、現在のほとんどのAI回答エンジンが動く仕組みです。質問を投げると、システムはまず検索のステップを実行し(多くの場合、文書のインデックスに対する意味検索です)、最も関連が高いと判断した文章を引き出して、コンテキストとしてモデルに渡します。モデルはその文章をもとに回答を書きます。ChatGPTやPerplexity、Google AI Overviewsといったツールが出典を挙げてリンクできるのはこのためです。生成の時点で、出典がモデルの目の前に文字どおり置かれています。検索がなければ、モデルは学習データにたまたま含まれていたものを言い換えることしかできません。それは古かったり、一般論にとどまったり、ニッチな商品については単に存在しなかったりします。

このパイプラインには二つの段階があり、それぞれが独立して失敗します。検索はどの文書がコンテキストウィンドウに入るかを決め、生成はモデルがそれをどう扱うかを決めます。完璧に書かれたページであっても、インデックスされていない、検索側が照合できる文章に分割されていない、システムが信頼する他のソースに裏づけられていない、といった理由で検索の段階で負けることがあります。逆に、検索が強くても、もとになる文章が薄かったり矛盾していたりすれば、弱い回答になります。AI検索向けに最適化するとは、人が読む文章だけでなく、両方の段階を気にかけることです。

メリノウールのベースレイヤーを売るShopifyストアを考えてみます。買い物客がChatGPTを開き、繰り返し洗濯しても一番もちがよいブランドはどれかと尋ねます。アシスタントは、まさにその挙動について見つけられるものを検索します。掲示板のスレッド、いくつかの比較記事、そして読み取れる構造化された形で公開されているレビューのテキストです。もしストアが900件のレビューを、ページの読み込み後に描画されるJavaScriptのウィジェットの中に閉じ込めていると、検索側は空の外枠を見て何も取り出さないことがよくあります。レビューがクロール可能なHTMLにあり、ProductとReviewのスキーマでマークアップされている競合は、たとえレビュー件数が少なくても、代わりに引用されます。

RAGは正しさを保証するものではなく、その点は正直に述べておく価値があります。モデルは文章を読み違えたり、二つのソースを混同したり、主張を実際には裏づけていないページを引用したりすることがあります。検索の品質はクエリによっても変わるため、ある言い回しで引用を得たページが、よく似た言い換えでは見つからないこともあります。買い手がAIアシスタントに商品の比較や推薦を頼む場面が増えているコマースでは、本物の顧客レビューは存在するのに、検索側が引き出せる形で読み取れる、裏づけられる、インデックスされている、という状態になっていないという食い違いが繰り返し起こります。検索で取り出されることは、その先のすべての前提です。コンテンツがそもそもコンテキストウィンドウに入らなければ、回答の品質が問われる機会は訪れません。その食い違いを埋めることが、BeyondReviewsが取り組んでいることです。