Home
Login

Phase 5: Erkundung von KI-Anwendungsszenarien

Eine umfassende Sammlung fortschrittlicher Techniken für Retrieval-Augmented Generation (RAG)-Systeme, die über 30 RAG-Technologieimplementierungen von den Grundlagen bis zu den neuesten Entwicklungen abdeckt und vollständige Codebeispiele und detaillierte Dokumentation enthält.

RAGRetrievalAugmentedGenerationVectorSearchGitHubTextFreeEnglish

RAG-Techniken: Detaillierte Lernmaterialien

Projektübersicht

RAG Techniques ist ein von Nir Diamant erstelltes Open-Source-Projekt auf GitHub, das sich auf die Präsentation verschiedener fortschrittlicher Retrieval-Augmented Generation (RAG)-Systemtechniken konzentriert. Ziel des Projekts ist es, Forschern und Entwicklern eine umfassende Ressourcenbibliothek zur Verfügung zu stellen, um ihnen beim Aufbau präziserer und kontextrelevanterer RAG-Systeme zu helfen.

Projektmerkmale

🌟 Kernmerkmale

  • Spitzentechnologien: Umfasst die neuesten Verbesserungstechniken für RAG-Systeme
  • Umfassende Dokumentation: Jede Technik verfügt über eine detaillierte Dokumentation
  • Praktische Anleitungen: Bietet praktische Implementierungsanleitungen
  • Kontinuierliche Updates: Regelmäßige Aktualisierung mit den neuesten technischen Fortschritten
  • Community-gesteuert: Verfügt über eine aktive Discord-Community (20.000+ KI-Enthusiasten)

🎯 Zielgruppe

  • KI-Forscher
  • Maschinelles Lernen Ingenieure
  • Entwickler und Praktiker
  • Lernende mit Interesse an RAG-Technologien

Technologieklassifizierung und detaillierte Beschreibung

1. Grundlegende Techniken (Foundational 🌱)

Simple RAG

  • Beschreibung: Einführung in grundlegende RAG-Techniken, geeignet für Anfänger
  • Implementierung: Unterstützt LangChain und LlamaIndex
  • Funktionen: Grundlegende Retrieval-Abfragen und inkrementelle Lernmechanismen

Simple RAG using CSV

  • Beschreibung: Eine grundlegende RAG-Implementierung unter Verwendung von CSV-Dateien
  • Funktionen: Nutzt CSV-Dateien zur Erstellung eines grundlegenden Retrievals und zur Integration mit OpenAI

Corrective RAG

  • Beschreibung: Erweitert Simple RAG um Validierungs- und Verbesserungsmechanismen
  • Funktionen: Überprüft die Relevanz der abgerufenen Dokumente und hebt die für die Antwort verwendeten Dokumentenfragmente hervor

2. Chunking-Techniken (Chunking Techniques)

Choose Chunk Size

  • Beschreibung: Auswahl der geeigneten Textblockgröße, um den Kontexterhalt und die Retrieval-Effizienz auszugleichen
  • Implementierung:
# Beispiel: Experimente mit verschiedenen Chunk-Größen
chunk_sizes = [200, 500, 1000, 2000]
for size in chunk_sizes:
    # Testen der Retrieval-Effekte bei verschiedenen Größen
    evaluate_chunk_performance(size)

Proposition Chunking

  • Beschreibung: Zerlegt Text in prägnante, vollständige und bedeutungsvolle Sätze
  • Merkmale:
    • 💪 Propositionserzeugung: Verwendet LLM zur Generierung von Faktenaussagen aus Dokumentenblöcken
    • ✅ Qualitätsprüfung: Bewertet Genauigkeit, Klarheit, Vollständigkeit und Prägnanz

Semantisches Chunking

  • Beschreibung: Teilt Dokumente basierend auf semantischer Kohärenz statt fester Größe
  • Vorteile: Nutzt NLP-Techniken zur Identifizierung von Themenübergängen, um bedeutungsvollere Retrieval-Einheiten zu erstellen

3. Abfrageverarbeitungstechniken (Query Processing)

Abfragetransformationen

  • Beschreibung: Modifiziert und erweitert Abfragen, um die Retrieval-Effizienz zu verbessern
  • Techniken umfassen:
    • ✍️ Abfrageumschreibung: Neuformulierung von Abfragen zur Verbesserung des Retrievals
    • 🔙 Fallback-Prompts: Generierung breiterer Abfragen für besseren Kontext
    • 🧩 Unterabfrage-Zerlegung: Zerlegung komplexer Abfragen in einfache Unterabfragen

Hypothetische Fragen (HyDE)

  • Beschreibung: Generiert hypothetische Fragen, um die Übereinstimmung zwischen Abfrage und Daten zu verbessern
  • Funktionen: Erstellt hypothetische Fragen, die auf relevante Stellen in den Daten verweisen

Hypothetische Prompt-Embeddings (HyPE)

  • Beschreibung: Eine erweiterte Version von HyDE, die hypothetische Prompts in der Indexierungsphase vorab berechnet
  • Vorteile:
    • 📖 Vorberechnete Fragen: Generiert mehrere hypothetische Abfragen während der Indexierung
    • 🔍 Frage-Frage-Abgleich: Benutzerabfragen werden mit gespeicherten hypothetischen Fragen abgeglichen
    • ⚡ Keine Laufzeitkosten: Keine LLM-Aufrufe zur Abfragezeit erforderlich

4. Kontextverarbeitungstechniken (Context Processing)

Kontextanreicherungstechniken

  • Beschreibung: Verbessert die Retrieval-Genauigkeit durch das Einbetten einzelner Sätze und die Erweiterung auf benachbarte Sätze
  • Implementierung:
# Beispiel: Kontextfenster-Erweiterung
def get_context_window(sentence_index, window_size=2):
    start = max(0, sentence_index - window_size)
    end = min(len(sentences), sentence_index + window_size + 1)
    return sentences[start:end]

Kontextuelle Komprimierung

  • Beschreibung: Komprimiert abgerufene Informationen, während der für die Abfrage relevante Inhalt erhalten bleibt
  • Methoden: Verwendet LLM zur Komprimierung oder Zusammenfassung abgerufener Blöcke

Kontextuelle Chunk-Header (CCH)

  • Beschreibung: Erstellt Kontext auf Dokument- und Kapitelebene und fügt ihn den Chunk-Headern hinzu
  • Funktionen: Verbessert die Retrieval-Genauigkeit

5. Retrieval-Verbesserungstechniken (Retrieval Enhancement)

Fusion Retrieval

  • Beschreibung: Optimiert Suchergebnisse durch die Kombination verschiedener Retrieval-Methoden
  • Implementierung: Kombiniert schlüsselwortbasierte Suche und vektorbasierte Suche

Intelligentes Reranking

  • Beschreibung: Wendet fortschrittliche Bewertungsmechanismen an, um die Relevanzrangfolge der Retrieval-Ergebnisse zu verbessern
  • Techniken:
    • 🧠 LLM-basierte Bewertung
    • 🔀 Cross-Encoder-Modelle
    • 🏆 Metadaten-gestütztes Ranking

Facettenreiches Filtern

  • Beschreibung: Wendet verschiedene Filtertechniken an, um die Qualität der Retrieval-Ergebnisse zu verbessern
  • Umfasst:
    • 🏷️ Metadatenfilterung
    • 📊 Ähnlichkeitsschwellenwerte
    • 📄 Inhaltsfilterung
    • 🌈 Diversitätsfilterung

6. Fortgeschrittene Architekturtechniken (Advanced Architecture)

Hierarchische Indizes

  • Beschreibung: Erstellt mehrschichtige Systeme für effiziente Informationsnavigation und -abruf
  • Implementierung: Zweischichtiges System aus Dokumentenzusammenfassungen und detaillierten Blöcken

Ensemble Retrieval

  • Beschreibung: Kombiniert mehrere Retrieval-Modelle oder -Techniken, um robustere und genauere Ergebnisse zu erzielen
  • Methoden: Verwendet Abstimmungs- oder Gewichtungsmechanismen zur Bestimmung des endgültigen Retrieval-Dokumentensatzes

RAPTOR

  • Beschreibung: Rekursive Abstraktionsverarbeitung für baumförmig organisierte Retrieval
  • Merkmale: Verwendet abstrakte Zusammenfassungen zur rekursiven Verarbeitung von Retrieval-Dokumenten, um Informationen in einer Baumstruktur zu organisieren

7. Adaptive Techniken (Adaptive Techniques)

Adaptives Retrieval

  • Beschreibung: Passt die Retrieval-Strategie dynamisch an den Abfragetyp und den Benutzerkontext an
  • Funktionen: Verwendet maßgeschneiderte Retrieval-Strategien für verschiedene Abfragekategorien

Self RAG

  • Beschreibung: Eine dynamische Methode, die Retrieval- und Generierungsmethoden kombiniert
  • Prozess: Retrieval-Entscheidung → Dokumentenabruf → Relevanzbewertung → Antwortgenerierung

Corrective RAG (CRAG)

  • Beschreibung: Eine komplexe RAG-Methode zur dynamischen Bewertung und Korrektur des Retrieval-Prozesses
  • Komponenten: Retrieval-Evaluator, Wissensverfeinerung, Web-Suchabfrage-Umschreiber

8. Multimodale Techniken (Multi-modal)

Multimodales Retrieval

  • Beschreibung: Erweitert die RAG-Fähigkeiten zur Verarbeitung verschiedener Datentypen
  • Methoden:
    • Multimedia-Untertitel: Generiert Untertitel für alle Multimediadaten
    • Colpali: Konvertiert alle Daten in Bilder und verwendet visuelle LLMs

9. Wissensgraphen-Integration

Wissensgraphen-Integration (Graph RAG)

  • Beschreibung: Integriert strukturierte Daten aus Wissensgraphen zur Anreicherung des Kontexts
  • Funktionen: Ruft Entitäten und Beziehungen ab, die für die Abfrage relevant sind

GraphRAG (Microsoft)

  • Beschreibung: Microsofts Open-Source-GraphRAG-System
  • Merkmale: Extrahiert Entitäten und Beziehungen aus Texteinheiten, generiert Community-Zusammenfassungen

10. Evaluierungstechniken (Evaluation)

DeepEval-Evaluierung

  • Beschreibung: Umfassende Evaluierung von RAG-Systemen
  • Metriken: Korrektheit, Treue, Kontextrelevanz

GroUSE-Evaluierung

  • Beschreibung: Kontextbasierte LLM-Evaluierung
  • Funktionen: Verwendet die 6 Metriken des GroUSE-Frameworks zur Evaluierung

Implementierungsanleitung

Schnellstart

# Repository klonen
git clone https://github.com/NirDiamant/RAG_Techniques.git

# Zum Verzeichnis der spezifischen Technik navigieren
cd all_rag_techniques/technique-name

# Den detaillierten Implementierungsanleitungen in den jeweiligen Technikverzeichnissen folgen

Unterstützte Technologien

  • LangChain: Haupt-Framework-Unterstützung
  • LlamaIndex: Unterstützung für ausgewählte Techniken
  • OpenAI API: Integration von Generierungsmodellen
  • Verschiedene Embedding-Modelle: Unterstützung verschiedener Vektorisierungsmethoden

Empfohlene Lernpfade

Pfad für Anfänger

  1. Simple RAG → Grundlegende Konzepte verstehen
  2. Choose Chunk Size → Text-Chunking lernen
  3. Abfragetransformationen → Abfrageoptimierung verstehen
  4. Kontextanreicherung → Kontextverarbeitung beherrschen

Fortgeschrittener Pfad

  1. Semantisches Chunking → Fortgeschrittene Chunking-Techniken
  2. Fusion Retrieval → Kombination mehrerer Methoden
  3. Intelligentes Reranking → Ergebnisoptimierung
  4. Hierarchische Indizes → Komplexe Architekturen

Expertenpfad

  1. Self RAG → Adaptive Systeme
  2. Graph RAG → Wissensgraphen-Integration
  3. RAPTOR → Rekursive Verarbeitung
  4. Multimodales Retrieval → Multimodale Verarbeitung

Diese Lernmaterialien bieten einen vollständigen Lernpfad für RAG-Techniken, von grundlegend bis fortgeschritten, geeignet für Lernende unterschiedlicher Niveaus, und stellen eine der umfassendsten RAG-Technik-Ressourcenbibliotheken dar, die derzeit verfügbar ist.