RUC-NLPIR/FlashRAG

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

해결하는 문제

FlashRAG은 검색 증강 생성(RAG) 연구의 재현과 개발을 간소화하기 위해 설계된 Python 툴킷입니다. 다양한 RAG 알고리즘을 구현하고 테스트하는 어려움을 해결하기 위해 표준화된 프레임워크, 사전 처리된 데이터셋, 그리고 최첨단(SOTA) 방법의 라이브러리를 제공합니다.

작동 방식

이 툴킷은 검색기(retrievers), 재순서기(rerankers), 생성기(generators), 압축기(compressors)와 같은 핵심 RAG 구성 요소로 구성된 모듈식 아키텍처를 제공합니다. 사용자는 제공된 SequentialPipeline를 사용해 표준 워크플로우를 구성하거나, BasicPipeline를 상속하여 사용자 정의 로직을 구현할 수 있습니다. 밀도 기반 검색(Faiss를 통해), 스파스 검색(BM25s 또는 Pyserini를 통해), 스파스 신경 검색(SPLADE를 통해) 등 다양한 검색 방법을 지원합니다. LLM 추론에는 vLLM과 FastChat과 같은 도구를 통합하여 실행을 가속화합니다.

대상 사용자

주로 기존 RAG 벤치마크를 재현하거나, 새로운 RAG 알고리즘을 테스트하거나, 다단계 추론 및 멀티모달 RAG를 포함한 복잡한 작업을 위한 맞춤형 RAG 파이프라인을 구축해야 하는 AI 연구자 및 개발자에게 적합합니다.

주요 특징

  • 풍부한 알고리즘 라이브러리: 23개의 최첨단 RAG 알고리즘과 복잡한 다단계 작업을 위한 7개의 추론 기반 방법 포함.
  • 포괄적인 벤치마킹: 36개의 사전 처리된 벤치마크 RAG 데이터셋 제공.
  • 멀티모달 지원: MLLM(예: Llava, Qwen, InternVL)과 Clip 기반 검색기로 멀티모달 RAG를 지원.
  • 사용자 친화적 인터페이스: RAG 베이스라인의 시각적 구성과 평가를 위한 FlashRAG-UI 포함.
  • 유연한 인덱싱: 밀도, 스파스, 신경 검색을 위한 다양한 인덱싱 백엔드 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트