目次
- 検索におけるリランカーの役割
- リランカーはどのように機能するのですか?
- 第2段階の再ランク付けによる RAG の最適化
- リランカーモデルを選択するにはどうすればよいですか?
- MongoDB と Voyage AI によるリランキング
- 結論
- よくある質問
リランカーは、特定のクエリに対する抽出されたドキュメントの関連性を評価し、ランク付けするようにトレーニングされたモデルです。これらのタイプのモデルは、数十年にわたって検索エンジンのアーキテクチャの一部を担ってきましたが、検索と検索拡張生成(RAG)の登場により、近年再び注目を集めています。RAGは、検索と大規模言語モデル(LLM)に基づいて構築されています。
検索におけるリランカーの役割
リランカーの役割と有用性を理解するには、まず、検索システムにおいて再ランク付けがどのように機能するかを検討する必要があります。
検索には次のようなさまざまな形式があります。
全文検索
全文検索を使用すると、キーワードベースのマッチングなど、ドキュメントコンテンツに対してクエリを照合することで、ドキュメントコレクション全体を検索できます。用語の頻度と逆ドキュメント頻度に基づいてドキュメントをランク付けする BM25 のようなアルゴリズムを使用しており、関連性の高いドキュメントが検索結果の上位に表示されるようにします。キーワードベースの検索は、構造化された正確なクエリには有効ですが、同義語、コンテキスト、意図を扱うのには苦労します。最新の検索エンジンでは通常、これらのコア技術を、誤字脱字に対するファジー一致や、関連概念を理解するためのセマンティック分析といった機能と組み合わせています。
埋め込みベースのセマンティック検索
セマンティック検索は、キーワードを単に一致させるのではなく、データの文脈的な意味を理解することで、検索精度を向上させることを目的としています。これは、自然言語処理(NLP)手法を活用して、クエリの背後にある意図とコンテンツ内のコンテキストを理解します。
セマンティック検索の一般的な実装には、埋め込みと呼ばれるベクトル表現を使用して、クエリとドキュメントをセマンティックかつ高次元のベクトル空間に変換することが含まれます。これらの埋め込みは、埋め込みモデルを使用して生成され、ベクトルデータベースに保存されます。クエリの埋め込みと保存されているドキュメントの埋め込みの間でベクトル検索を実行することで、類似度を計算してクエリに最も関連性の高いドキュメントを特定できます。このアプローチは、高密度検索として知られています。
ベクトル検索は高速かつ効率的
ベクトル検索は、意味的に関連するドキュメントを検索する速度と効率性に優れているため、ドキュメントの抽出に適しています。これは、数十億のドキュメントに増やす大規模なデータベースを使用する場合に不可欠です。この速度は、データがすでにベクトル埋め込みに変換され、ベクトルデータベース(MongoDB Atlas など)に保存されているということで実現します。その結果、検索プロセスは、コサイン類似度のような低複雑度のベクトル比較で構成されます。
スピードを最適化
この速度にはトレードオフがあり、データをベクトル埋め込みに圧縮すると、一部の意味が失われます。その結果、ベクトル検索は高速に結果を返しますが、完全に関連性の順序どおりではない場合があり、適切な類似度を反映していないものもあります。ここでリランカーが登場します。リランカーは、再ランク付けを行い、下流プロセスで使用する最適な候補を選択することで、検索結果を改善します。
リランカーはどのように機能するのですか?
リランカーは、クエリと抽出されたドキュメントに関連性スコアを割り当てるモデルです。その名が示すように、セマンティック検索などの埋め込みベースの手法を使用して最初に抽出されたドキュメントのランキングを改善します。リランカーは、関連性に基づいてドキュメントをスコアリングすることで、最初に抽出されたドキュメントの中から最も関連性の高いサブセットを選択し、抽出の精度を向上させます。
リランカーはクロスエンコーダーです
最新のリランカーは、クロスエンコーダーと呼ばれるトランスフォーマーベースのモデルです。これらのモデルは、クエリと各ドキュメントをまとめてエンコードすることで、より深い関係とコンテキストを捉えることができます。クロスエンコーダーは、入力内の異なる単語の相対的な重要度を重み付けするトランスフォーマーモデルのメカニズムであるセルフアテンションを応用します。クエリとドキュメントを組み合わせた入力を処理することで、セルフアテンションにより、モデルはコンテキスト内で最も関連性の高い単語に焦点を当てることができます。その結果、リランカーは、ドキュメントの内容との関係において検索クエリの意図をより適切に把握できます。また、検索結果の関連性と精度に大きく影響する可能性がある微妙なニュアンスや曖昧さにも対応します。
埋め込みモデルはバイエンコーダーで、クエリとドキュメントを個別にエンコードするため、精度が低下し、文脈上のニュアンスが欠落します。これが、高精度の検索において、埋め込みモデルよりもリランカーの方が効果的である理由です。
リランカーのトレードオフ
リランカーは計算コストが高くなります。効率的な比較のために埋め込みを事前に計算および保存する埋め込みモデルとは異なり、リランカーはクエリ時に各クエリとドキュメントのペアをリランキングモデルで処理します。すべてのクエリとドキュメントペアのクロスエンコーディングは候補数に比例して線形に増加し、トランスフォーマーにおける自己注意の二次的な性質も計算負荷をさらに増大させます。このため、処理速度が低下し、リソースの消費量が増えるため、多数のドキュメントを扱う場合には実用的ではありません。
2段階検索
リランカーは、検索における第2段階のランキングステップとして最も効果的に機能します。最初の大部分の処理は、高速かつ効率的な埋め込みベースのベクトル検索によって行われます。これは、広範なナレッジベースから一連のドキュメントを検索しますが、一部のユースケースで必要とされる高い精度が不足する場合があります。次にリランカーが候補のセットを絞り込み、最も関連性の高いドキュメントを提供して検索精度を向上させます。
第2段階の再ランク付けによる RAG の最適化
検索拡張生成(RAG)は、ドキュメントの検索と大規模言語モデル(LLM)を組み合わせて、より正確でコンテキストに関連した応答を生成します。この技術は、LLM ベースのチャットボットやその他のインテリジェントなアプリケーションで、外部知識を LLM に組み込むために広く使用されています。RAG はセマンティック検索を使用して、ユーザーのクエリに関連するドキュメントを見つけます。これらのドキュメントはプロンプトに含まれるため、LLM は提供されたデータに基づいて回答を生成できます。
RAG は検索を基盤としてビルド
RAG はドキュメントの検索にセマンティック検索を使用するため、セマンティック検索の検索精度の制限を継承します。一部のユースケースではこれで十分かもしれませんが、検索精度を最適化することで、より正確な応答が可能になり、ハルシネーションを減らすことができます。
コンテキストウィンドウとリコール
さらに、大規模なナレッジベースを扱う場合、ベクトル検索によって多数のドキュメントが取得される可能性があり、それらが LLM のコンテキストウィンドウに収まりきらないことがあります。その結果、より関連性の高いドキュメントを見逃す可能性があります。さらに、大規模言語モデルは、プロンプトに情報が多すぎると、パフォーマンスが低下する傾向があります。最も関連性の高いドキュメントのみを選択することで、結果の精度が向上します。この概念は、LLM のリコールと呼ばれることが多く、提供されたコンテキストから関連情報を取得する LLM の能力を指します。
これらの理由から、ここで説明する基本的な RAG 実装は、しばしば「ナイーブ RAG」と呼ばれます。出発点として機能しますが、実際の本番環境のユースケースでは、通常、十分な結果を得るために、より高度で最適化されたバージョンが必要になります。
パイプラインにおける第2段階の再ランキング RAG
一般的な最適化手法として、抽出されたドキュメントを絞り込むための第2段階の処理として再ランキングモデルを使用します。この再ランク付けされたセットから上位の結果のみが最終生成用に保持されるため、応答の精度が最適化されます。
ほとんどの場合、最初の埋め込みベースのセマンティック検索の後に第2段階のランキング検索ステップとして再ランキングを追加すると、検索精度が向上し、RAG ソリューションの全体的な結果が改善されます。
リランカーモデルを選択するにはどうすればよいですか?
第2段階の再ランキングおよび検索拡張生成(RAG)のための高密度検索のコンテキストでは、リランク機能の選択は主にレイテンシと精度のトレードオフに依存します。
前述のように、リランカーはクロスエンコーダーであり、クエリとドキュメントのペアを共同で処理することを意味します。このアプローチは精度を大幅に向上させますが、計算量のコストが高まり、それがレイテンシに直接影響します。
リランカーによって誘発されるレイテンシには、さまざまな要因が直接影響します。
抽出された候補の数(Top-K)
リランカーは計算コストが高いため、処理する候補の数を最小限に抑えることが重要です。大まかな目安は以下のようになります。
ベクトル検索では50~1,000件の候補ドキュメントを抽出する必要があります。
リランカーはこれを上位5~20件に絞り込み、最も関連性の高いドキュメントのみが考慮されるようにする必要があります。
これらの数値はあくまで仮定のものであり、特定のドメインや下流タスクによって大きく異なる場合がありますのでご注意ください。理想的な Top-K の数は、初期検索の精度と、ここで述べたその他の要因によって決まります。初期検索が非常に効果的であれば、再ランキングのために渡すドキュメントを減らすことができ、レイテンシを抑えることができます。検索機能が弱い場合は、より多くの候補セットが必要になることがあります。
リランカーモデルのサイズ
他のタイプのモデルと同様に、リランカーにもさまざまなサイズがあります。モデルが大きいほど、次のようになります。
精度が高くなります(より深いセマンティックな関係を捉えるため)。
レイテンシと計算コストが高くなります。
適切なサイズを選択するには、システムのキャパシティーと、ユーザーエクスペリエンスにおいて許容できるレイテンシを考慮する必要があります。
クエリとドキュメントの長さ
クエリとドキュメントの両方の長さがリランカーの選択に影響します。
クエリやドキュメントが短い場合は、Voyage AI rerank-2-lite のような、より小さくて高速なリランカーで十分な場合があります。
長いクエリや長いドキュメントでは、Voyage AI rerank-2 のようなより強力なリランカーの方が、微妙な関係をより適切に捉えられます。
さらに、ベクトルデータベースのチャンクサイズも考慮に入れます。より大きなテキストチャンクを保存する場合は、きめ細かなセマンティック関連性をキャプチャするために、より強力なリランカーが必要になります。
適切なリランカーは、精度、レイテンシ、計算リソースの間のバランスを取りながら選択します。レイテンシが懸念される場合は、軽量モデルを選択するか、Top-K を制限してください。精度が最優先事項であれば、より強力なリランカーに投資し、検索品質を最適化して処理する候補の数を減らすべきです。
MongoDB と Voyage AI によるリランキング
検索システムと検索拡張生成(RAG)システムは、リランカーの実装に加えて、さまざまな方法で最適化できます。MongoDB Atlas Vector Search は、ハイブリッド検索、メタデータの事前フィルタリング、ベクトル量子化など、開発者向けの高度なクエリ機能を提供します。ただし、さらに高い精度とパフォーマンスを実現するには、リランキングの統合が必要なステップです。
MongoDB Atlas Vector Search で Voyage AI の最先端の 埋め込みモデルと リランカーを活用することで、開発者は AI を活用したアプリケーションから、高精度で信頼性の高い最も関連性の高い情報を確実に提供できるようになり、LLM から文脈が豊富で根拠のある回答を得ることができます。Voyage AI は、さまざまな技術的要件と計算リソースを満たすために、小規模から大規模まで、幅広い埋め込みモデルを提供しています。さらに、特定のフィールドや業界のニュアンスを捉えるために、ドメイン固有の埋め込みモデルも利用できます。
今すぐ構築を開始しましょう。フルマネージドの安全なデータベースと広範な AI パートナーエコシステム を統合することで、開発者のエクスペリエンスを簡素化し、より多くの価値を創造できます。このエコシステムには、すべての主要なクラウドプロバイダー、LLM モデルプロバイダー、システムインテグレーターが含まれます。
関連リソース
MongoDB Atlas は、検索機能やベクトル機能などを内蔵したデータベースです。今すぐ無料で登録できます。
Voyage AI について詳しくは、こちらをご覧ください。
検索や AI スタックに関する戦略的なアドバイスや導入支援については、MongoDB AI Applications Program をご覧ください。
結論
リランカーは、検索拡張生成(RAG)システムにおける検索パフォーマンスとドキュメント取得の品質を向上させるための重要なコンポーネントです。これらは大幅な改善を示しており、特に提供される情報の量に敏感で、コンテキストウィンドウのサイズによって制限される LLM ベースのアプリケーションのコンテキストで顕著です。ベクトル検索は高速で効率的ですが、リランカーはリソース使用量が高くなる代わりに、より高い精度を提供します。このトレードオフにより、多くの場合、類似性検索と RAG のための多段階検索システムが実装されます。
しかし、リランカーだけが検索や RAG システムを大幅に改善できる最適化ではありません。汎用モデルでもドメイン特化モデルでも、埋め込みモデルの選択と微調整は、検索精度の向上にもつながります。さらに、チャンク戦略や、ハイブリッド検索、プレフィルタリング、プロンプト圧縮などの高度な検索機能の使用も、考慮すべき重要な最適化です。

