RUC-NLPIR/FlashRAG
⚡FlashRAG: A Python Toolkit for Efficient RAG Research (WWW2025 Resource)
⚡ FlashRAG – 효율적인 검색 증강 생성(RAG) 연구를 위한 파이썬 툴킷
무엇인가요 – FlashRAG은 최신 RAG 시스템의 재현, 벤치마킹, 확장에 필요한 모든 것을 통합한 오픈소스 파이썬 라이브러리입니다. 다음을 포함합니다:
- 36개의 사전 처리된 RAG 벤치마크 데이터셋.
- 23개의 준비된 RAG 알고리즘 (7개는 검색과 추론을 결합한 것).
- 검색기, 재정렬기, 생성기, 압축기 등을 플러그인 가능한 모듈식 프레임워크.
- 선택적 가속 백엔드 (vLLM, FastChat, Faiss).
- 파이프라인 구성 및 결과 시각화를 위한 가벼운 웹 UI (FlashRAG‑UI).
핵심 구성 요소
| 구성 요소 | 역할 | 주목할 만한 옵션 |
|---|---|---|
| 검색기 | 관련 문서를 찾음. 밀도형 (sentence‑transformers + Faiss), 스파스형 (Pyserini 또는 bm25s를 통한 BM25), 신경 스파스형 (Seismic를 통한 SPLADE)을 지원. 웹 검색 검색기 (Serper API)도 포함. |
|
| 재정렬기 | 검색된 목록을 재정렬. 쿼리-문서 쌍을 평가할 수 있는 어떤 모델로도 교체 가능. | |
| 생성기 | 최종 답변을 생성하는 LLM. OpenAI 모델, 다중 모달 LLM (LLaVA, Qwen, InternVL), vLLM를 통해 HuggingFace 모델을 지원. | |
| 압축기 | 긴 문서를 줄이기 (예: 외부 Chunkie 라이브러리로 청크화). | |
| 파이프라인 | 위의 구성 요소들을 조율. 간단한 SequentialPipeline과 사용자 정의 파이프라인용 기본 클래스 두 가지가 제공됨. |
주목할 만한 기능
- 광범위한 벤치마크 세트 – 36개의 데이터셋은 이미 HuggingFace/ModelScope에 사전 처리되어 호스팅되어 있어 즉시 평가를 시작할 수 있음.
- 23개의 최신 RAG 알고리즘 – RQRAG, Adaptive‑RAG, Spring, Trace, IRCoT, 그리고 새로운 추론 파이프라인 (R1‑Searcher, Search‑R1 등)을 한 번의 클릭으로 구성 가능.
- 추론 기반 파이프라인 – 체인 오브 사고 또는 그래프 기반 추론과 검색을 결합하여 HotpotQA와 같은 다단계 작업에서 약 60 F1을 달성.
- 다중 모달 지원 – CLIP 기반 시각 검색기로 검색하고, 시각-언어 모델로 생성.
- 속도 중심 도구 – 고처리량 LLM 추론을 위한 선택적
vllm, 밀도형 벡터 인덱스를 위한 Faiss, BM25용 가벼운bm25s백업. - 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개 데이터셋은 QA, 사실 확인, 다단계 추론을 커버하여 체계적인 평가를 위한 통합 솔루션.
설치 참고사항
- 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)에 종사하는 모든 사람에게 적합합니다. 데이터셋, 수십 개의 최신 방법, 빠른 인덱싱/검색 백엔드, 시각적 UI를 통합하여 논문 재현, 새로운 아이디어 벤치마킹, 프로덕션 수준의 RAG 파이프라인 구축이 간편합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트