RUC-NLPIR/FlashRAG

⚡FlashRAG: A Python Toolkit for Efficient RAG Research (WWW2025 Resource)

⚡ FlashRAG – 高效檢索增強生成(RAG)研究的 Python 工具包

是什麼 – FlashRAG 是一個開源 Python 庫,整合了重現、基準測試與擴展最尖端 RAG 系統所需的一切。它包含:

  • 36 個預處理的 RAG 基準資料集。
  • 23 個現成的 RAG 算法(包含 7 個結合檢索與推理的方法)。
  • 可插拔的模組化框架,支援檢索器、重排序器、生成器與壓縮器。
  • 可選的加速後端,如 vLLMFastChatFaiss
  • 輕量級 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 套件。

文件與資源


TL;DR

FlashRAG 是一個開箱即用、可擴展的工具包,適用於所有從事檢索增強生成(RAG)工作的人。它整合了資料集、數十種 SOTA 方法、快速索引/檢索後端以及視覺化 UI,使重現論文、基準測試新想法或建構生產級 RAG 管道變得簡單直接。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案