castorini/rank_llm

RankLLM is a Python toolkit for reproducible information retrieval research using rerankers, with a focus on listwise reranking.

解決する課題

RankLLMは、検索および取得システムの精度を向上させるための包括的なリランカー群を提供します。第1段階のレトリバー(BM25など)によって取得された候補セットを取得し、高度な言語モデルを使用してより正確に並べ替えることで、最も関連性の高いドキュメントが上位に来るようにします。

仕組み

このプロジェクトはいくつかのリランキング戦略を実装しています:

  • Pointwise: MonoT5やMonoELECTRAなどのモデルは、ドキュメントを個別にスコアリングします。
  • Pairwise: DuoT5などのモデルは、ドキュメントをペアで比較します。
  • Listwise: RankZephyrやRankVicuna(RankGPTやRankGeminiなどのプロプライエタリなオプションを含む)などのモデルは、複数のドキュメントを一度に処理して最適な順序を決定します。

オープンソースモデル向けのvLLMや、ホスト型プロバイダー向けのAPIなど、さまざまなバックエンドをサポートしています。効率を高めるために、モデルの最初のトークンのロジットのみを使用してリランキングを実行することもできます。

対象者

このツールは、情報検索(IR)およびRAGパイプラインに取り組んでおり、取得精度を向上させるために高品質なリランキングを必要とする開発者や研究者向けに設計されています。

ハイライト

  • 多様なモデル動物園: Pointwise、Pairwise、Listwiseの幅広いモデル(RankZephyr、LiT5、MonoT5など)が含まれています。
  • 柔軟な統合: ローカルのHugging FaceモデルとクラウドAPI(OpenAI、OpenRouter、Gemini)の両方をサポートしています。
  • エンドツーエンドのワークフロー: 取得、リランキング、評価(NDCGなどの指標を使用)のためのCLIとPython APIを提供します。
  • 効率の最適化: より高速な推論のためのvLLMサポートと、レイテンシを削減するための最初のトークン・ロジット・リランキングをサポートしています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト