Allgemeine Einführung
MiniRAG ist ein extrem einfaches Retrieval Augmented Generation (RAG)-Framework, das darauf abzielt, durch heterogene Graphenindizierung und leichtgewichtiges topologiegestütztes Retrieval auch für kleine Modelle eine gute RAG-Leistung zu erzielen. Das vom Data Science Laboratory der Universität Hongkong (HKUDS) entwickelte Projekt konzentriert sich auf die Lösung des Problems der Leistungsverschlechterung, mit dem Small Language Models (SLMs) in bestehenden RAG-Frameworks konfrontiert sind. miniRAG reduziert die Abhängigkeit von komplexem semantischem Verständnis durch die Kombination von Textbrocken und benannten Entitäten in einer einzigen einheitlichen Struktur und nutzt Graphenstrukturen für eine effiziente Wissensentdeckung. Der Rahmen erreicht eine vergleichbare Leistung mit nur 251 TP3T Speicherplatz des Large Language Model (LLM) Ansatzes.
Funktionsliste
- Heterogener Graph-Indizierungsmechanismus: Kombination von Textblöcken und benannten Entitäten, um die Abhängigkeit von komplexem semantischem Verständnis zu verringern.
- Leichtgewichtiges topologiegestütztes Retrieval: effiziente Wissensentdeckung mit Hilfe von Graphenstrukturen.
- Kompatibel mit kleinen Sprachmodellen: effiziente RAG-Leistung in ressourcenbeschränkten Szenarien.
- Umfassender Benchmark-Datensatz: Der LiHua-World-Datensatz wird bereitgestellt, um die Leistung von leichtgewichtigen RAG-Systemen bei komplexen Abfragen zu bewerten.
- Einfache Installation: unterstützt die Installation aus dem Quellcode und von PyPI.
Hilfe verwenden
Ablauf der Installation
Installation von der Quelle aus (empfohlen)
- Klonen des MiniRAG-Repositorys:
git clone https://github.com/HKUDS/MiniRAG.git
cd MiniRAG
- Installieren Sie die Abhängigkeit:
pip install -e .
Installation von PyPI
MiniRAG basiert auf LightRAG und kann daher direkt installiert werden:
pip install lightrag-hku
Schnellstart
- Laden Sie den gewünschten Datensatz herunter und platzieren Sie ihn im Ordner
. /Datensatz
Katalog. Zum Beispiel wurde der Datensatz LiHua-World in den. /datensatz/LiHua-World/data/
Katalog. - Verwenden Sie den folgenden Befehl, um das Dataset zu indizieren:
python . /reproduce/Schritt_0_index.py
- Führen Sie das Q&A-Modul aus:
python . /reproduce/Schritt_1_QA.py
- Alternativ können Sie auch die
. /main.py
Der Code in initialisiert das MiniRAG.
Hauptfunktionen
Heterogener Graph-Indizierungsmechanismus
MiniRAG erstellt heterogene Graph-Indizes, indem es Textblöcke und benannte Entitäten in einer einheitlichen Struktur kombiniert. Die Benutzer können dies mit den folgenden Schritten erreichen:
- Bereiten Sie den Datensatz vor und stellen Sie sicher, dass der Datensatz wie gewünscht formatiert ist.
- Führen Sie das Indizierungsskript aus:
python . /reproduce/Schritt_0_index.py
- Nach Abschluss der Indizierung werden die Daten in dem angegebenen Verzeichnis gespeichert und können später abgerufen werden.
Leichtgewichtige, topologieerweiterte Suche
MiniRAG nutzt die Graphenstruktur für eine effiziente Wissenssuche, die der Nutzer in den folgenden Schritten abrufen kann:
- Initialisieren Sie das MiniRAG:
from minirag import MiniRAG
Modell = MiniRAG()
- Laden Sie den Datensatz und rufen Sie ihn ab:
Ergebnisse = model.retrieve("Ihre Anfrage")
- Verarbeitet die Suchergebnisse und erzeugt eine Antwort:
Antwort = model.generate(Ergebnisse)
Mit den oben genannten Schritten können die Benutzer die Funktionen von MiniRAG zur effizienten Generierung von Sucherweiterungen voll ausschöpfen.