AI Personal Learning
und praktische Anleitung
Sitzsack Marscode1

HippoRAG: Ein Multi-Hop-Wissensabrufsystem auf der Grundlage des Langzeitgedächtnisses

Allgemeine Einführung

HippoRAG ist ein Open-Source-Framework, das von der OSU-NLP-Gruppe an der Ohio State University entwickelt wurde und sich an den Mechanismen des menschlichen Langzeitgedächtnisses orientiert. Es kombiniert Retrieval Augmented Generation (RAG), Knowledge Graph und personalisierte PageRank-Techniken, um Large Language Models (LLMs) bei der konsistenten Integration von Wissen aus externen Dokumenten zu unterstützen.HippoRAG 2 ist die neueste Version von HippoRAG, die auf der NeurIPS 2024 vorgestellt wurde. Sie verbessert die Fähigkeit des Modells, Multi-Hop-Retrieval und komplexes Kontextverständnis durchzuführen und dabei niedrige Kosten und geringe Latenzzeiten beizubehalten. Es hat einen geringeren Ressourcenbedarf für die Offline-Indizierung als Lösungen wie GraphRAG. Benutzer können den Code über GitHub beziehen und ihn kostenlos einsetzen.

HippoRAG: Ein auf dem Langzeitgedächtnis-1 basierender Rahmen für die Abfrage von Wissen in mehreren Schritten

HippoRAG2 Durchführungsmethodik


 

Funktionsliste

  • Indizierung von DokumentenKonvertierung externer Dokumente in durchsuchbare Wissensstrukturen, die eine kontinuierliche Aktualisierung ermöglichen.
  • Multihop-SucheBeantworten Sie Fragen, die eine mehrstufige Argumentation erfordern, indem Sie Wissensverbindungen herstellen.
  • Q&A GenerationGenerieren Sie genaue Antworten auf der Grundlage von Suchergebnissen.
  • Modell-UnterstützungKompatibel mit OpenAI-Modellen und nativen Modellen vLLM Eingesetztes LLM.
  • Effiziente VerarbeitungSchnelles Online-Abrufen und geringer Ressourcenbedarf für die Offline-Indizierung.
  • experimenteller NachweisBereitstellung von Datensätzen und Skripten zur Unterstützung der Studienreplikation.

 

Hilfe verwenden

Ablauf der Installation

Die Installation von HippoRAG ist einfach und für Benutzer mit Grundkenntnissen in Python geeignet. Hier sind die detaillierten Schritte:

  1. Erstellen einer virtuellen Umgebung
    Erstellen Sie eine Python 3.10-Umgebung, indem Sie den folgenden Befehl in das Terminal eingeben:
conda create -n hipporag python=3.10

Aktivieren Sie dann die Umgebung:

conda aktiviert hipporag
  1. Installation von HippoRAG
    Läuft in einer aktivierten Umgebung:
pip install hipporag
  1. Umgebungsvariablen konfigurieren
    Stellen Sie die folgenden Variablen entsprechend Ihrer Hardware und Ihren Anforderungen ein. Verwenden Sie zum Beispiel mehrere GPUs:
export CUDA_VISIBLE_DEVICES=0,1,2,3
export HF_HOME=
export OPENAI_API_KEY= # ist erforderlich, um OpenAI-Modelle zu verwenden.

Aktivieren Sie die Umgebung erneut, um sicherzustellen, dass sie wirksam wird:

conda aktiviert hipporag

Verwendung von OpenAI-Modellen

Um schnell mit HippoRAG? loszulegen, können Sie das OpenAI-Modell verwenden. Hier sind die Schritte:

  1. Das Dokument vorbereiten
    Erstellen Sie z. B. eine Liste von Dokumenten:
docs = [
"Zhang San ist ein Arzt." ,
"Li Si lebt in Peking." ,
"Peking ist die Hauptstadt von China."
]
  1. Initialisierung von HippoRAG
    Parameter in Python setzen:

    from hipporag import HippoRAG
    save_dir = 'outputs'
    llm_model_name = 'gpt-4o-mini'
    einbetten_modell_name = 'nvidia/NV-Embed-v2'
    hipporag = HippoRAG(save_dir=save_dir, llm_model_name=llm_model_name, embedding_model_name=embedding_model_name)
    
  2. Indexdatei
    Eingangsdokumente für die Indizierung:

    hipporag.index(docs=docs)
    
  3. Fragen und Antworten
    Geben Sie eine Frage ein, um die Antwort zu erhalten:

    queries = ["Was macht Zhang San beruflich?" , "Wo wohnt Li Si?"]
    rag_results = hipporag.rag_qa(queries=queries)
    print(rag_results)
    

    Die Ausgabe kann sein:

    • Zhang San ist ein Arzt.
    • Li Si lebt in Peking.

Verwendung des nativen vLLM-Modells

Möchten Sie lokal verteilen? Sie können HippoRAG mit vLLM ausführen. Die Schritte sind wie folgt:

  1. Starten des vLLM-Dienstes
    Starten Sie lokale Dienste im Terminal, z. B. mit dem Llama-Modell:

    exportieren CUDA_VISIBLE_DEVICES=0,1
    export VLLM_WORKER_MULTIPROC_METHOD=spawn
    export HF_HOME=
    conda hipporag aktivieren
    vllm serve meta-llama/Llama-3.3-70B-Instruct --tensor-parallel-size 2 --max_model_len 4096 --gpu-memory-utilization 0.95
    
  2. Initialisierung von HippoRAG
    Geben Sie die lokale Dienstadresse in Python an:

    hipporag = HippoRAG(save_dir='outputs', llm_model_name='meta-llama/Llama-3.3-70B-Instruct', embedding_model_name='nvidia/NV-Embed-v2', llm_base_url='http://localhost:8000/v1')
    
  3. Index & Fragen & Antworten
    Die Bedienung ist dieselbe wie beim OpenAI-Modell: Geben Sie einfach das Dokument und die Frage ein.

Featured Function Bedienung

Multihop-Suche

Der Höhepunkt von HippoRAG ist die Multi-Hop-Suche. Wenn Sie zum Beispiel fragen: "Li Si lebt in der Hauptstadt welchen Landes?" Das System findet zunächst "Li Si wohnt in Peking", verknüpft dies dann mit "Peking ist die Hauptstadt von China" und antwortet "China". Um es zu benutzen, müssen Sie nur die Frage eingeben:

queries = ["In welcher Hauptstadt des Landes lebt Li Si?"]
rag_results = hipporag.rag_qa(queries=queries)
print(rag_results)

Experimentelle Fortpflanzung

Möchten Sie die Ergebnisse Ihrer Arbeit validieren? HippoRAG bietet Reproduktionswerkzeuge.

  1. Vorbereiten des Datensatzes
    Laden Sie den Datensatz von GitHub oder HuggingFace herunter (z. B. sample.json), setzen Sie die vervielfältigen/Datensatz Katalog.
  2. laufendes Experiment
    Geben Sie ihn in das Terminal ein:

    python main.py --datensatz beispiel --llm_base_url https://api.openai.com/v1 --llm_name gpt-4o-mini --embedding_name nvidia/NV-Embed-v2
    
  3. Ergebnisse anzeigen
    Überprüfen Sie die Ausgabe, um die Wirksamkeit des Multi-Hop-Abrufs und der Q&A zu überprüfen.

Offline-Stapelverarbeitung

vLLM unterstützt den Offline-Modus, und die Indizierungsgeschwindigkeit kann um mehr als das Dreifache erhöht werden. Der Vorgang ist wie folgt:

  1. Ausführen einer Offline-Batch
    export CUDA_VISIBLE_DEVICES=0,1,2,3
    export HF_HOME=
    export OPENAI_API_KEY=''
    python main.py --datensatz beispiel --llm_name meta-llama/Llama-3.3-70B-Instruct --openie_mode offline --skip_graph
    
  2. Folgeoperation
    Wenn Sie fertig sind, kehren Sie in den Online-Modus zurück, um den vLLM-Dienst und den Q&A-Prozess auszuführen.

caveat

  • GedächtnislückeWenn der GPU-Speicher nicht ausreicht, passen Sie die max_model_len vielleicht gpu-memory-utilization.
  • Komponenten während der Prüfung anpassen: Verwendung von reproduzieren/datensatz/beispiel.json Testumgebung.
  • Freigabe von DokumentenLöschen Sie die alten Daten, bevor Sie das Experiment erneut durchführen:
    rm -rf outputs/sample/*
    
CDN1
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " HippoRAG: Ein Multi-Hop-Wissensabrufsystem auf der Grundlage des Langzeitgedächtnisses

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)