使い方・開発 中級

リランキング

Reranking

検索で取り出した候補を、質問との関連度でもう一度精密に並べ替える処理のことです。RAGで本当に役立つ資料を上位に残し、最終的な回答の質を高めるために使われます。

別の呼び方再ランク付け、リランカー

例ベクトル検索で上位50件を取り出し、リランキングで上位5件に絞ってからモデルに渡した。

詳しく

リランキングとは、最初の検索で取り出した候補を、質問との関連度でもう一度評価し直して並べ替える処理です。検索を二段階にして、1段目で幅広く集め、2段目で厳密に絞り込む構成の2段目にあたります。

なぜ二段階にするのか

ベクトル検索は、文書をあらかじめベクトルにしておき、質問のベクトルと近いものを探すため、何百万件でも高速に検索できます。ただし、質問と文書を別々にベクトル化して比べるので、細かな関連の見分けは苦手です。たとえば「Aの料金を教えて」という質問で、「Bの料金」の文書が上位に混ざることがあります。

一方、質問と文書を一緒に読み込んで関連度を採点する方式(クロスエンコーダー型など)は、精度は高いのですが計算が重く、全件に使うのは非現実的です。そこで、軽い検索で候補を数十件に絞り、重いモデルで並べ替える、という役割分担をします。

処理の流れ

  1. 質問を受け取り、ベクトル検索やキーワード検索で候補を20〜100件ほど取り出す。
  2. リランキング用のモデルが、質問と各候補をセットで読み、関連度のスコアを付ける。
  3. スコア順に並べ替え、上位の数件だけを生成モデルのプロンプトに入れる。

候補の数や最終的に残す数は、精度・速度・費用の兼ね合いで決めます。

具体例

社内ヘルプデスクで「出張の宿泊費の上限は?」と聞かれたとします。最初の検索では、出張規程、経費精算の手順、宿泊施設の利用案内などが並びます。リランキングは、質問と実際に読み合わせて、「宿泊費の上限額」が書かれた条文を最上位に引き上げます。生成モデルには、その条文が最初に渡されるため、正確な回答を作りやすくなります。

効果と注意点

  • 回答の質が上がりやすい。 生成モデルに渡す資料が減るので、無関係な内容に惑わされにくく、トークンの節約にもなります。
  • 遅延と費用が増えます。 追加のモデル呼び出しが必要です。リアルタイム性が重要な場面では、候補数を絞るなどの調整をします。
  • 1段目で取りこぼした資料は救えません。 リランキングは並べ替えであり、候補にない文書を見つけることはできません。1段目の候補数やチャンク分割、ハイブリッド検索の設計も重要です。
  • 日本語への適合を確認します。 多言語対応でも、日本語での精度は製品によって差があります。自社の質問と文書で試して確認してください。

関連する考え方

リランキングは、RAGの精度を上げる定番の改善策のひとつです。キーワード検索とベクトル検索を組み合わせるハイブリッド検索で候補を集め、リランキングで整える構成がよく使われます。

あわせて知りたい言葉

「使い方・開発」の言葉をすべて見る