Python toolkit for reproducible information retrieval research
Top 62.3% on sourcepulse
RankLLM is a Python toolkit for reproducible information retrieval research, focusing on listwise reranking of documents. It supports a variety of reranking models, including open-source LLMs compatible with vLLM, SGLang, and TensorRT-LLM, as well as proprietary models like RankGPT and RankGemini. The toolkit aims to streamline the process of evaluating and comparing reranking strategies for researchers and practitioners in information retrieval.
How It Works
RankLLM facilitates end-to-end retrieval and reranking pipelines. It integrates with various retrieval methods (e.g., BM25, SPLADE) and offers a flexible reranking interface. Key to its design is support for efficient inference, including reranking using only first-token logits and compatibility with optimized LLM serving frameworks like vLLM, SGLang, and TensorRT-LLM for improved throughput.
Quick Start & Requirements
pip install -r requirements.txt
(after creating a conda environment with Python 3.10 and activating it).flashinfer
), TensorRT-LLM.src/rank_llm/demo
for additional samples.Highlighted Details
Maintenance & Community
The project is actively maintained, with contributions from Ronak Pradeep, Sahel Sharifymoghaddam, and Jimmy Lin. Citations for key models and methodologies are provided, indicating active research and development.
Licensing & Compatibility
The repository's license is not explicitly stated in the README. However, it relies on and cites models and code from other projects, suggesting potential licensing considerations for commercial use or closed-source integration.
Limitations & Caveats
RankLLM is explicitly not compatible with macOS. The requirement for JDK 21 is strict, with JDK 11 being unsupported. Some advanced features or model backends (like SGLang and TensorRT-LLM) require additional installations and configurations.
1 day ago
1 week