Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Reranker

リランカーは、クロスエンコーダーなどの低速で高精度なモデルを使い、リトリーバーが選んだ候補を再スコアリングしてから、ユーザーやLLMに結果を提示します。

リランカーは、高速な第1段階の検索器から短い候補リストを受け取り、各候補をクエリと照合してより慎重にスコアリングし、リストを並べ替えるモデルです。検索エンジン、検索拡張生成(RAG)のパイプライン、レコメンデーションシステムでは、この手法が使われます。最も精度の高い関連性モデルは数百万件の文書を処理するには遅すぎますが、上位数十件から数百件の処理には十分高速だからです。テキスト検索では、標準的なリランカーはクロスエンコーダーです。クロスエンコーダーは、クエリと1つの候補を一緒に読み取り、単一の関連性スコアを出力するTransformerです。NogueiraとCho(2019)はこの方法でBERTをファインチューニングし、MS MARCOのパッセージランキングのリーダーボードで、以前の最高値を相対値で27%上回るMRR@10を達成しました。

検索してから再ランキングする仕組み#

第1段階では再現率を重視します。BM25によるキーワード照合、事前計算済みの埋め込みを使ったベクトル検索、またはその両方により、コレクション全体から妥当な候補を数百件、数ミリ秒で取得します。リランカーは適合率を重視します。クエリと候補の各ペアに対してモデルの処理を一通り実行し、上位数件だけをユーザーに提示するか、LLMのコンテキストウィンドウに渡します。UltralyticsのVisualAISearchソリューションは、この種の第1段階の検索器です。画像フォルダーをCLIP ViT-B/32で埋め込み、テキストクエリとのコサイン類似度で順位付けし、デフォルトでは類似度しきい値0.1を超える一致を最大30件返します。

クロスエンコーダーとバイエンコーダー#

一般的な検索器であるバイエンコーダーは、クエリと各文書を別々に埋め込むため、文書ベクトルを一度だけ計算してベクトルデータベースに保存できます。この独立性は同時に限界でもあります。クエリが分かる前に文書ベクトルが固定されるためです。クロスエンコーダーは、クエリと文書を連結して1つの入力にするため、自己注意機構でクエリ内の各単語と文書内の各単語を比較できますが、クエリ時にはペアごとに順伝播を一通り実行する必要があります。ColBERTは両者の中間に位置し、文書トークンごとに1つのベクトルを保存して、遅延インタラクションによりクエリのトークンと照合します。Sentence TransformersのCrossEncoderクラスは、MS MARCOの検索クエリで学習したms-marco-MiniLM-L6-v2などのリランカーを実行します。

from sentence_transformers import CrossEncoder

query = "When was the transformer architecture introduced?"
# Shortlist returned by a fast first-stage retriever, in its original order
candidates = [
    "Transformer models such as GPT and BERT are widely used in natural language processing.",
    "An electrical transformer changes the voltage of an alternating current.",
    "Convolutional neural networks became popular after AlexNet won ImageNet in 2012.",
    "The transformer was introduced in the 2017 paper Attention Is All You Need.",
]

# The cross-encoder reads the query and each candidate together and scores their relevance
reranker = CrossEncoder("cross-encoder/ms-marco-MiniLM-L6-v2")
ranked = reranker.rank(query, candidates)

for hit in ranked:
    print(f"{hit['score']:6.2f}  {candidates[hit['corpus_id']]}")

質問に答えるパッセージは、スコア6.97で最下位から1位に上がり、次点候補の-4.48を大きく上回ります。電気変圧器についての文はクエリの重要な単語を共有していますが、スコアは-5.29です。

リランカーの種類#

  • クロスエンコーダー: MS MARCO MiniLMモデルやBAAIのbge-rerankerファミリーなど、関連性ラベルでファインチューニングされたコンパクトなTransformerです。ホスト型の再ランキングAPIとしても提供されています。
  • LLMリランカー: 大規模言語モデル(LLM)に候補のスコア付けやリスト全体の並べ替えを指示します。RankGPTは、ChatGPTとGPT-4が並べ替えたリストを出力してパッセージを再ランキングできることを示し、ChatGPTの順位付けを小規模な専用リランカーに蒸留しました。
  • Learning-to-rankモデル: レコメンデーションシステムやeコマースシステムでは、クリック履歴、価格、新しさなどの特徴量を使った勾配ブースティング木などのモデルで候補を再ランキングします。学習にはランキング目的関数を用い、LightGBMやXGBoostで利用できます。
  • セマンティック検索: 通常はバイエンコーダー検索器を使い、意味に基づいて検索します。リランカーは、その上に追加する任意の第2段階です。
  • ハイブリッド検索: キーワード検索とベクトル検索の結果リストを統合します。多くの場合、コンテンツを再度読み込まずに順位を組み合わせる逆順位融合を使います。統合後のリストには、リランカーを適用することがよくあります。
  • 知識蒸留: 高速な検索器を学習させ、低速なリランカーのスコアを模倣させることで、再ランキングの品質の一部を第1段階に移します。
  • 2段階物体検出器: 画像に対して同じパターンを適用します。領域提案段階で候補ボックスを提示し、第2段階で各ボックスのスコアを再計算して調整した後、非最大値抑制(NMS)で重複するボックスを除去します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう