castorini/rank_llm

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

What it solves

RankLLM 提供了一套全面的重排序器套件,用以提升搜尋與檢索系統的精準度。它允許使用者將第一階段檢索器(如 BM25)檢索到的候選文件集進行重新排序,並使用先進的語言模型進行更精確的排序,確保最相關的文件位居最前列。

How it works

該專案實作了幾種重排序策略:

  • Pointwise: 使用 MonoT5 和 MonoELECTRA 等模型進行個別文件評分。
  • Pairwise: 使用 DuoT5 等模型進行成對文件比較。
  • Listwise: 使用 RankZephyr 和 RankVicuna(包括 RankGPT 和 RankGemini 等專有選項)同時處理多個文件以決定最佳排序。

它支援多種後端,包括用於開源模型的 vLLM 以及託管提供商的 API。為了提高效率,它可以使用模型的第一個 token 邏輯值(logits)來進行重排序。

Who it’s for

此工具是為正在進行資訊檢索(IR)與 RAG 流程開發的開發者與研究人員設計的,他們需要高品質的重排序來提升檢索準確度。

Highlights

  • Diverse Model Zoo: 包含廣泛的逐點、成對與列表式模型(例如 RankZephyr, LiT5, MonoT5)。
  • Flexible Integration: 支援本地 Hugging Face 模型與雲端 API(OpenAI, OpenRouter, Gemini)。
  • End-to-End Workflow: 提供 CLI 與 Python API,用於檢索、重排序與評估(使用 NDCG 等指標)。
  • Efficiency Optimizations: 支援 vLLM 以實現更快的推論,並透過第一個 token 邏輯值重排序來降低延遲。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案