RUC-NLPIR/FlashRAG · 上手攻略

  • 仓库:RUC-NLPIR/FlashRAG
  • 链接:https://github.com/RUC-NLPIR/FlashRAG
  • 分类:rag / llm-research-toolkit
  • 作者:Tom
  • 更新:2026-08-10

是什么 / 解决什么问题

FlashRAG 是中国人民大学 NLPIR 实验室开源的 RAG(检索增强生成)研究 Python 工具包,已被 WWW 2025 Resource Track 接收。

核心理念:RAG 研究门槛高——需要分别找数据集、实现各算法、搭评估流程,碎片化严重。FlashRAG 提供一站式解决方案:36 个预处理基准数据集 + 23 个 SOTA RAG 算法(含 7 个推理增强方法),开箱即用,支持自定义流水线组装。

关键词:模块化 RAG 框架推理增强管道多模态 RAG高效预处理可视化 UI


快速安装

pip 安装(推荐,最简方式)

pip install flashrag-dev --pre

# 可选:安装全部额外依赖(含 vLLM、sentence-transformers、pyserini)
pip install flashrag[full]

源码安装(需 Python 3.10+)

git clone https://github.com/RUC-NLPIR/FlashRAG.git
cd FlashRAG
pip install -e .

可选依赖(按需安装)

# vLLM 加速推理
pip install vllm>=0.4.1

# sentence-transformers(嵌入模型)
pip install sentence-transformers

# pyserini(BM25 检索)
pip install pyserini

# Faiss 向量索引(CPU)
conda install -c pytorch faiss-cpu=1.8.0

# Faiss GPU 版本(需 CUDA 11.4/12.1 + Linux x86_64)
conda install -c pytorch -c nvidia faiss-gpu=1.8.0

⚠️ Faiss 通过 pip 安装存在兼容性问题,官方推荐使用 conda 安装。


核心用法

1. 构建向量索引

将语料库转换为 jsonl 格式(每行一个文档):

{"id": "0", "contents": "文档内容..."}
{"id": "1", "contents": "文档内容..."}

使用内置脚本构建索引:

python -m flashrag.retriever.index_builder \
  --retrieval_method e5 \
  --model_path /model/e5-base-v2/ \
  --corpus_path indexes/sample_corpus.jsonl \
  --save_dir indexes/ \
  --use_fp16 \
  --max_length 512 \
  --batch_size 256 \
  --pooling_method mean \
  --faiss_type Flat

E5 和 BGE 模型会自动附加指令;其他嵌入模型需手动指定 --instruction

2. 运行标准 RAG 流水线

from flashrag import FlashRAG

# 初始化 RAG pipeline
rag = FlashRAG(
    retriever_type="e5",
    generator_type="openai",
    model_path="gpt-4o",
    index_path="indexes/",
)

# 执行查询
result = rag.query("你的问题")
print(result)

3. 使用预置 SOTA 基线方法

官方提供 23 个预实现算法,包括: - 标准 RAG / RR(Corrective RAG) - REPLUG / SELF-RAG(检索增强解码) - HyDE(假设文档增强) - FLARE(主动检索) - Active RAG / Adaptive-RAG(自适应) - RQRAG(检索增强推理链) - IRCoT(链式推理检索) - Trace(知识图谱增强) - 推理增强管道:Search-o1、R1-Searcher、ReSearch

配置示例(使用 BM25 + vLLM):

python -m flashrag.retriever.index_builder \
  --retrieval_method bm25 \
  --bm25_backend bm25s \
  --corpus_path corpus.jsonl \
  --save_dir indexes/

4. FlashRAG-UI 可视化界面

2025-01-12 新增功能,无需写代码即可配置和运行 RAG 方法:

# 启动 UI(需先完成 pip 安装)
python -m flashrag.ui.app
# 访问 http://localhost:7860

支持:选择 RAG 方法 → 选择数据集 → 配置参数 → 一键运行评估 → 可视化结果对比。

5. 多模态 RAG(2025-02-24 新增)

# 多模态生成器
generator = FlashRAG.load_generator(
    model_type="multimodal",
    model_path="llava-1.5-7b",
)

# 多模态检索器(Clip 架构)
retriever = FlashRAG.load_retriever(
    retriever_type="clip",
    model_path="clip-vit-base-patch32",
)

支持 Llava、Qwen、InternVL 等 MLLM,以及各类 Clip 架构多模态检索器。


典型适用场景

场景 适用原因
复现 RAG 论文算法 23 个 SOTA 方法直接配置跑,节省 80% 复现时间
新 RAG 算法开发 模块化组件(Retriever/Reranker/Generator/Compressor)可自由组合
多跳推理问答 IRCoT + R1-Searcher 等推理增强管道支持复杂多跳
多模态 RAG 研究 内置 Llava/Qwen/InternVL + Clip 检索器
RAG 基准评测 36 个预处理数据集 + FlashRAG-UI 一键评测对比
领域特定 RAG DomainRAG 数据集(人民大学招生数据,7 类任务)
中国硬件平台 官方支持 Paddle(PaddlePaddle)和 MindSpore 版本

坑与注意

  1. Python 版本:要求 Python 3.10+,低于此版本会有兼容性问题。

  2. Faiss 安装:pip 安装 Faiss 有兼容性问题,必须用 condaconda install -c pytorch faiss-cpu=1.8.0faiss-gpu=1.8.0。Linux x86_64 独占 GPU 版本。

  3. HuggingFace 数据集链接失效:2024-07-17 因 HF 问题原始链接失效,现已更新到新链接(https://huggingface.co/datasets/RUC-NLPIR/FlashRAG_datasets/),如遇 404 改用新链接。

  4. BM25 后端:README 原文提到"基于 Pyserini 的检索器将在未来版本中被弃用",现推荐使用更轻量的 bm25s 包(配置 bm25_backend: bm25s)。

  5. 多检索器聚合:支持多个 Retriever 组合(Multi-Retriever),需参考 docs/original_docs/multi_retriever_usage.md

  6. vLLM 版本:README 标注 vllm>=0.4.1,⚠️ 未验证当前(2026 年)vLLM 最新版本是否兼容,建议用 pip show vllm 确认实际安装版本号。

  7. FlashRAG-UI 稳定性:UI 为 2025-01 新增功能,生产研究场景建议仍用 Python API,UI 适合快速探索。

  8. Chunkie 分块:2025-01-07 集成了 Chunkie 库,支持 token/句子/语义等多种分块策略,文档见 docs/original_docs/chunk-doc-corpus.md


与同类对比

维度 FlashRAG LangChain LlamaIndex RAGflow
定位 RAG 研究工具包 LLM 应用框架 LLM 数据框架 RAG 产品
内置数据集 36 个
SOTA 算法 23 个 有限 有限
推理增强管道 ✅ 7 个 部分 部分
多模态 RAG
模块化 Retriever/Reranker/Generator/Compressor Chain 组件 Node 组件 Pipeline
可视化 UI ✅ FlashRAG-UI
研究导向 ✅ Benchmark 评测 部分
中国硬件 Paddle / MindSpore

核心差异:FlashRAG 是目前 RAG 研究领域覆盖算法和数据集最全的开源工具包;对比 LangChain/LlamaIndex 偏向应用开发,FlashRAG 专注研究复现与基准评测,是写 RAG 论文实验的利器。


一句话推荐结论

做 RAG 研究想快速复现 SOTA 算法、做多数据集基准评测——FlashRAG 是目前开源领域数据集最全、算法覆盖最广的研究级工具包,WWW 2025 背书,值得入手。


来源:GitHub README(https://github.com/RUC-NLPIR/FlashRAG)、README_zh.md、arXiv 论文(arXiv:2405.13576)、HuggingFace 数据集页、WWW 2025 论文 PDF、Web Search 补充