RAG und Wissenssysteme
Retrieval Augmented Generation (RAG) verbindet die Sprachfähigkeiten von LLMs mit deinen eigenen Daten. Statt das Modell mit allem Wissen zu füttern, werden relevante Dokumente zur Laufzeit abgerufen und als Kontext bereitgestellt. Das Ergebnis: aktuelle, nachvollziehbare Antworten mit Quellenangaben.
Wie funktioniert RAG?
RAG besteht aus zwei Hauptphasen: Indexierung und Abfrage. In der Indexierungsphase werden Dokumente geladen, in Abschnitte (Chunks) zerlegt und als Vektoren in einer Datenbank gespeichert. Bei einer Abfrage wird die Nutzerfrage ebenfalls in einen Vektor umgewandelt, ähnliche Chunks werden abgerufen und dem LLM als Kontext mitgegeben.
Der Vorteil gegenüber Fine-Tuning: RAG-Systeme können aktualisiert werden, ohne das Modell neu zu trainieren. Neue Dokumente werden einfach in den Index aufgenommen. Zudem sind die Quellen nachvollziehbar.
Die RAG-Pipeline im Detail
1. Indexierung
- Document LoadingPDFs, Word, HTML, Markdown, Datenbanken – verschiedene Quellen anbinden.
- ChunkingDokumente in sinnvolle Abschnitte zerlegen (z.B. 500-1000 Tokens mit Overlap).
- EmbeddingChunks werden in Vektoren umgewandelt, die semantische Bedeutung codieren.
- SpeicherungVektoren in einer Datenbank ablegen: ChromaDB, Pinecone, Weaviate, Qdrant.
2. Abfrage
- Query EmbeddingDie Nutzerfrage wird in denselben Vektorraum umgewandelt.
- Similarity SearchDie ähnlichsten Chunks werden per Vektorsuche abgerufen (top_k).
- RerankingOptional: Ergebnisse werden mit einem Reranker-Modell nachsortiert.
- GenerationDas LLM erhält Frage + Kontext und generiert eine Antwort mit Zitaten.
Beispiel: Einfache RAG-Pipeline in Python
Best Practices für RAG
- Chunking-Strategie testen: Die optimale Chunk-Größe hängt vom Dokumenttyp ab. Zu große Chunks verwässern, zu kleine verlieren Kontext.
- Hybrides Retrieval nutzen: Kombiniere Vektorsuche mit Keyword-Suche (BM25) für bessere Ergebnisse.
- Metadata mitgeben: Speichere Dateiname, Seitenzahl, Datum – das ermöglicht Filterung und Zitationen.
- Reranking einsetzen: Ein zweiter Durchgang mit einem Cross-Encoder verbessert die Relevanz deutlich.
- Kontext begrenzen: Nicht alle abgerufenen Chunks müssen ins Prompt. Weniger, aber relevanterer Kontext ist oft besser.
Passende Weiterbildung
Python für Data Science & Machine Learning
RAG-Pipelines werden primär in Python gebaut. Dieser Kurs schafft die Grundlage für Datenverarbeitung und ML-Integration.
Kurs ansehen *Datenbankentwickler/in für Access & SQL
Wer RAG-Systeme baut, arbeitet intensiv mit Daten. SQL-Kenntnisse helfen bei der Datenaufbereitung und Metadatenverwaltung.
Kurs ansehen *