castorini/rank_llm

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

它解决了什么问题

RankLLM 提供了一套全面的重排序模型,用于提升搜索和检索系统的精度。它允许用户对由第一阶段检索器(如 BM25)检索出的一组候选文档进行重新排序,利用先进的语言模型更准确地排列顺序,确保最相关的文档位于顶部。

它如何工作

该项目实现了多种重排序策略:

  • 点对点:如 MonoT5 和 MonoELECTRA 等模型对文档进行单独评分。
  • 成对:如 DuoT5 等模型对文档进行成对比较。
  • 列表级:如 RankZephyr 和 RankVicuna(包括专有选项如 RankGPT 和 RankGemini)可一次性处理多个文档,以确定最佳排序顺序。

它支持多种后端,包括用于开源模型的 vLLM 和用于托管服务提供商的 API。为了提高效率,它还可以仅使用模型的首个 token logits 进行重排序。

适用人群

此工具专为从事信息检索(IR)和 RAG 流水线的开发者和研究人员设计,他们需要高质量的重排序来提升检索准确性。

主要亮点

  • 丰富的模型库:包含广泛的点对点、成对和列表级模型(例如 RankZephyr、LiT5、MonoT5)。
  • 灵活集成:支持本地 Hugging Face 模型和云端 API(OpenAI、OpenRouter、Gemini)。
  • 端到端工作流:提供 CLI 和 Python API,支持检索、重排序和评估(使用 NDCG 等指标)。
  • 效率优化:支持 vLLM 以实现更快的推理,以及首个 token logits 重排序以降低延迟。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目