約2分

RAGの候補集めを受け持つベクトル検索

ベクトル検索は、キーワード一致ではなく意味の近さで関連文書を探す検索方法です。

ベクトル検索は、エンベディングで数値に変えた文章の位置関係を使って、意味の近い文書を探す方法です。本の題名で探すのではなく、内容の近い本が並んだ棚から候補を集めてくるイメージです。

大事なのは、ここで決まるのは答えではなく、候補だという点です。RAG の中では、たとえば次のような流れの一工程を担っています。

  1. 社内資料を、段落などの単位に区切る(チャンク分割)
  2. 区切った一つひとつを、エンベディングで数値に変える
  3. 質問も数値に変え、意味の近い文書をベクトル検索で候補として集める
  4. 必要なら、候補を質問に近い順に並べ直す(リランカー)
  5. 上位の候補を LLM に渡して、回答を作らせる

FAQ の言い回しが少し違っても似た問い合わせを見つけたい、長い資料から関係のありそうな箇所を先に絞りたい、といった場面でも同じ仕組みが使えます。

候補集めでつまずきやすいところ

意味の近さだけで選ぶので、業務の上では別物の文書が混ざることがあります。キーワード検索の完全な置き換えではなく、使い分けや併用が前提です。

うまく当たらないとき、原因は検索そのものより前にあることも多いものです。区切り方が粗すぎると、欲しい箇所に当たりにくくなります。数値に変えるモデルの選び方でも、得意な検索対象が変わります。上位の並びが甘いなら、リランカーを挟む構成を検討します。

候補を多く集めすぎると、LLM に渡すコンテキストウィンドウを圧迫します。上位に出た文書が本当に答えに必要なものか、人の目や評価用のデータで確かめてください。