Begriff
RAG (Retrieval Augmented Generation)
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Stell dir vor, du schreibst eine Klausur (LLM). Du weißt viel (Trainingsdaten), aber dein Wissen endet 2023 ("Cutoff Date"). Frage: "Wer gewann gestern die Wahl?" -> Du rätst oder halluzinierst. RAG ist wie ein Spickzettel (Open Book Exam). Bevor du antwortest, darfst du in einem Buch (Datenbank) nachschlagen.
- User fragt: "Wer gewann?"
- System sucht in Google News: "Wahl 2024 Gewinner".
- System gibt dem LLM den Artikel: "Lies das und antworte."
- LLM antwortet korrekt: "Laut Artikel X gewann Herr Y." RAG verbindet die Sprachfähigkeit der KI mit deinem aktuellen, privaten Wissen (Firmen-PDFs, Emails).
Merksatz: Eine Architektur, die einem Large Language Model (LLM) externe, aktuelle Informationen bereitstellt, indem sie relevante Dokumente aus einer Wissensbasis abruft (Retrieval) und in den Prompt einfügt (Augmentation), bevor die Antwort generiert wird.
Der Workflow:
- Ingestion: PDF -> Text -> Chunks (Häppchen) -> Embeddings (Zahlenvektoren) -> Vector DB (Pinecone).
- Retrieval: User Frage -> Embedding -> Suche ähnlichste Chunks in DB.
- Generation: Prompt: "Nutze nur folgenden Kontext: [Chunk 1, Chunk 2]. Beantworte: [Frage]".
1. Chunking Strategien
Wie zerschneide ich das PDF?
- Fixed Size: Alle 500 Wörter. Problem: Schneidet Sätze in der Mitte durch.
- Recursive Character: Schneide an Absätzen (
\n\n), dann Sätzen (.). Besser für Kontext. - Semantic Chunking: Nutze Embeddings, um thematische Brüche zu finden. (Teuer aber präzise). Schlechtes Chunking = Kontextverlust = Dumme Antworten.
2. Hybrid Search (Keyword + Vector)
Vektorsuche (Semantik) ist toll ("Hund" findet "Welpe"). Aber schlecht bei exakten Matches ("Error Code 0x512"). Hybrid Search kombiniert:
- BM25 (Klassische Stichwortsuche).
- Cosine Similarity (Vektorsuche). Ein Re-Ranker (Cross-Encoder Model) sortiert die Top 10 Ergebnisse neu, um die wirklich relevantesten für das LLM auszuwählen.
3. Citations & Attribution
Wie verhinderst du, dass das LLM lügt ("Hallucination")? Zwinge es zu Zitaten. Prompt: "Antworte jeden Satz mit [Quelle ID]. Wenn keine Quelle passt, sag 'Ich weiß es nicht'." Da das LLM den Quelltext sieht (im Context Window), kann es extrem präzise zitieren. Das schafft Vertrauen beim User.
Re-Ranking mit Cross-Encoders
Bi-Encoder (wie "text-embedding-ada-002") berechnen Vektoren für die User-Suche und das PDF isoliert voneinander. Das ist blitzschnell (Cosine Similarity in der DB), aber semantisch oft plump. Die Evolution des RAGs ist der Re-Ranker Schritt. Die Vektor-DB liefert (billig) die Top-20-Matches. Danach nimmt man ein extrem kluges, aber rechenintensives Modell (einen Cross-Encoder, wie Cohere Rerank), welches die User-Frage und jeden der 20 Chunks gleichzeitig durch sein neuronales Netz fädelt. Es generiert einen Präzisions-Score (0-1), wie exakt der Chunk die Frage beantwortet. Nur die finalen Top-3 nach dem Re-Ranking gehen als Kontext an das LLM. Das reduziert Halluzinationen massiv.
GraphRAG (Knowledge Graphs)
Standard-RAG scheitert brachial an "Globalen" oder "Verbindungs"-Fragen, z. B. "Fasse die Rolle von allen Managern aus den 500 Dokumenten zusammen." Die Vektor-DB findet einfach zufällige Sätze über Manager (Lost in the Middle). GraphRAG verbindet RAG mit Neo4j (Graphdatenbanken). Beim Ingesting analysiert das LLM die Texte und extrahiert Entitäten + Relationen (z.B. "[Steve Jobs] -> (FOUNDED) -> [Apple]"). Das baut ein semantisches Wissensnetz. Fragt der User, generiert das System aus dem Graph einen kontextuell überlegenen Such-Graphen ("Zeige mir alles um den Knoten 'Apple' in Tiefe 2") anstatt nur blinder Text-Bausteine. Microsoft Research hat 2024 bewiesen, dass dies RAG weit in die kognitive Oberliga hebt.
Colbert & Late Interaction (Feingranulare Vektoren)
Ein massives Problem normaler Embeddings: Ein kompletter Absatz (500 Wörter) wird zu einem einzigen, stark komprimierten Array (z.B. 1536 Zahlen) zusammengequetscht. Feine Details verpuffen. ColBERT (Contextualized Late Interaction) berechnet für jedes einzelne Wort/Token im Chunk einen Mini-Vektor. Bei der Abfrage berechnet der Suchalgorithmus die Ähnlichkeit zwischen jedem Wort der Nutzeranfrage und jedem Wort aus dem Datenbank-Chunk. Das ist extrem speicherintensiv für die Vektordatenbank, liefert aber eine geradezu gespenstische Such-Präzision im Vergleich zum dicken "Einer-für-alles"-Vektor.
Quick-Check
Brauche ich Fine-Tuning?
Meistens Nein. RAG ist billiger, schneller und aktueller als Fine-Tuning. Fine-Tuning ändert den "Stil" (wie es spricht). RAG ändert das "Wissen" (worüber es spricht).Kontext-Gedächtnis?
Das Context Window (z. B. 128k Tokens bei GPT-4) begrenzt, wie viele Dokumente du füttern kannst. "Lost in the Middle" Phänomen: LLMs vergessen Infos in der Mitte langer Prompts. Präzises Retrieval (nur Top 3 Chunks) ist wichtiger als riesige Fenster.Multi-Hop RAG?
Frage: "Wie alt ist der Präsident des Landes, in dem Madrid liegt?". 1. Suche: "Wo liegt Madrid?" -> Spanien. 2. Suche: "Präsident Spanien". 3. Suche: "Alter Pedro Sánchez". RAG-Agenten können mehrstufig suchen.