Skip to content
BotServBotServ
ChunkingRAGVektordatenbankTextaufteilungEmbeddingslokale KI

Chunking

Chunking für RAG verstehen: Texte sinnvoll aufteilen, Überlappungen nutzen und Qualität verbessern.

S

schutzgeist

3 min read
Dokument in sinnvolle Abschnitte geteilt

Chunking

Einleitung

Lange Dokumente passen nicht in ein Sprachmodell. Deshalb teilt man sie vor der Verarbeitung in kleinere Abschnitte. Dieser Schritt heißt Chunking. Gut gemachtes Chunking ist einer der wichtigsten Hebel, um die Qualität einer RAG-Pipeline zu verbessern.

Chunking - In A Nutshell

Chunking bedeutet, ein Dokument in Abschnitte bestimmter Länge zu zerlegen. Jeder Abschnitt wird später in einen Embedding-Vektor umgewandelt und in der Vektordatenbank gespeichert. Die Suche findet dann nicht das ganze Dokument, sondern den passenden Abschnitt.

Wichtig ist, dass die Abschnitte in sich sinnvoll sind. Ein mitten im Satz geschnittener Text liefert schlechte Treffer. Ein guter Chunk enthält einen Gedanken, eine Informationseinheit oder einen Absatz, der für sich verständlich ist.

Wichtige Begriffe und Komponenten

BegriffBedeutung
ChunkEinzelner Textabschnitt
Chunk SizeMaximale Größe eines Chunks in Zeichen oder Token
Chunk OverlapAnzahl Zeichen oder Token, die zwei benachbarte Chunks teilen
TokenVerarbeitungseinheit des Sprachmodells
Semantic ChunkingAufteilung nach Bedeutung statt fester Größe

Praxisrelevanz

Warum ist Chunking so wichtig?

Schlechtes Chunking führt zu schlechten Antworten. Wenn ein Abschnitt mitten im Kontext endet, fehlen dem Modell wichtige Informationen. Wenn ein Chunk zu lang ist, verliert sich die Suche in generischen Passagen. Wenn er zu kurz ist, fehlen Zusammenhänge.

Ein gutes Beispiel ist ein Vertrag. Wenn ein Chunk am Ende von Paragraph 2.1 endet und Paragraph 2.2 im nächsten beginnt, könnte das Modell die Verknüpfung verpassen. Eine Überlappung oder eine Aufteilung nach Paragraphen hilft hier.

Häufige Chunking-Strategien

StrategieBeschreibungWann sinnvoll
Feste GrößeJeder Chunk hat eine bestimmte LängeSchnelle erste Version
ÜberlappungChunks überlappen sich um wenige SätzeZusammenhänge erhalten
AbsatzweiseAufteilung nach AbsätzenStrukturierte Dokumente
SemantischAufteilung nach BedeutungsgrenzenHohe Qualität, mehr Aufwand
RekursivBeginne mit großen Einheiten, teile bei BedarfFlexible Anpassung

Beispiel: Python mit LangChain

from langchain.text_splitter import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=500,
    chunk_overlap=50,
    separators=["\n\n", "\n", ". ", " ", ""]
)

chunks = text_splitter.split_text(document)

Dieses Beispiel teilt einen Text in Abschnitte von etwa 500 Zeichen. Bei Absätzen, Zeilenumbrüchen und Sätzen wird bevorzugt getrennt. Die Überlappung von 50 Zeichen sorgt dafür, dass Zusammenhänge am Übergang nicht verloren gehen.

Größenwahl

Eine typische Chunk-Größe liegt zwischen 200 und 1.000 Token. Kleine Chunks sind präziser bei der Suche, liefern aber weniger Kontext. Große Chunks geben mehr Kontext, können aber irrelevante Informationen enthalten.

Für deutsche Texte mit längeren Wortzusammensetzungen eignen sich oft 400 bis 800 Zeichen. Bei technischen Dokumentationen oder Gesetzestexten sind strukturierte Chunks nach Überschriften besser.

Hardware-, Kosten- und Sicherheitsbetrachtung

Chunking selbst ist ressourcensparend. Es verändert den Speicherbedarf der Vektordatenbank, weil mehr kleine Chunks gespeichert werden. Die Anzahl der Einträge steigt, die Größe der Embeddings bleibt pro Eintrag gleich. Kosten entstehen kaum. Sicherheitstechnisch ist alles lokal, solange Embeddings und Datenbank auf dem eigenen Rechner bleiben.

Weitere KI Infos und Themen

  • Chunking teilt Dokumente in sinnvolle Abschnitte.
  • Überlappungen bewahren Zusammenhänge am Chunk-Übergang.
  • Strukturiertes Chunking nach Absätzen ist oft besser als reine Längenaufteilung.
  • Die richtige Chunk-Größe hängt vom Dokumenttyp ab.

Mehr zu Embeddings findest Du in Embedding-Modelle und zu Vektordatenbanken in Vektordatenbanken.

FAQ - Typische Fragen zum Chunking

Was ist die beste Chunk-Größe?

Es gibt keine allgemein beste Größe. Für deutsche Texte sind oft 400 bis 800 Token brauchbar. Testen mit eigenen Fragen ist wichtig.

Sollte ich immer Überlappung verwenden?

Ja, eine kleine Überlappung von 10 bis 20 Prozent hilft, Zusammenhänge am Abschnittsübergang nicht zu verlieren.

Kann ich Chunks nach Überschriften bilden?

Ja, das ist oft besser als reine Längenaufteilung. Markdown- oder HTML-Strukturen eignen sich dafür besonders.

Was passiert bei zu großen Chunks?

Die Suche findet möglicherweise lange, generische Abschnitte. Das Modell bekommt zu viel Kontext und die Antworten werden ungenauer.

Tools und Weiterführendes

LangChain, LlamaIndex und unstructured bieten starke Chunking-Funktionen. Für einfache Fälle reichen auch Python-Skripte mit regulären Ausdrücken.

Quellen

  • LangChain Text Splitter
  • LlamaIndex Chunking-Dokumentation
  • Unstructured Library
Zurück zum KI Blog
Share:

Nächster Artikel in Lokale KI

Weiterlesen
Embedding-Modelle

Ähnliche Beiträge