RUC-NLPIR/FlashRAG

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

⚡ FlashRAG – 高効率な検索拡張生成(RAG)研究のためのPythonツールキット

何であるか – FlashRAGは、最先端のRAGシステムの再現、ベンチマーク、拡張に必要なすべてを統合したオープンソースのPythonライブラリです。以下を同梱しています:

  • 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(シンプル)とカスタムパイプライン用のベースクラスの2種類が提供。

注目機能

  • 広範なベンチマークスイート – 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パッケージが必要。

ドキュメントとリソース


TL;DR

FlashRAGは、即時利用可能で拡張性のあるツールキットです。検索拡張生成(RAG)に取り組むすべての人にとって最適。データセット、数十の最先端手法、高速インデックス/検索バックエンド、視覚的なUIを統合しており、論文の再現、新しいアイデアのベンチマーク、プロダクションレベルのRAGパイプラインの構築が容易になります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト