Repolode
NovaSearch-Team

NovaSearch-Team/RAG-Retrieval

面向 RAG 检索模型的端到端训练、推理与蒸馏代码,覆盖向量嵌入、ColBERT 和重排序模型。

Star
1,137
Fork
88
未关闭 Issue
3
最近提交
2个月前

这是什么?

RAG-Retrieval 是一套用于微调、推理和蒸馏检索增强生成(RAG)中检索组件的代码库。它支持对 BERT 类和 LLM 类的嵌入模型、ColBERT 类的延迟交互模型,以及 BERT 类和 LLM 类的重排序模型进行微调,兼容 bge、bce、gte 等常见开源模型系列。

推理方面,项目提供了轻量的 Python 包 rag-retrieval,用统一接口调用不同的重排序模型。长文档可以通过最大长度截断,或切分后取最高分两种方式处理,新增排序模型只需继承基类并实现相应方法。

项目还支持嵌入模型与重排序模型的蒸馏,可将较大的 LLM 类模型的能力迁移到较小模型上,例如 0.5B 参数的 LLM 或 BERT-base。训练可借助 DeepSpeed 和 FSDP 进行多卡训练,嵌入模型部分实现了 MRL 以支持降维向量输出。

核心功能

  • 01支持对 BERT 类、LLM 类嵌入模型,ColBERT 模型和重排序模型进行微调。
  • 02提供统一的 Python 包,用同一接口调用不同的重排序模型。
  • 03长文档可选择最大长度截断,或切分后取最高分。
  • 04可将较大的 LLM 类嵌入或重排序模型蒸馏到较小模型。
  • 05实现 MRL 损失函数,支持降维的嵌入向量。
  • 06支持借助 DeepSpeed 和 FSDP 进行多 GPU 训练。

适用场景

  • 在特定领域的检索数据上微调开源嵌入模型。
  • 通过统一的 Python 接口为 RAG 流程增加重排序环节。
  • 将大型 LLM 重排序模型蒸馏为较小的 BERT 模型,以降低推理延迟。
  • 在自有数据集上尝试 ColBERT 式的延迟交互检索。

快速上手

  1. 1

    使用 Python 3.8 创建 conda 环境

    conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval
  2. 2

    安装用于重排序推理的 PyPI 包

    pip install rag-retrieval

使用前须知

  • 训练环境需要先手动安装与本地 CUDA 兼容的 PyTorch,然后再安装依赖。
  • 训练代码按模型类型划分在不同子目录中,每种流程需要单独阅读对应说明。

收录于专题

标签

常见问题

RAG-Retrieval 是什么?
面向 RAG 检索模型的端到端训练、推理与蒸馏代码,覆盖向量嵌入、ColBERT 和重排序模型。 RAG-Retrieval 是一套用于微调、推理和蒸馏检索增强生成(RAG)中检索组件的代码库。它支持对 BERT 类和 LLM 类的嵌入模型、ColBERT 类的延迟交互模型,以及 BERT 类和 LLM 类的重排序模型进行微调,兼容 bge、bce、gte 等常见开源模型系列。
RAG-Retrieval 可以免费使用吗?用的什么许可证?
RAG-Retrieval 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
RAG-Retrieval 还在维护吗?
半年内有更新。RAG-Retrieval 最近一次提交是在 2026年8月28日。
RAG-Retrieval 适合用来做什么?
在特定领域的检索数据上微调开源嵌入模型。 通过统一的 Python 接口为 RAG 流程增加重排序环节。 将大型 LLM 重排序模型蒸馏为较小的 BERT 模型,以降低推理延迟。 在自有数据集上尝试 ColBERT 式的延迟交互检索。
RAG-Retrieval 怎么安装和运行?
使用 Python 3.8 创建 conda 环境: conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval 安装用于重排序推理的 PyPI 包: pip install rag-retrieval
在哪里获取 RAG-Retrieval?
源代码和安装说明在 GitHub 上:https://github.com/NovaSearch-Team/RAG-Retrieval

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目