RAG-Retrieval:统一高效的RAG检索微调与推理框架
RAG-Retrieval是一个开源的检索增强生成(Retrieval-Augmented Generation, RAG)框架,提供了全链路的RAG检索微调(train)和推理(infer)能力。该项目旨在统一和简化RAG检索模型的微调和使用流程,为构建高效RAG系统提供支持。
主要特性
-
支持微调多种RAG检索模型:
- 向量模型(embedding)
- 延迟交互模型(ColBERT)
- 交互式模型(cross-encoder)
-
统一的推理接口: 提供轻量级Python库rag-retrieval,统一调用不同RAG排序模型。
-
支持多种排序模型:
- Cross Encoder Reranker
- Decoder-Only LLM Reranker
-
长文本友好: 支持最大长度截断和切分取最大分值两种处理方式。
-
易于扩展: 可通过继承基类快速集成新的排序模型。
快速上手
安装:
pip install rag-retrieval
使用:
from rag_retrieval import Reranker
reranker = Reranker("BAAI/bge-reranker-base")
scores = reranker.compute_score(queries, docs)
实验结果
在多个MTEB Reranking任务上,RAG-Retrieval训练的模型取得了与主流开源模型相当甚至更优的效果。例如:
Model | T2Reranking | MMarcoReranking | CMedQAv1 | CMedQAv2 | Avg |
---|---|---|---|---|---|
bge-reranker-base | 67.28 | 35.46 | 81.27 | 84.10 | 67.03 |
rag-retrieval-reranker | 67.33 | 31.57 | 83.54 | 86.03 | 67.12 |
更多资源
RAG-Retrieval为构建高效的检索增强生成系统提供了全面的支持,从微调到推理的统一解决方案大大降低了开发门槛。无论是研究还是实际应用,RAG-Retrieval都是一个值得关注的RAG检索框架。