使い方・開発 中級
リランキング
Reranking
検索で取り出した候補を、質問との関連度でもう一度精密に並べ替える処理のことです。RAGで本当に役立つ資料を上位に残し、最終的な回答の質を高めるために使われます。
別の呼び方再ランク付け、リランカー
例ベクトル検索で上位50件を取り出し、リランキングで上位5件に絞ってからモデルに渡した。
詳しく
リランキングとは、最初の検索で取り出した候補を、質問との関連度でもう一度評価し直して並べ替える処理です。検索を二段階にして、1段目で幅広く集め、2段目で厳密に絞り込む構成の2段目にあたります。
なぜ二段階にするのか
ベクトル検索は、文書をあらかじめベクトルにしておき、質問のベクトルと近いものを探すため、何百万件でも高速に検索できます。ただし、質問と文書を別々にベクトル化して比べるので、細かな関連の見分けは苦手です。たとえば「Aの料金を教えて」という質問で、「Bの料金」の文書が上位に混ざることがあります。
一方、質問と文書を一緒に読み込んで関連度を採点する方式(クロスエンコーダー型など)は、精度は高いのですが計算が重く、全件に使うのは非現実的です。そこで、軽い検索で候補を数十件に絞り、重いモデルで並べ替える、という役割分担をします。
処理の流れ
- 質問を受け取り、ベクトル検索やキーワード検索で候補を20〜100件ほど取り出す。
- リランキング用のモデルが、質問と各候補をセットで読み、関連度のスコアを付ける。
- スコア順に並べ替え、上位の数件だけを生成モデルのプロンプトに入れる。
候補の数や最終的に残す数は、精度・速度・費用の兼ね合いで決めます。
具体例
社内ヘルプデスクで「出張の宿泊費の上限は?」と聞かれたとします。最初の検索では、出張規程、経費精算の手順、宿泊施設の利用案内などが並びます。リランキングは、質問と実際に読み合わせて、「宿泊費の上限額」が書かれた条文を最上位に引き上げます。生成モデルには、その条文が最初に渡されるため、正確な回答を作りやすくなります。
効果と注意点
- 回答の質が上がりやすい。 生成モデルに渡す資料が減るので、無関係な内容に惑わされにくく、トークンの節約にもなります。
- 遅延と費用が増えます。 追加のモデル呼び出しが必要です。リアルタイム性が重要な場面では、候補数を絞るなどの調整をします。
- 1段目で取りこぼした資料は救えません。 リランキングは並べ替えであり、候補にない文書を見つけることはできません。1段目の候補数やチャンク分割、ハイブリッド検索の設計も重要です。
- 日本語への適合を確認します。 多言語対応でも、日本語での精度は製品によって差があります。自社の質問と文書で試して確認してください。
関連する考え方
リランキングは、RAGの精度を上げる定番の改善策のひとつです。キーワード検索とベクトル検索を組み合わせるハイブリッド検索で候補を集め、リランキングで整える構成がよく使われます。
あわせて知りたい言葉
- RAG(検索拡張生成)質問に関係する文書を検索で取り出し、それを LLM に渡してから回答させる仕組みです。モデルが学習していない社内資料や、最新の情報にもとづいた回答ができるようになります。
- ハイブリッド検索キーワード検索とベクトル検索(意味検索)を組み合わせて、両方の長所を生かす検索方式です。固有名詞や型番にも言い換えにも強くなり、RAGの検索精度が安定します。どちらか一方より取りこぼしが減ります。
- 埋め込み文章や画像などを、意味の近さが距離として表れる数値の並び(ベクトル)に変換したものです。言葉が違っても意味の近い文書を探す検索や、分類、RAG の土台に使われます。
- セマンティック検索言葉の一致ではなく、文章の意味の近さをもとに探す検索方式です。「車」で「自動車」の文書が見つかるなど、言い換えや曖昧な質問にも対応しやすいのが特徴です。ただし型番など完全一致が必要な検索は苦手です。
- チャンク分割長い文書を、検索や処理に適した小さな断片(チャンク)に区切る作業のことです。RAGではどこでどの大きさに区切るかが、検索の精度と回答の質を大きく左右します。区切り方の工夫が、回答の質を支えます。