コードリポジトリ: MiniRAG: Towards Extremely Simple Retrieval-Augmented Generation
Tianyu Fan, Jingyuan Wang, Xubin Ren, Chao Huang* (*Correspondence)
MiniRAGは、異種グラフインデックスと軽量なトポロジー強化検索を通じて、小さなモデルでも優れたRAGパフォーマンスを実現する極めてシンプルな検索強化生成フレームワークです。
効率的で軽量な検索強化生成(RAG)システムの需要が高まる中、既存のRAGフレームワークに小型言語モデル(SLM)を導入する際の重大な課題が浮き彫りになっています。現在のアプローチは、SLMの限られた意味理解とテキスト処理能力のために深刻な性能低下に直面しており、リソースが限られたシナリオでの広範な採用に障害をもたらしています。これらの根本的な制限に対処するために、私たちは極めてシンプルで効率的な新しいRAGシステムであるMiniRAGを提案します。MiniRAGは、2つの重要な技術革新を導入しています:(1)テキストチャンクと名前付きエンティティを統一構造に組み合わせる意味認識異種グラフインデックスメカニズム、これにより複雑な意味理解への依存を減らします。(2)高度な言語能力を必要とせずにグラフ構造を活用して効率的な知識発見を実現する軽量なトポロジー強化検索アプローチ。私たちの広範な実験は、MiniRAGがSLMを使用してもLLMベースの方法と同等の性能を達成しながら、ストレージスペースの25%しか必要としないことを示しています。さらに、複雑なクエリを持つ現実的なオンデバイスシナリオで軽量RAGシステムを評価するための包括的なベンチマークデータセットLiHua-Worldも提供します。
MiniRAGは、異種グラフインデックスと軽量なグラフベースの知識検索という主要なコンポーネントに基づいて構築された簡素化されたワークフローを採用しています。このアーキテクチャは、オンデバイスRAGシステムが直面する独自の課題に対処し、効率と効果の両方を最適化します。
- ソースからインストール(推奨)
cd MiniRAG
pip install -e .
- PyPIからインストール(私たちのコードはLightRAGに基づいているため、直接インストールできます)
pip install lightrag-hku
- すべてのコードは
./reproduce
にあります。 - 必要なデータセットをダウンロードします。
- データセットを
./dataset
ディレクトリに配置します。 - 注:LiHua-Worldデータセットは
./dataset/LiHua-World/data/
にLiHuaWorld.zip
として既に配置されています。他のデータセットを使用したい場合は、./dataset/xxx
に配置できます。
次に、以下のbashコマンドを使用してデータセットをインデックスします:
python ./reproduce/Step_0_index.py
python ./reproduce/Step_1_QA.py
または、./main.py
のコードを使用してMiniRAGを初期化します。
モデル | NaiveRAG | GraphRAG | LightRAG | MiniRAG | ||||
---|---|---|---|---|---|---|---|---|
acc↑ | err↓ | acc↑ | err↓ | acc↑ | err↓ | acc↑ | err↓ | |
LiHua-World | ||||||||
Phi-3.5-mini-instruct | 41.22% | 23.20% | / | / | 39.81% | 25.39% | 53.29% | 23.35% |
GLM-Edge-1.5B-Chat | 42.79% | 24.76% | / | / | 35.74% | 25.86% | 52.51% | 25.71% |
Qwen2.5-3B-Instruct | 43.73% | 24.14% | / | / | 39.18% | 28.68% | 48.75% | 26.02% |
MiniCPM3-4B | 43.42% | 17.08% | / | / | 35.42% | 21.94% | 51.25% | 21.79% |
gpt-4o-mini | 46.55% | 19.12% | 35.27% | 37.77% | 56.90% | 20.85% | 54.08% | 19.44% |
MultiHop-RAG | ||||||||
Phi-3.5-mini-instruct | 42.72% | 31.34% | / | / | 27.03% | 11.78% | 49.96% | 28.44% |
GLM-Edge-1.5B-Chat | 44.44% | 24.26% | / | / | / | / | 51.41% | 23.44% |
Qwen2.5-3B-Instruct | 39.48% | 31.69% | / | / | 21.91% | 13.73% | 48.55% | 33.10% |
MiniCPM3-4B | 39.24% | 31.42% | / | / | 19.48% | 10.41% | 47.77% | 26.88% |
gpt-4o-mini | 53.60% | 27.19% | 60.92% | 16.86% | 64.91% | 19.37% | 68.43% | 19.41% |
表中、/はその方法が効果的な応答を生成するのに苦労していることを意味します。
すべてのコードは./reproduce
ディレクトリにあります。
├── dataset
│ └── LiHua-World
│ ├── README.md
│ ├── README_CN.md
│ ├── data
│ │ ├── LiHuaWorld.zip
│ └── qa
│ ├── query_set.csv
│ └── query_set.json
├── minirag
│ ├── kg
│ │ ├── __init__.py
│ │ ├── neo4j_impl.py
│ │ └── oracle_impl.py
│ ├── __init__.py
│ ├── base.py
│ ├── llm.py
│ ├── minirag.py
│ ├── operate.py
│ ├── prompt.py
│ ├── storage.py
│ └── utils.py
├── reproduce
│ ├── Step_0_index.py
│ └── Step_1_QA.py
├── LICENSE
├── main.py
├── README.md
├── README_CN.md
├── requirements.txt
├── setup.py
LiHua-Worldは、仮想ユーザーLiHuaの1年間のチャット記録を含む、オンデバイスRAGシナリオ専用に設計されたデータセットです。このデータセットには、シングルホップ、マルチホップ、およびサマリーの3種類の質問が含まれており、各質問には手動で注釈が付けられた回答とサポート文書がペアになっています。詳細については、LiHua-WorldデータセットのREADMEを参照してください。
MiniRAGプロジェクトのすべての貢献者に感謝します!
私たちのフレームワークとコードリポジトリの基礎となる関連作業については、nano-graphragおよびLightRAGを参照してください。素晴らしい仕事に感謝します。
@article{fan2025minirag,
title={MiniRAG: Towards Extremely Simple Retrieval-Augmented Generation},
author={Fan, Tianyu and Wang, Jingyuan and Ren, Xubin and Huang, Chao},
journal={arXiv preprint arXiv:2501.06713},
year={2025}
}
私たちの仕事に興味を持っていただき、ありがとうございます!