RUC-NLPIR/FlashRAG
⚡FlashRAG: A Python Toolkit for Efficient RAG Research (WWW2025 Resource)
⚡ FlashRAG – 高效检索增强生成(RAG)研究的 Python 工具包
是什么 – FlashRAG 是一个开源 Python 库,集成了复现、基准测试和扩展最先进 RAG 系统所需的一切。它包含:
- 36 个预处理的 RAG 基准数据集。
- 23 个现成的 RAG 算法(包括 7 个结合检索与推理的方法)。
- 可插拔的模块化框架,支持检索器、重排序器、生成器和压缩器。
- 可选的加速后端,如 vLLM、FastChat 和 Faiss。
- 轻量级 Web UI(FlashRAG‑UI),用于配置管道和可视化结果。
核心组件
| 组件 | 作用 | 特色选项 |
|---|---|---|
| 检索器 | 找到相关文档。支持密集型(sentence‑transformers + Faiss)、稀疏型(Pyserini 或 bm25s 的 BM25)、神经稀疏型(Seismic 的 SPLADE)。还包含 Web 搜索检索器(Serper API)。 |
|
| 重排序器 | 重新排序检索结果;可替换为任何能对查询-文档对打分的模型。 | |
| 生成器 | 生成最终答案的 LLM。支持 OpenAI 模型、多模态 LLM(LLaVA、Qwen、InternVL)以及通过 vLLM 支持的任意 HuggingFace 模型。 | |
| 压缩器 | 缩短长文档(例如使用外部 Chunkie 库进行分块)。 | |
| 管道 | 协调上述组件。提供两种内置管道:简单的 SequentialPipeline 和用于自定义管道的基类。 |
亮点功能
- 全面的基准测试套件 – 36 个数据集已预处理并托管在 HuggingFace/ModelScope 上,可立即开始评估。
- 23 个 SOTA RAG 算法 – 一键配置 RQRAG、Adaptive‑RAG、Spring、Trace、IRCoT 以及新推理管道(R1‑Searcher、Search‑R1 等)。
- 基于推理的管道 – 将思维链或图推理与检索结合,在 HotpotQA 等多跳任务上达到约 60 F1。
- 多模态支持 – 使用基于 CLIP 的视觉检索器进行检索,使用视觉-语言模型进行生成。
- 速度优先工具 – 可选
vllm实现快速 LLM 推理,Faiss 用于密集向量索引,bm25s作为 BM25 的轻量级回退。 - UI – 浏览器界面支持拖拽组件、运行实验并查看评估指标,无需编写代码。
快速开始(Python)
# 安装开发包(包含可选依赖)
pip install flashrag-dev[full] # 或 `pip install flashrag-dev --pre`
from flashrag.config import Config
from flashrag.pipeline import SequentialPipeline
from flashrag.utils import get_dataset
# 加载配置文件(YAML 或字典),指向数据集并选择组件
cfg = Config(config_file_path='my_config.yaml')
dataset = get_dataset(cfg)['test']
pipe = SequentialPipeline(cfg)
results = pipe.run(dataset, do_eval=True)
results 对象包含每个问题的答案、检索到的段落以及评估分数(如 EM、F1)。
何时使用 FlashRAG?
- 研究 – 复现已发表的 RAG 论文,将新想法与统一基准套件对比,或对新型检索器/生成器组合进行基准测试。
- 原型开发 – 仅用几行代码即可组装自定义 RAG 管道(如多模态检索 + LLM)。
- 教育 – UI 和丰富文档使学生能轻松探索各组件对性能的影响。
- 基准测试 – 内置的 36 个数据集涵盖问答、事实核查和多跳推理,提供系统性评估的一站式解决方案。
安装说明
- 需要 Python ≥ 3.10。
- Faiss 必须通过 conda 安装(CPU 或 GPU 版本),因为 pip 轮子不具有普遍兼容性。
- 可选扩展:
vllm:用于高吞吐量 LLM 推理。sentence‑transformers:用于密集检索。pyserini:若偏好原始 BM25 实现。
- 使用 SPLADE(神经稀疏)需 Rust 工具链和
pyseismic‑lsr包。
文档与资源
- 论文:FlashRAG: A Python Toolkit for Efficient RAG Research (arXiv:2405.13576) – 被 ACM WWW 2025 Resource Track 接受。
- 数据集:托管在 HuggingFace 和 ModelScope(36 个预处理分割)。
- UI 演示:https://github.com/user-attachments/assets/8ca00873-5df2-48a7-b853-89e7b18bc6e9
- GitHub:https://github.com/RUC-NLPIR/FlashRAG(MIT 许可证)
TL;DR
FlashRAG 是一个开箱即用、可扩展的工具包,适用于所有从事检索增强生成(RAG)工作的人员。它集成了数据集、数十种 SOTA 方法、快速索引/检索后端以及可视化 UI,使复现论文、基准测试新想法或构建生产级 RAG 管道变得简单直接。
相关
- 项目
- 项目
- 项目
- 项目
- 项目