Chunking — das Aufteilen von Dokumenten in kleinere Abschnitte — ist der am meisten unterschätzte Schritt einer RAG-Pipeline. Schlechtes Chunking = schlechte Retrieval-Ergebnisse, egal wie gut Ihr Embedding-Modell ist.
LLMs haben begrenzte Context-Windows. Auch wenn moderne Modelle 200K+ Tokens verarbeiten können, gilt: Je gezielter der Kontext, desto besser die Antwort. Ein Chunk sollte eine inhaltlich zusammenhängende Informationseinheit sein.
Text wird in gleich große Blöcke geteilt (z. B. 512 Tokens).
Text wird hierarchisch geteilt: zuerst an Überschriften, dann Absätzen, dann Sätzen.
Embeddings benachbarter Absätze werden verglichen. Wenn die Ähnlichkeit unter einen Schwellenwert fällt, wird ein neuer Chunk gestartet.
Nutzt die Struktur des Dokuments: Überschriften, Tabellen, Listen werden als natürliche Grenzen verwendet.
Chunks sollten sich um 10–20 % überlappen, damit Kontext an den Grenzen nicht verloren geht.
Beispiel: Bei 512 Tokens pro Chunk und 64 Tokens Overlap enthält jeder Chunk die letzten 64 Tokens des vorherigen.
Jeder Chunk sollte Metadaten mitführen:
Praxis-Tipp: Starten Sie mit Recursive Character Splitting (chunk_size=512, overlap=64). Testen Sie dann mit echten Queries und optimieren Sie iterativ. Die perfekte Chunk-Größe hängt von Ihren Dokumenten ab.