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 管道變得簡單直接。
相關
- 專案
- 專案
- 專案
- 專案
- 專案