RUC-NLPIR/FlashRAG

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

What it solves

FlashRAG is a Python toolkit designed to simplify the reproduction and development of Retrieval Augmented Generation (RAG) research. It addresses the difficulty of implementing and testing various RAG algorithms by providing a standardized framework, pre-processed datasets, and a library of state-of-the-art (SOTA) methods.

How it works

The toolkit provides a modular architecture consisting of essential RAG components: retrievers, rerankers, generators, and compressors. Users can assemble these components into pipelines—either using the provided SequentialPipeline for standard workflows or by inheriting from BasicPipeline to create custom logic. It supports diverse retrieval methods including dense retrieval (via Faiss), sparse retrieval (via BM25s or Pyserini), and sparse neural retrieval (via SPLADE). For LLM inference, it integrates tools like vLLM and FastChat to accelerate execution.

Who it’s for

It is primarily intended for AI researchers and developers who need to reproduce existing RAG benchmarks, test new RAG algorithms, or build custom RAG pipelines for complex tasks, including multi-hop reasoning and multimodal RAG.

Highlights

  • Extensive Algorithm Library: Includes 23 SOTA RAG algorithms and 7 reasoning-based methods for complex multi-hop tasks.
  • Comprehensive Benchmarking: Provides 36 pre-processed benchmark RAG datasets.
  • Multimodal Support: Supports multimodal RAG using MLLMs (e.g., Llava, Qwen, InternVL) and Clip-based retrievers.
  • User-Friendly Interface: Includes FlashRAG-UI for visual configuration and evaluation of RAG baselines.
  • Flexible Indexing: Supports multiple indexing backends for dense, sparse, and neural retrieval.

Related

  • Project
  • Project
  • Project
  • Project
  • Project