この記事は2025-01-19 14:53に更新されました。内容の一部は一刻を争うものですので、無効な場合はメッセージを残してください!
はじめに
MiniRAGは、極めてシンプルなRAG(Retrieval Augmented Generation)フレームワークであり、異種グラフインデックスと軽量トポロジー拡張検索により、小さなモデルでも優れたRAG性能を達成することを目的としている。香港大学(HKUDS)のデータサイエンス研究所によって開発されたこのプロジェクトは、既存のRAGフレームワークにおいて小規模言語モデル(SLM)が直面する性能低下の問題を解決することに焦点を当てている。miniRAGは、テキストチャンクと名前付きエンティティを単一の統一された構造に結合することで、複雑な意味理解への依存を減らし、効率的な知識発見のためにグラフ構造を利用する。このフレームワークは、大規模言語モデル(LLM)アプローチの25%の記憶領域だけで同等の性能を達成する。
機能一覧
- 異種グラフインデックス作成メカニズム:テキストブロックと名前付き実体を組み合わせることで、複雑な意味理解への依存を減らす。
- 軽量トポロジー拡張検索:グラフ構造を利用した効率的な知識発見。
- 小さな言語モデルとの互換性:リソースに制約のあるシナリオで効率的なRAGパフォーマンスを提供。
- 包括的なベンチマークデータセット:LiHua-Worldデータセットは、複雑なクエリに対する軽量RAGシステムの性能を評価するために提供される。
- 簡単なインストール:ソースコードやPyPIからのインストールをサポートしています。
ヘルプの使用
設置プロセス
ソースからのインストール(推奨)
- MiniRAGリポジトリのクローニング:
git clone https://github.com/HKUDS/MiniRAG.git
cd MiniRAG
- 依存関係をインストールします:
pip install -e .
PyPIからのインストール
MiniRAGはLightRAGをベースにしているため、直接インストールできる:
pip install lightrag-hku
クイックスタート
- 必要なデータセットをダウンロードして
./データセット
カタログに掲載されている。たとえば、LiHua-World データセットは./dataset/LiHua-World/data/
カタログ - データセットのインデックスを作成するには、以下のコマンドを使用する:
python ./reproduce/Step_0_index.py
- Q&Aモジュールを実行する:
python ./reproduce/Step_1_QA.py
- または
./main.py
のコードは MiniRAG を初期化します。
主な機能
異種グラフ索引付けメカニズム
MiniRAGは、テキストブロックと名前付きエンティティを統一構造で結合することにより、異種グラフインデックスを作成する。ユーザーは以下の手順でこれを実現できる:
- データセットを準備し、データセットが必要に応じてフォーマットされていることを確認する。
- インデックス作成スクリプトを実行する:
python ./reproduce/Step_0_index.py
- インデックス作成が完了すると、データは指定されたディレクトリに保存され、以後の検索が可能になる。
軽量トポロジー拡張サーチ
MiniRAGは効率的な知識発見のためにグラフ構造を利用し、以下のステップでユーザが検索できる:
- MiniRAG を初期化します:
from minirag import MiniRAG
モデル = MiniRAG()
- データセットをロードして取り出す:
results = model.retrieve("あなたのクエリ")
- 検索結果を処理し、応答を生成する:
response = model.generate(結果)
以上の手順で、ユーザーはMiniRAGの機能をフルに活用し、効率的な検索機能拡張生成を行うことができる。