由因斯布鲁克大学开发的模块化Python工具包,整合信息检索、重排序与RAG生成功能,内置40+预处理数据集,支持一行代码构建完整RAG管道。
项目概述#
Rankify 是由因斯布鲁克大学数据科学团队(DataScienceUIBK)开发的开源 Python 工具包,旨在解决信息检索(IR)与 RAG 领域工具链碎片化的问题。该项目将文档检索、重排序与检索增强生成(RAG)统一在单一框架中,当前版本为 v0.1.4,采用 Apache-2.0 开源协议。
核心能力#
检索能力#
- 稀疏检索:BM25
- 密集检索:DPR, ANCE, ColBERT, BGE, Contriever, BPR, HYDE
- SOTA 检索器:SFR, E5, GritLM, M2, Nomic, Instructor, RaDeR, ReasonIR, BGE-Reasoner, ReasonEmbed, DiverRetriever
- 预构建索引:Wikipedia 和 MS MARCO 语料库
重排序能力#
集成 24+ 先进重排序模型:
- Cross-Encoders
- RankGPT / RankGPT-API
- MonoT5, MonoBert, RankT5
- LiT5Score, LiT5Distill
- Vicuna Reranker, Zephyr Reranker
- FlashRank, InRanker
- Transformer Reranker(bge-reranker, mxbai-rerank, gte-multilingual 等)
- API 服务(Voyage, Jina, Mixedbread.ai)
RAG 生成#
- 生成策略:Zero-shot, Basic-RAG, Chain-of-Thought-RAG, FiD (Fusion-in-Decoder), In-Context Learning RALM
- LLM 后端:Hugging Face, vLLM, LiteLLM, OpenAI
数据集与评估#
- 40+ 预检索基准数据集:NQ, TriviaQA, HotpotQA, FEVER, ELI5, PopQA, Musique, StrategyQA, BoolQ, WebQ 等
- 每个数据集包含 1,000 个预检索文档
- 评估指标:Recall@k, Precision@k, MRR, nDCG, MAP
- RAG 评估:集成 RAGAS 框架
架构设计#
模块化架构#
rankify.retrievers:多种检索器实现rankify.models.reranking:重排序模型统一接口rankify.generator:RAG 生成器rankify.dataset:数据集管理和加载rankify.metrics:评估指标rankify.agent:AI 辅助模型选择(RankifyAgent)rankify.server:REST API 服务器rankify.integrations:框架集成
Pipeline API#
支持一行代码创建完整管道:
from rankify import pipeline
# 完整 RAG 管道
rag = pipeline("rag", retriever="bge", reranker="flashrank", generator="basic-rag")
answers = rag("What is machine learning?", documents)
# 其他管道类型
pipeline("search") # 仅文档检索
pipeline("rerank") # 检索 + 重排序
部署方式#
REST API 服务#
rankify serve --port 8000 --retriever bge --reranker flashrank
Python API 部署#
from rankify.server import RankifyServer
server = RankifyServer(retriever="bge", reranker="flashrank")
server.start(port=8000)
自定义索引构建#
rankify-index index data/wikipedia_10k.jsonl --retriever bm25 --output ./indices
框架集成#
- LangChain
- LlamaIndex
- Gradio 交互式界面(Web Playground)
安装方式#
# 环境准备
conda create -n rankify python=3.10
conda activate rankify
# PyTorch 安装
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124
# 完整安装
pip install "rankify[all]"
# 可选模块
pip install "rankify[retriever]" # 检索功能
pip install "rankify[reranking]" # 重排序功能
pip install "rankify[rag]" # RAG 端点
适用场景#
- 学术研究:信息检索和重排序方法的比较研究
- RAG 系统基准测试
- 问答系统原型开发
- 企业级文档检索与排序
- 知识库问答系统构建
- 多模型性能对比评估
注意事项#
- 完整数据集约 1.48 TB,对存储与带宽有较高要求
- 部分检索器(如 ColBERT)需要特定的编译环境依赖
- 建议使用 PyTorch 2.5.1 和 Python 3.10+
作者团队#
Abdelrahman Abdallah, Bhawna Piryani, Jamshid Mozafari, Mohammed Ali, Adam Jatowt(因斯布鲁克大学)