Chunking

Bevor ein Dokument durchsuchbar wird, muss es in kleinere Stücke zerlegt werden — Chunks. Die Größe und der Überlapp sind die zwei wichtigsten Stellschrauben.

5 Chunks bei einer durchschnittlichen Länge von ~140 Zeichen.
Chunk 1
Retrieval-Augmented Generation kombiniert klassisches Information Retrieval mit moderner Generierung durch Large Language Models. Die zentrale Idee ist einfach: Bevor das Modell an
Chunk 2
le Idee ist einfach: Bevor das Modell antwortet, wird eine Wissensbasis nach relevanten Dokumenten durchsucht. Diese Dokumente werden dem Modell als Kontext mitgegeben. Die Heraus
Chunk 3
dell als Kontext mitgegeben. Die Herausforderung dabei: Wie zerlegt man die Wissensbasis in durchsuchbare Einheiten? Zu klein, und der Kontext geht verloren. Zu groß, und das Embe
Chunk 4
ext geht verloren. Zu groß, und das Embedding wird unscharf. Hier kommt Chunking ins Spiel. Typische Chunk-Größen liegen zwischen 200 und 1000 Tokens. Ein Overlap zwischen aufeina
Chunk 5
000 Tokens. Ein Overlap zwischen aufeinanderfolgenden Chunks verhindert, dass wichtige Information genau an einer Grenze abgeschnitten wird.
Warum eigentlich?Warum überhaupt überlappen?
Ohne Overlap kann ein wichtiger Satz genau an der Chunk-Grenze durchgeschnitten werden — das Embedding eines Chunks „…in den Prompt“ bedeutet etwas anderes als „in den Prompt eingebaut und mit Quellenangabe versehen“. Overlap (typischerweise 10–20 % der Chunk-Größe) sorgt dafür, dass beide Varianten an einem Chunk-Rand landen.
Häufiger DenkfehlerNaives zeichenbasiertes Chunking
Was du hier siehst, schneidet stumpf nach Zeichenzahl — Sätze, Absätze und sogar Wörter werden mitten durchgeschnitten. In der Praxis chunkt man besser semantisch: an Satz- oder Absatzgrenzen, Markdown-Headings, oder mit einem rekursiven Splitter (LangChainRecursiveCharacterTextSplitter), der mehrere Separatoren durchprobiert.
Tiefer reinToken vs. Zeichen
LLMs zählen in Tokens, nicht in Zeichen. Ein Token ist durchschnittlich ~4 Zeichen (Englisch) bzw. ~2 Zeichen (Deutsch). Embedding-Modelle haben harte Token-Limits (typisch 8.192 für text-embedding-3-small). Wenn du Chunks an Token-Grenzen schneiden willst, brauchst du einen Tokenizer wie tiktoken.