RAG von Grund auf – Teil 2: Dokumente, Parsing und Chunking

Cost-Aware AI SystemsRetrieval Augmented Generation

Im ersten Teil ging es um die Grundidee von Retrieval-Augmented Generation:

Retrieval
    ↓
Augmentation
    ↓
Generation

Damit ein System überhaupt sinnvoll retrieven kann, muss Wissen zuerst in eine Form gebracht werden, die sich durchsuchen lässt.

Genau hier beginnt die Ingestion.

Dieser Teil behandelt deshalb die Seite von RAG, die häufig unterschätzt wird: Dokumente einlesen, strukturieren, zerlegen und so vorbereiten, dass später gute Suchergebnisse möglich werden.

Denn ein RAG-System kann nur finden, was vorher sinnvoll aufbereitet wurde.


1. Ingestion: Wissen für Retrieval vorbereiten

Unter Ingestion versteht man den Prozess, bei dem Rohdaten in einen durchsuchbaren Wissensbestand überführt werden.

Typischer Ablauf:

Datei
 ↓
Parsing
 ↓
strukturierter Text
 ↓
Chunking
 ↓
indexierbare Einheiten
 ↓
Index

Je nach System kommen weitere Schritte hinzu:

Datei
 ↓
Parsing
 ↓
Normalisierung
 ↓
Strukturerkennung
 ↓
Chunking
 ↓
Metadaten
 ↓
Embedding / Sparse-Repräsentation
 ↓
Indexierung

Die Ingestion entscheidet damit wesentlich darüber, welche Informationen später überhaupt auffindbar sind.


2. Dokumente sind nicht einfach Textdateien

Ein häufiger Denkfehler lautet:

Ein Dokument enthält Text, also lese ich den Text aus und speichere ihn.

In der Praxis ist ein Dokument wesentlich mehr als eine lineare Folge von Zeichen.

Ein PDF kann enthalten:

  • Überschriften,
  • Absätze,
  • Tabellen,
  • Fussnoten,
  • Kopfzeilen,
  • Seitenzahlen,
  • Bilder,
  • Diagramme,
  • mehrspaltige Layouts,
  • eingebettete Schriftarten,
  • gescannte Seiten.

Ein Word-Dokument kann enthalten:

  • Formatvorlagen,
  • Kapitelhierarchien,
  • Tabellen,
  • Kommentare,
  • Textfelder,
  • Listen,
  • Fussnoten.

Eine Webseite besitzt wiederum:

  • Navigation,
  • Hauptinhalt,
  • Footer,
  • Seitenelemente,
  • versteckte Bereiche,
  • dynamisch geladenen Inhalt.

Die zentrale Aufgabe der Ingestion lautet deshalb nicht:

Wie bekomme ich Zeichen aus einer Datei?

Sondern:

Wie rekonstruiere ich die inhaltliche Struktur so gut, dass Retrieval später noch versteht, was zusammengehört?


3. Parsing

Parsing bezeichnet das Einlesen und strukturierte Interpretieren eines Dokuments oder Datenformats.

Ein Parser versucht, aus einer Rohquelle verwertbare Inhalte zu erzeugen.

Beispiel:

Personalreglement.pdf
        ↓
      Parser
        ↓
Titel
Kapitel
Absätze
Tabellen
Seiteninformationen

Bei einem einfachen Textdokument ist Parsing trivial.

Bei komplexen Formaten kann es sehr schwierig werden.


4. Text Extraction und Parsing sind nicht dasselbe

Text Extraction bedeutet lediglich, Text aus einer Quelle herauszuholen.

Parsing versucht zusätzlich, Struktur zu erhalten.

Beispiel:

Original:

3. Probezeit

3.1 Dauer
Die Probezeit dauert drei Monate.

3.2 Kündigung
Während der Probezeit beträgt die Kündigungsfrist sieben Tage.

Eine schlechte Extraktion könnte daraus machen:

3 Probezeit 3.1 Dauer Die Probezeit dauert drei Monate 3.2 Kündigung
Während der Probezeit beträgt die Kündigungsfrist sieben Tage

Der reine Text ist vorhanden.

Die Struktur ist aber verloren.

Ein besserer Parser erhält:

Heading: Probezeit

Subheading: Dauer
Text: Die Probezeit dauert drei Monate.

Subheading: Kündigung
Text: Während der Probezeit beträgt die Kündigungsfrist sieben Tage.

Für Retrieval ist die zweite Variante wesentlich wertvoller.


5. Warum Struktur wichtig ist

Dokumentstruktur transportiert Bedeutung.

Diese beiden Sätze:

Die Frist beträgt sieben Tage.

und:

Während der Probezeit beträgt die Frist sieben Tage.

sind nicht gleich informativ.

Wenn Überschriften oder vorherige Absätze verloren gehen, verliert ein späterer Chunk möglicherweise seinen semantischen Kontext.

Ein Abschnitt mit der Überschrift:

Kündigung während der Probezeit

kann für Retrieval hochrelevant sein, selbst wenn der eigentliche Absatz das Wort „Probezeit“ nicht wiederholt.

Deshalb sollte Dokumentstruktur möglichst früh erhalten bleiben.


6. Layout Parsing

Bei komplexen Dokumenten reicht einfache Textextraktion häufig nicht.

Dann kommt Layout Parsing ins Spiel.

Dabei wird versucht, die visuelle Struktur eines Dokuments zu erkennen.

Beispiele:

  • Überschrift,
  • Absatz,
  • Tabelle,
  • Bild,
  • Fussnote,
  • Spalte,
  • Seitenkopf.

Besonders PDFs benötigen häufig Layout-Erkennung, weil PDF intern nicht zwingend als logisch strukturierter Text gespeichert ist.

Ein PDF beschreibt primär, wo etwas dargestellt wird.

Nicht zwingend, welche semantische Rolle es besitzt.


7. Warum PDFs schwierig sind

PDF ist für Darstellung optimiert, nicht für semantische Verarbeitung.

Eine Seite kann intern beispielsweise enthalten:

Textblock A bei x=50, y=100
Textblock B bei x=300, y=100
Textblock C bei x=50, y=140

Ein Parser muss daraus rekonstruieren:

Spalte 1:
A
C

Spalte 2:
B

Ein schlechter Parser könnte daraus machen:

A B C

Dadurch können Sätze vermischt werden.

Für RAG ist das problematisch, weil falsche Reihenfolge zu falschen Chunks führt.


8. Born-Digital PDF versus Scan

Bei PDFs muss man zwischen zwei grundlegend unterschiedlichen Fällen unterscheiden.

Born-Digital PDF

Der Text liegt bereits digital vor.

Beispielsweise:

Word
 ↓
PDF Export

Der Text kann meistens direkt extrahiert werden.

Gescanntes PDF

Die Seite besteht primär aus einem Bild.

Beispielsweise:

Papierdokument
 ↓
Scanner
 ↓
PDF mit Seitenbildern

Hier existiert kein direkt nutzbarer Textlayer.

Dann benötigt man OCR.


9. OCR

OCR steht für Optical Character Recognition.

OCR versucht, Text aus Bildern zu erkennen.

Beispiel:

Bild einer Seite
      ↓
     OCR
      ↓
"Die Kündigungsfrist beträgt sieben Tage."

OCR ist für RAG besonders relevant bei:

  • eingescannten Verträgen,
  • Archivdokumenten,
  • alten Handbüchern,
  • Formularen,
  • Bild-PDFs,
  • fotografierten Dokumenten.

10. OCR ist fehlerbehaftet

OCR liefert nicht garantiert korrekten Text.

Typische Fehler:

0 ↔ O
1 ↔ l
rn ↔ m
5 ↔ S

Aus:

CHF 1'500

könnte beispielsweise werden:

CHF l'5OO

Bei normalen Sätzen ist das oft tolerierbar.

Bei:

  • Beträgen,
  • Seriennummern,
  • Paragraphen,
  • Produktcodes,
  • IDs,
  • Namen

kann ein einzelner OCR-Fehler jedoch entscheidend sein.

Deshalb ist Dokumentqualität Teil der Retrieval-Qualität.


11. OCR und Layout zusammen betrachten

Bei komplexen Scans reicht reine OCR ebenfalls nicht.

Angenommen, eine Seite enthält:

| Produkt | Preis |
| A       | 100   |
| B       | 200   |

Eine reine OCR könnte liefern:

Produkt Preis A 100 B 200

Der Text ist erkannt.

Die Tabellenstruktur ist verloren.

Damit wird später schwer erkennbar, welcher Preis zu welchem Produkt gehört.

Moderne Document-AI-Systeme versuchen deshalb häufig gleichzeitig zu erkennen:

  • Text,
  • Bounding Boxes,
  • Tabellen,
  • Überschriften,
  • Listen,
  • Lesereihenfolge.

12. Normalisierung

Nach dem Parsing folgt häufig eine Normalisierung.

Ziel ist, technische oder visuelle Artefakte zu entfernen, ohne den eigentlichen Inhalt zu zerstören.

Beispiele:

  • mehrfache Leerzeichen reduzieren,
  • falsche Zeilenumbrüche zusammenführen,
  • wiederkehrende Kopfzeilen entfernen,
  • Seitenzahlen aus dem Fliesstext lösen,
  • Zeichenkodierung vereinheitlichen,
  • Bulletpoints konsistent darstellen.

Beispiel:

Vorher:

Die Kündigungs-
frist beträgt sieben
Tage.

Nachher:

Die Kündigungsfrist beträgt sieben Tage.

Eine gute Normalisierung verbessert Retrieval.

Eine aggressive Normalisierung kann Information zerstören.


13. Boilerplate

Als Boilerplate bezeichnet man wiederkehrenden Inhalt, der für die eigentliche Wissenssuche häufig wenig relevant ist.

Beispiele:

© 2026 Beispiel AG
Vertraulich
Seite 17 von 83
www.example.com

Wenn solche Texte auf jeder Seite vorkommen, können sie:

  • unnötige Tokens erzeugen,
  • Embeddings beeinflussen,
  • Keyword-Suche verfälschen,
  • Duplicate-Chunks erzeugen.

Deshalb werden wiederkehrende Header und Footer häufig entfernt oder separat behandelt.


14. Dokumentmetadaten

Ein Dokument besteht nicht nur aus Inhalt.

Es besitzt häufig Metadaten.

Beispiele:

Titel
Dateiname
Autor
Erstellungsdatum
Änderungsdatum
Dokumenttyp
Sprache
Quelle
Version
Seitenzahl

Metadaten können später beim Retrieval wichtig werden.

Eine Frage wie:

Was steht im Personalreglement von 2026?

enthält Informationen, die nicht zwingend im eigentlichen Absatz vorkommen:

Dokumenttyp = Personalreglement
Jahr = 2026

Metadaten können deshalb als zusätzliches Retrieval-Signal dienen.


15. Strukturmetadaten

Neben klassischen Dokumentmetadaten existieren Strukturmetadaten.

Beispielsweise:

Kapitel: Arbeitsverhältnis
Abschnitt: Probezeit
Unterabschnitt: Kündigung
Seite: 7

Ein Chunk könnte damit intern ungefähr so beschrieben werden:

Document: Personalreglement.pdf
Page: 7
Heading: Arbeitsverhältnis
Subheading: Probezeit
Section: Kündigung
Text: Während der Probezeit beträgt ...

Diese Struktur kann sowohl Retrieval als auch Quellenanzeige verbessern.


16. Was ist Chunking?

Chunking bezeichnet das Zerlegen grösserer Inhalte in kleinere Einheiten.

Diese Einheiten werden Chunks genannt.

Beispiel:

Dokument mit 50'000 Wörtern
          ↓
        Chunking
          ↓
Chunk 1
Chunk 2
Chunk 3
...
Chunk 180

Warum überhaupt zerlegen?

Weil Retrieval meist auf kleineren Einheiten besser funktioniert als auf kompletten Dokumenten.


17. Warum nicht ganze Dokumente indexieren?

Angenommen, ein Personalhandbuch enthält:

  • Arbeitszeiten,
  • Spesen,
  • Ferien,
  • Kündigung,
  • Versicherungen,
  • IT-Richtlinien.

Die Benutzerfrage lautet:

Wie lange dauert die Probezeit?

Wenn das gesamte Handbuch eine einzige Retrieval-Einheit wäre, müsste ein Embedding die Bedeutung des gesamten Dokuments repräsentieren.

Die spezifische Passage über die Probezeit wäre nur ein kleiner Teil davon.

Mit Chunks kann stattdessen genau der relevante Abschnitt gefunden werden.


18. Chunking ist eine Form der Informationskompression

Beim Chunking trifft man implizit eine Entscheidung:

Welche Informationen müssen gemeinsam bleiben, damit ihre Bedeutung erhalten bleibt?

Das ist mehr als ein technisches Splitten.

Ein Chunk definiert eine semantische Einheit.

Beispielsweise:

Heading:
Kündigung während der Probezeit

Text:
Während der Probezeit kann das Arbeitsverhältnis
mit einer Frist von sieben Tagen gekündigt werden.

Das ist eine sinnvolle Einheit.

Wenn wir dagegen trennen:

Chunk 1:
Während der Probezeit kann das Arbeitsverhältnis

Chunk 2:
mit einer Frist von sieben Tagen gekündigt werden.

wird Information zerstört.


19. Chunk Size

Die Chunk Size beschreibt, wie gross ein Chunk sein darf.

Sie kann gemessen werden in:

  • Zeichen,
  • Wörtern,
  • Tokens,
  • Sätzen,
  • Absätzen.

Es existiert keine universell optimale Chunk-Grösse.

Die geeignete Grösse hängt ab von:

  • Dokumenttyp,
  • Sprache,
  • Retrieval-Modell,
  • Embedding-Modell,
  • Fragen,
  • gewünschter Granularität.

20. Kleine Chunks

Kleine Chunks besitzen Vorteile.

Sie sind meist:

  • thematisch präziser,
  • leichter zu ranken,
  • günstiger im Prompt,
  • weniger verrauscht.

Beispiel:

Die Kündigungsfrist während der Probezeit beträgt sieben Tage.

Das ist extrem fokussiert.

Aber kleine Chunks besitzen Nachteile.

Der Satz könnte ohne Kontext unklar sein.

Beispielsweise:

Sie beträgt sieben Tage.

Was beträgt sieben Tage?

Der notwendige Kontext lag vielleicht im vorherigen Satz.


21. Grosse Chunks

Grosse Chunks enthalten mehr Kontext.

Beispiel:

3. Probezeit

Die Probezeit dauert drei Monate.

Während der Probezeit kann das Arbeitsverhältnis
mit einer Frist von sieben Tagen gekündigt werden.

Nach Ablauf der Probezeit gelten die ordentlichen
Kündigungsfristen.

Das Modell erhält mehr Zusammenhang.

Der Nachteil:

Wenn der Chunk zusätzlich noch zehn andere Themen enthält, sinkt seine semantische Präzision.


22. Der Chunking-Trade-off

Das Grundproblem lässt sich so darstellen:

kleine Chunks
    ↓
hohe Präzision
aber weniger Kontext

grosse Chunks
    ↓
mehr Kontext
aber mehr Rauschen

Chunking optimiert deshalb einen Trade-off zwischen:

Granularität und Kontext.


23. Chunk Overlap

Overlap bedeutet, dass benachbarte Chunks einen gemeinsamen Textbereich besitzen.

Beispiel:

Original:

A B C D E F G H I J

Ohne Overlap:

Chunk 1: A B C D E
Chunk 2: F G H I J

Mit Overlap:

Chunk 1: A B C D E F
Chunk 2: E F G H I J

Dadurch gehen Informationen an Chunk-Grenzen weniger leicht verloren.


24. Warum Overlap hilft

Angenommen:

Satz 1:
Während der Probezeit gelten besondere Kündigungsregeln.

Satz 2:
Die Kündigungsfrist beträgt sieben Tage.

Wenn die Grenze zwischen den Sätzen liegt, könnte Chunk 2 nur enthalten:

Die Kündigungsfrist beträgt sieben Tage.

Mit Overlap kann der vorherige Satz mitgenommen werden:

Während der Probezeit gelten besondere Kündigungsregeln.
Die Kündigungsfrist beträgt sieben Tage.

Damit bleibt die Bedeutung klar.


25. Zu viel Overlap ist ebenfalls problematisch

Overlap erzeugt Duplikate.

Bei sehr grossem Overlap entstehen beispielsweise:

Chunk 1: A B C D E F
Chunk 2: C D E F G H
Chunk 3: E F G H I J

Das kann dazu führen, dass Retrieval mehrere fast identische Chunks findet.

Dann erhält das Modell vielleicht fünf Treffer, die inhaltlich fast dasselbe sagen.

Das verschwendet Kontextbudget.

Overlap ist daher eine Optimierung, kein kostenloser Qualitätsgewinn.


26. Fixed-Size Chunking

Die einfachste Strategie ist Fixed-Size Chunking.

Beispielsweise:

alle 500 Tokens

oder:

alle 2'000 Zeichen

Das ist technisch einfach.

Beispiel:

Text
 ↓
500 Tokens
 ↓
500 Tokens
 ↓
500 Tokens

Problem:

Semantische Grenzen werden ignoriert.

Ein Absatz oder Satz kann mitten inhaltlich getrennt werden.


27. Sliding Window

Ein Sliding Window kombiniert fixe Grösse mit Overlap.

Beispielsweise:

Chunk-Grösse: 500 Tokens
Overlap: 100 Tokens

Dann entstehen Fenster wie:

Tokens 1–500
Tokens 401–900
Tokens 801–1300

Das reduziert Randprobleme.

Die grundlegende Schwäche bleibt:

Die Dokumentstruktur wird nicht berücksichtigt.


28. Sentence-Based Chunking

Beim Sentence-Based Chunking werden Satzgrenzen verwendet.

Beispiel:

Satz 1
Satz 2
Satz 3
Satz 4

Chunks könnten dann sein:

Chunk 1:
Satz 1
Satz 2

Chunk 2:
Satz 3
Satz 4

Damit werden Sätze nicht mitten im Text getrennt.

Allerdings bilden Sätze nicht immer sinnvolle thematische Einheiten.


29. Paragraph-Based Chunking

Beim Paragraph-Based Chunking werden Absätze als natürliche Grenzen verwendet.

Das ist häufig sinnvoll, weil ein Absatz typischerweise einen zusammenhängenden Gedanken enthält.

Problematisch wird es bei sehr langen Absätzen.

Ein Absatz kann mehrere hundert oder tausend Wörter besitzen.

Dann benötigt man zusätzliche Split-Regeln.


30. Recursive Chunking

Recursive Character Splitting beziehungsweise Recursive Chunking ist eine sehr verbreitete Strategie.

Dabei wird versucht, zunächst an starken semantischen Grenzen zu teilen.

Beispielsweise:

1. Kapitel
2. Absätze
3. Zeilen
4. Sätze
5. Wörter
6. Zeichen

Das System versucht also zunächst:

\n\n

Dann:

\n

Dann Satzgrenzen.

Erst zuletzt werden harte Zeichen- oder Token-Grenzen verwendet.

Damit wird die Dokumentstruktur besser erhalten als bei reinem Fixed-Size Chunking.


31. Structured Chunking

Beim Structured Chunking wird die logische Dokumentstruktur aktiv berücksichtigt.

Beispielsweise:

1. Arbeitsverhältnis
   1.1 Probezeit
       1.1.1 Dauer
       1.1.2 Kündigung

2. Ferien
   2.1 Anspruch
   2.2 Bezug

Chunks werden entlang dieser Struktur gebildet.

Ein Chunk kann dann enthalten:

Arbeitsverhältnis
> Probezeit
> Kündigung

Während der Probezeit beträgt die Kündigungsfrist sieben Tage.

Damit bleibt die semantische Einordnung erhalten.


32. Heading Path

Der Begriff Heading Path bezeichnet den Pfad durch die Überschriftenhierarchie.

Beispiel:

Personalreglement
    ↓
Arbeitsverhältnis
    ↓
Probezeit
    ↓
Kündigung

Als Metadatum:

[
  "Arbeitsverhältnis",
  "Probezeit",
  "Kündigung"
]

Heading Paths sind besonders wertvoll, weil sie Kontext liefern, ohne grosse Textmengen wiederholen zu müssen.


33. Semantic Chunking

Beim Semantic Chunking wird nicht primär anhand formaler Dokumentgrenzen geteilt.

Stattdessen versucht man, semantische Themenwechsel zu erkennen.

Vereinfacht:

Satz 1 ─┐
Satz 2  │ Thema A
Satz 3 ─┘

Satz 4 ─┐
Satz 5  │ Thema B
Satz 6 ─┘

Ein möglicher Ansatz besteht darin, Embeddings benachbarter Sätze zu vergleichen.

Wenn sich deren Bedeutung stark verändert, wird eine Grenze gesetzt.


34. Vorteile von Semantic Chunking

Semantic Chunking kann sinnvoll sein bei:

  • langen Fliesstexten,
  • schwacher Formatierung,
  • automatisch generierten Dokumenten,
  • Transkripten.

Es kann thematisch kohärentere Chunks erzeugen als starre Fenster.


35. Nachteile von Semantic Chunking

Semantic Chunking bringt zusätzliche Komplexität.

Es kann:

  • mehr Rechenaufwand verursachen,
  • abhängig vom Embedding-Modell sein,
  • instabile Grenzen erzeugen,
  • schwerer reproduzierbar sein.

Ein Dokument mit guter Struktur benötigt nicht automatisch semantisches Chunking.

Oft ist vorhandene Struktur das stärkere Signal.


36. Page-Based Chunking

Bei Page-Based Chunking entspricht eine Seite einem Chunk.

Das ist einfach und praktisch für manche Dokumentarten.

Beispielsweise Präsentationen:

Slide 1 = Chunk 1
Slide 2 = Chunk 2
Slide 3 = Chunk 3

Bei technischen PDFs kann eine Seite ebenfalls eine brauchbare Einheit sein.

Bei langen Fliesstexten ist eine Seite jedoch eine rein visuelle Grenze.

Ein Satz oder Abschnitt kann über zwei Seiten gehen.


37. Section-Based Chunking

Beim Section-Based Chunking bildet ein Abschnitt die Grundeinheit.

Beispiel:

3.2 Kündigung während der Probezeit

wird als Einheit verarbeitet.

Ist der Abschnitt klein genug, bleibt er vollständig.

Ist er zu gross, wird er intern weiter zerlegt.

Dieses Verfahren verbindet logische Struktur mit Grössenlimits.


38. Hybrid Chunking

In realen Systemen werden Chunking-Strategien häufig kombiniert.

Beispielsweise:

Dokumentstruktur erkennen
        ↓
pro Abschnitt chunking
        ↓
bei Übergrösse Satzgrenzen
        ↓
bei Übergrösse Tokenlimit

Das könnte schematisch aussehen:

Section
  │
  ├─ klein genug
  │      ↓
  │    Chunk
  │
  └─ zu gross
         ↓
      Paragraph
         ↓
      Sentence
         ↓
      Token Split

Das ist typischerweise robuster als eine einzige starre Regel.


39. Parent-Child Chunking

Ein fortgeschrittenes Konzept ist Parent-Child Retrieval.

Die Grundidee:

Man verwendet kleine Chunks für die Suche, liefert dem LLM aber einen grösseren übergeordneten Kontext.

Beispiel:

Section: Probezeit
│
├── Child Chunk 1: Dauer
├── Child Chunk 2: Kündigung
└── Child Chunk 3: Ferien

Die Suche findet:

Child Chunk 2

Für die Antwort kann jedoch der Parent bereitgestellt werden:

Section: Probezeit

Damit verbindet man:

  • präzises Retrieval,
  • reichhaltigen Kontext.

40. Small-to-Big Retrieval

Small-to-Big Retrieval bezeichnet denselben Grundgedanken in allgemeiner Form.

Man sucht mit einer kleinen Einheit:

kleiner Chunk

und gibt anschliessend eine grössere Einheit an das Modell:

Abschnitt

oder:

Nachbar-Chunks

Schematisch:

klein suchen
    ↓
relevanten Treffer finden
    ↓
Kontext erweitern
    ↓
gross an LLM geben

41. Warum Small-to-Big sinnvoll ist

Dense Retrieval funktioniert häufig besser auf fokussierten Texten.

Ein kleines Segment besitzt einen klaren semantischen Schwerpunkt.

Für die Generierung benötigt das Modell aber manchmal mehr Kontext.

Small-to-Big trennt deshalb zwei Anforderungen:

Retrieval-Einheit
≠
Prompt-Einheit

Diese Trennung ist konzeptionell sehr wichtig.


42. Neighbor Expansion

Eine einfache Variante von Small-to-Big ist Neighbor Expansion.

Die Suche findet:

Chunk 12

Dann werden zusätzlich geladen:

Chunk 11
Chunk 12
Chunk 13

Dadurch erhält das Modell den lokalen Kontext.

Das funktioniert gut, wenn Dokumente linear strukturiert sind.

Bei Tabellen, stark verschachtelten Dokumenten oder Webseiten kann die unmittelbare Nachbarschaft weniger sinnvoll sein.


43. Parent Document Retriever

Ein Parent Document Retriever speichert eine Beziehung zwischen kleinen Retrieval-Chunks und grösseren Parent-Einheiten.

Beispiel:

Parent: Abschnitt 3

Child 3.1
Child 3.2
Child 3.3

Die Suchmaschine arbeitet auf Child-Chunks.

Nach einem Treffer wird der Parent geladen.

Das Verfahren ist besonders hilfreich bei langen Abschnitten.


44. Hierarchical Chunking

Beim Hierarchical Chunking existieren mehrere Ebenen.

Beispielsweise:

Dokument
  ↓
Kapitel
  ↓
Abschnitt
  ↓
Absatz
  ↓
Chunk

Jede Ebene kann unterschiedliche Aufgaben erfüllen.

Ein Retrieval-System könnte zunächst Kapitel identifizieren und danach innerhalb des Kapitels feinere Chunks suchen.

Das führt bereits in Richtung hierarchischer Retrieval-Architekturen.


45. Late Chunking

Late Chunking verfolgt einen anderen Ansatz.

Bei klassischem Chunking gilt:

Text
 ↓
Chunking
 ↓
Embedding pro Chunk

Bei Late Chunking wird zunächst ein grösserer Kontext gemeinsam durch ein Embedding-Modell verarbeitet.

Danach werden Repräsentationen für kleinere Bereiche abgeleitet.

Vereinfacht:

langer Text
 ↓
gemeinsame Modellverarbeitung
 ↓
lokale Chunk-Repräsentationen

Die Idee:

Ein einzelner Chunk soll bereits bei seiner Vektorrepräsentation Informationen aus dem grösseren Dokumentkontext mitbekommen.


46. Warum Late Chunking interessant ist

Betrachten wir den Satz:

Sie beträgt sieben Tage.

Allein ist er schlecht verständlich.

Im Kontext:

Kündigungsfrist während der Probezeit.
Sie beträgt sieben Tage.

ist die Bedeutung klar.

Klassisches Embedding des einzelnen Satzes verliert möglicherweise diese Information.

Late Chunking versucht, Kontext bereits in die Chunk-Repräsentation einzubauen.


47. Chunk Enrichment

Eine weitere Strategie ist Chunk Enrichment.

Dabei wird einem Chunk zusätzliche Information mitgegeben.

Beispielsweise:

Original:

Sie beträgt sieben Tage.

Angereichert:

Dokument: Personalreglement
Kapitel: Probezeit
Abschnitt: Kündigung

Sie beträgt sieben Tage.

Dadurch wird der Chunk für Retrieval verständlicher.

Enrichment kann stammen aus:

  • Überschriften,
  • Dokumenttitel,
  • Zusammenfassungen,
  • Metadaten,
  • Parent-Kontext.

48. Contextual Retrieval

Ein verwandtes Konzept ist Contextual Retrieval.

Dabei wird einem Chunk explizit erklärt, wo er im Dokument einzuordnen ist.

Beispiel:

Original:

Die Frist beträgt sieben Tage.

Kontextualisiert:

Dieser Abschnitt stammt aus dem Kapitel über die Kündigung
während der Probezeit eines Personalreglements.

Die Frist beträgt sieben Tage.

Damit kann sowohl lexikalisches als auch semantisches Retrieval verbessert werden.


49. Chunk Summary

Statt vollständigen Parent-Kontext hinzuzufügen, kann man eine Chunk Summary erzeugen.

Beispiel:

Summary:
Regelung zur Kündigungsfrist während der Probezeit.

Original:
Die Frist beträgt sieben Tage.

Das kann hilfreich sein, erhöht aber den Ingestion-Aufwand.

Ausserdem können automatisch generierte Zusammenfassungen selbst Fehler enthalten.


50. Chunk Title

Eine einfachere Form des Enrichments ist ein Chunk Title.

Beispiel:

Kündigung während der Probezeit

Während der Probezeit beträgt die Kündigungsfrist sieben Tage.

Titel oder Heading Paths sind häufig hochwertige Kontextsignale, weil sie aus der ursprünglichen Dokumentstruktur stammen und nicht generiert werden müssen.


51. Chunk ID

Jeder Chunk benötigt typischerweise eine eindeutige Identität.

Beispielsweise:

document_123_chunk_42

oder eine UUID.

Die Chunk-ID ermöglicht:

  • Retrieval,
  • Updates,
  • Löschen,
  • Quellenreferenzen,
  • Debugging,
  • Nachvollziehbarkeit.

52. Document ID

Zusätzlich sollte die Beziehung zum Ursprungsdokument erhalten bleiben.

Beispiel:

chunk_id: chunk_42
document_id: document_123

Damit lässt sich nachvollziehen:

Chunk
 ↓
Dokument
 ↓
Originalquelle

Ohne diese Beziehung wären gute Citations schwierig.


53. Position im Dokument

Auch die Position eines Chunks kann wichtig sein.

Beispielsweise:

page: 12
section: 3.2
chunk_index: 42

Diese Daten ermöglichen:

  • Quellenanzeige,
  • Neighbor Expansion,
  • Parent Retrieval,
  • Dokumentnavigation.

54. Versionierung

Dokumente verändern sich.

Beispiel:

Personalreglement 2025
Personalreglement 2026

Oder dieselbe Datei wird ersetzt.

Ein RAG-System sollte deshalb wissen:

Welcher Chunk gehört zu welcher Dokumentversion?

Sonst können alte und neue Aussagen gleichzeitig im Index vorhanden sein.


55. Duplicate Detection

Ein Korpus enthält häufig Duplikate.

Beispielsweise:

Personalreglement.pdf
Personalreglement_Kopie.pdf
Personalreglement_final.pdf
Personalreglement_final_final.pdf

Werden alle unabhängig indexiert, kann Retrieval dieselbe Passage mehrfach zurückgeben.

Das erzeugt scheinbar mehrere Quellen, obwohl nur eine Information mehrfach vorhanden ist.


56. Near-Duplicates

Noch schwieriger sind Near-Duplicates.

Beispiel:

Dokument A:

Die Kündigungsfrist beträgt sieben Tage.

Dokument B:

Die Kündigungsfrist beträgt 7 Tage.

Semantisch ist das praktisch identisch.

Near-Duplicate-Erkennung kann später verhindern, dass der Prompt mit Wiederholungen gefüllt wird.


57. Tabellen

Tabellen benötigen besondere Behandlung.

Beispiel:

VertragsartKündigungsfrist
Probezeit7 Tage
unbefristet3 Monate

Eine lineare Extraktion:

Vertragsart Kündigungsfrist Probezeit 7 Tage unbefristet 3 Monate

ist schlechter als eine strukturierte Darstellung:

Vertragsart: Probezeit
Kündigungsfrist: 7 Tage

Vertragsart: unbefristet
Kündigungsfrist: 3 Monate

Die zweite Variante erhält die Beziehung zwischen Spalten.


58. Tabellen als Markdown

Eine verbreitete Strategie ist, Tabellen in Markdown umzuwandeln.

| Vertragsart | Kündigungsfrist |
|---|---|
| Probezeit | 7 Tage |
| unbefristet | 3 Monate |

Das erhält Struktur relativ kompakt.

Ob das für Retrieval optimal ist, hängt vom Modell und vom Tabelleninhalt ab.


59. Tabellen zeilenweise chunking

Bei grossen Tabellen kann es sinnvoll sein, jede Zeile als eigene Einheit zu behandeln.

Beispiel:

Vertragsart: Probezeit
Kündigungsfrist: 7 Tage

Dadurch lassen sich konkrete Datensätze besser finden.

Für Fragen über die gesamte Tabelle benötigt man dagegen möglicherweise wieder Aggregate oder grössere Kontexte.


60. Listen

Listen sollten ebenfalls nicht blind in Fliesstext verwandelt werden.

Original:

Mitarbeiter erhalten:
- 25 Ferientage
- Homeoffice
- Weiterbildung

Schlecht:

Mitarbeiter erhalten 25 Ferientage Homeoffice Weiterbildung

Besser:

Mitarbeiter erhalten:
- 25 Ferientage
- Homeoffice
- Weiterbildung

Listenstruktur trägt semantische Information.


61. Code

Technische Dokumentationen enthalten häufig Quellcode.

Code sollte möglichst als zusammenhängender Block erhalten bleiben.

Beispiel:

if (user == null)
{
    throw new ArgumentNullException(nameof(user));
}

Ein Split mitten im Code kann:

  • Syntax zerstören,
  • Bedeutung verlieren,
  • Retrieval verschlechtern.

Code-Dokumentation benötigt daher oft andere Chunking-Regeln als Prosa.


62. JSON und strukturierte Daten

JSON ist kein klassischer Fliesstext.

Beispiel:

{
  "name": "Max Muster",
  "department": "IT",
  "status": "active"
}

Man könnte daraus Text erzeugen:

Name: Max Muster
Department: IT
Status: active

Bei grossen Arrays stellt sich aber die Frage:

Ein Chunk pro Record?
Mehrere Records pro Chunk?
Aggregate?

Strukturierte Daten benötigen häufig eine andere Ingestion-Strategie als PDFs.


63. CSV

Auch CSV besteht aus Records.

Beispiel:

name,department,status
Max Muster,IT,active
Anna Beispiel,HR,active

Für Entity-Suche ist oft ein Record pro Chunk sinnvoll.

Für Fragen wie:

Wie viele aktive Mitarbeiter gibt es?

ist reines Chunk-Retrieval dagegen problematisch.

Hier benötigt man eher strukturierte Abfragen oder vorberechnete Aggregate.

Das zeigt:

Nicht jede Wissensfrage ist ideal für Chunk-RAG.


64. HTML

Webseiten enthalten oft viel nicht relevanten Inhalt.

Beispiel:

Header
Navigation
Cookie Banner
Sidebar
Artikel
Footer
Related Posts

Für RAG interessiert meistens:

Artikel

HTML-Ingestion sollte deshalb versuchen, Hauptinhalt von Navigation und Boilerplate zu trennen.


65. Markdown

Markdown besitzt explizite Struktur.

Beispiel:

# Personalreglement

## Probezeit

### Kündigung

Diese Struktur sollte nicht verworfen werden.

Markdown eignet sich deshalb besonders gut für strukturiertes Chunking.


66. E-Mails

E-Mails bringen eigene Probleme mit.

Eine Nachricht kann enthalten:

aktuelle Antwort

--- ursprüngliche Nachricht ---

ältere Antwort

--- ursprüngliche Nachricht ---

noch ältere Nachricht

Wenn der komplette Thread blind indexiert wird, entstehen massive Duplikate.

E-Mail-Ingestion sollte deshalb zwischen:

  • Nachricht,
  • Thread,
  • Zitat,
  • Signatur,
  • Anhängen

unterscheiden.


67. Chatverläufe

Auch Chats bestehen aus strukturierter Kommunikation.

Beispiel:

User A: Wann wird deployed?
User B: Freitag.
User A: Welcher Build?
User B: 1.4.7.

Einzelne Nachrichten allein können unverständlich sein.

Freitag.

ist ohne Kontext wertlos.

Chats benötigen deshalb häufig konversationsbezogenes Chunking.


68. Transkripte

Meeting- oder Video-Transkripte sind lange lineare Texte.

Nützliche Metadaten können sein:

Sprecher
Zeitstempel
Kapitel
Thema

Chunking nur nach fester Länge kann mitten in einem Sprecherwechsel oder Thema schneiden.


69. Dokumentqualität vor Retrieval-Qualität

Ein wichtiger Grundsatz lautet:

schlechte Extraktion
        ↓
schlechte Chunks
        ↓
schlechter Index
        ↓
schlechtes Retrieval

Das LLM kann diese Fehler am Ende nicht zuverlässig reparieren.

Wenn aus:

Kündigungsfrist: sieben Tage

durch OCR wird:

Kündigungsfrist: sieben lage

existiert bereits ein Datenqualitätsproblem vor dem Retrieval.


70. Garbage In, Garbage Out

Der bekannte Grundsatz:

Garbage In, Garbage Out

gilt für RAG besonders stark.

Eine hochwertige Embedding-Suche kann keine Information finden, die beim Parsing verloren gegangen ist.

Ein Cross-Encoder kann keinen kaputten Tabellenzusammenhang rekonstruieren, wenn die Zuordnung bereits zerstört wurde.

Ein LLM kann fehlende Dokumentstruktur höchstens erraten.

Deshalb beginnt RAG-Qualität bei der Ingestion.


71. Chunking und Retrieval sind gekoppelt

Chunking darf nicht isoliert betrachtet werden.

Eine Chunking-Strategie beeinflusst:

  • Dense Retrieval,
  • Sparse Retrieval,
  • Reranking,
  • Promptgrösse,
  • Citation-Granularität,
  • Antwortqualität.

Beispiel:

Sehr kleine Chunks können Dense Retrieval verbessern.

Aber ein Cross-Encoder benötigt möglicherweise mehr Kontext.

Sehr grosse Chunks können BM25-Treffer verwässern.

Chunking muss deshalb gegen das gesamte Retrieval-System evaluiert werden.


72. Chunking und Embeddings

Embeddings werden häufig pro Chunk berechnet.

Chunk
 ↓
Embedding Model
 ↓
Vector

Die Chunk-Grösse beeinflusst damit unmittelbar die Bedeutung des Vektors.

Ein Embedding von:

Kündigungsfrist während der Probezeit: sieben Tage.

ist stark fokussiert.

Ein Embedding von zwanzig Seiten Personalreglement repräsentiert viele Themen gleichzeitig.

Dadurch sinkt die lokale semantische Präzision.


73. Chunking und Sparse Retrieval

Auch lexikalische Verfahren wie BM25 reagieren auf Chunk-Grösse.

Ein kurzer Chunk:

Probezeit Kündigungsfrist sieben Tage

hat eine hohe Konzentration relevanter Terme.

Ein grosser Chunk könnte zusätzlich enthalten:

Ferien
Lohn
Spesen
Versicherungen
Arbeitszeit
Weiterbildung

Damit wird die Relevanz eines einzelnen Begriffs relativ schwächer.


74. Chunking und Reranking

Reranker bewerten typischerweise:

Frage + Passage

Ist die Passage extrem lang, enthält sie möglicherweise viel irrelevanten Text.

Ist sie zu kurz, fehlt Kontext.

Auch hier existiert ein optimaler Bereich, der vom Modell abhängt.


75. Chunking und Citations

Chunk-Grösse beeinflusst auch Quellenangaben.

Ein kleiner Chunk erlaubt eine präzise Citation.

Beispiel:

Seite 7, Absatz Kündigung

Ein riesiger Chunk kann als Quelle mehrere Seiten umfassen.

Dann wird die Citation weniger hilfreich.


76. Chunk Boundaries

Als Chunk Boundary bezeichnet man die Grenze zwischen zwei Chunks.

Gute Grenzen liegen bevorzugt an:

  • Kapitelwechseln,
  • Abschnittswechseln,
  • Absatzgrenzen,
  • Satzgrenzen.

Schlechte Grenzen liegen:

  • mitten im Satz,
  • mitten in einer Tabelle,
  • zwischen Frage und Antwort,
  • zwischen Überschrift und Absatz,
  • zwischen Codezeilen eines Blocks.

77. Boundary Preservation

Boundary Preservation bedeutet, semantische oder strukturelle Grenzen möglichst zu respektieren.

Ein guter Chunker versucht beispielsweise:

Section
 ↓
Paragraph
 ↓
Sentence

und splittet erst hart, wenn Grössenlimits sonst überschritten werden.


78. Chunk Context

Ein Chunk sollte genügend Chunk Context besitzen, um sinnvoll interpretiert werden zu können.

Beispiel:

Schlecht:

Sie beträgt sieben Tage.

Besser:

Kündigung während der Probezeit

Die Kündigungsfrist beträgt sieben Tage.

Chunk Context kann aus:

  • Überschrift,
  • Parent Section,
  • vorherigem Satz,
  • Metadaten

kommen.


79. Chunk Cohesion

Cohesion beschreibt, wie stark die Inhalte eines Chunks thematisch zusammengehören.

Ein guter Chunk besitzt hohe Kohäsion:

Probezeit
Kündigungsfrist
sieben Tage

Ein schlechter Chunk mischt:

Probezeit
Kantinenmenu
VPN-Konfiguration
Kündigungsfrist

Hohe Kohäsion verbessert meist semantisches Retrieval.


80. Chunk Completeness

Ein Chunk sollte möglichst eine vollständige inhaltliche Aussage enthalten.

Beispiel:

Unvollständig:

Die Kündigungsfrist beträgt

Vollständig:

Die Kündigungsfrist beträgt sieben Tage.

Completeness ist besonders wichtig bei:

  • Regeln,
  • Definitionen,
  • Zahlen,
  • Bedingungen.

81. Conditional Statements

Regelwerke enthalten häufig Bedingungen.

Beispiel:

Wenn die Probezeit verlängert wurde,
beträgt die Kündigungsfrist weiterhin sieben Tage.

Ein Chunk, der nur enthält:

beträgt die Kündigungsfrist weiterhin sieben Tage

verliert die Bedingung.

Dadurch kann das RAG-System später falsche allgemeine Aussagen erzeugen.


82. Negationen

Negationen müssen ebenfalls im Chunk erhalten bleiben.

Original:

Während der Probezeit besteht kein Anspruch auf Homeoffice.

Wenn durch schlechtes Parsing oder Chunking nur verbleibt:

Anspruch auf Homeoffice.

ändert sich die Bedeutung vollständig.


83. Zahlen und Einheiten

Zahlen sollten zusammen mit ihrer Einheit und ihrem Bezug bleiben.

Schlecht:

CHF 500

Besser:

Die maximale Spesenpauschale beträgt CHF 500 pro Monat.

Das ist sowohl für Retrieval als auch für spätere Grounding-Prüfungen relevant.


84. Tabellenköpfe wiederholen

Bei grossen Tabellen kann ein Chunk sonst nur enthalten:

A | 500 | aktiv
B | 700 | inaktiv

Ohne Header ist die Bedeutung unklar.

Deshalb werden Tabellenköpfe häufig in jeden Teilchunk übernommen:

Name | Betrag | Status
A | 500 | aktiv

85. Dokumenttitel wiederholen

Ähnlich kann ein Dokumenttitel als Metadatum oder Kontext jedem Chunk hinzugefügt werden.

Beispiel:

Dokument: Personalreglement 2026
Abschnitt: Probezeit

Die Kündigungsfrist beträgt sieben Tage.

Das kann helfen, ähnlich klingende Dokumente zu unterscheiden.


86. Kontextanreicherung versus Duplikation

Zusätzlicher Kontext hilft.

Aber zu viel Wiederholung verursacht:

  • grössere Embedding-Texte,
  • mehr Speicher,
  • lexikalische Verzerrung,
  • Duplikate im Prompt.

Daher sollte Kontextanreicherung gezielt erfolgen.


87. Chunking nach Dokumenttyp

Es gibt keinen Grund, für alle Dokumenttypen dieselbe Strategie zu verwenden.

Beispiel:

Dokumenttypmögliche Strategie
GesetzArtikel / Absatz
HandbuchKapitel / Abschnitt
PräsentationFolie
ChatGesprächssegment
TabelleZeile oder Gruppe
JSONRecord
CodeFunktion / Klasse
MarkdownHeading-Hierarchie
E-MailNachricht / Threadsegment

Das Format selbst gibt oft gute natürliche Grenzen vor.


88. Code Chunking

Bei Source Code sind syntaktische Strukturen gute Grenzen.

Beispiel:

Namespace
  ↓
Class
  ↓
Method

Statt:

alle 500 Tokens

kann man chunking entlang von:

  • Klassen,
  • Methoden,
  • Funktionen,
  • Modulen

verwenden.

Das erhält semantische Einheiten.


89. AST-basiertes Chunking

Bei Programmiersprachen kann ein Abstract Syntax Tree, kurz AST, genutzt werden.

Beispiel:

ClassDeclaration
 ├── MethodDeclaration
 ├── MethodDeclaration
 └── PropertyDeclaration

AST-basiertes Chunking ist präziser als reine Textgrenzen, weil es die Sprachsyntax versteht.


90. Chunking von Dokumentationen

Technische Dokumentation besitzt häufig natürliche Hierarchien:

Produkt
 ↓
Komponente
 ↓
Feature
 ↓
API
 ↓
Beispiel

Diese Struktur sollte möglichst erhalten bleiben.

Eine API-Dokumentation mitten zwischen Parameterliste und Return-Wert zu splitten wäre ungünstig.


91. Multimodale Dokumente

Manche Dokumente enthalten relevante Information nicht nur als Text.

Beispiele:

  • Diagramme,
  • Screenshots,
  • Architekturzeichnungen,
  • Charts,
  • Formulare.

Ein reiner Textparser verliert diese Information.

Multimodale RAG-Systeme können zusätzlich:

  • Bilder beschreiben,
  • Bild-Embeddings erzeugen,
  • Layout interpretieren,
  • Visual Question Answering verwenden.

Das erweitert die Ingestion über klassischen Text hinaus.


92. Image Captioning

Eine Möglichkeit ist, Bilder automatisch beschreiben zu lassen.

Beispiel:

Bild
 ↓
Vision Model
 ↓
"Diagramm zeigt einen Client, der über eine API
mit drei Backend-Services kommuniziert."

Diese Beschreibung kann anschliessend indexiert werden.

Problem:

Eine generierte Beschreibung ist bereits eine Interpretation.

Sie kann Details auslassen oder falsch beschreiben.


93. Multimodal Embeddings

Statt ein Bild zuerst in Text umzuwandeln, können Systeme multimodale Embeddings verwenden.

Dabei werden Text und Bilder in einen gemeinsamen oder vergleichbaren Vektorraum überführt.

Dann kann eine Textfrage direkt relevante Bilder finden.

Das ist konzeptionell eine Erweiterung klassischer Dense Retrieval-Verfahren.


94. Ingestion Pipeline

Eine typische allgemeine Ingestion-Pipeline kann deshalb deutlich umfangreicher aussehen:

Quelle
  ↓
Dateityp erkennen
  ↓
Parser auswählen
  ↓
Text / Layout / Tabellen extrahieren
  ↓
OCR falls nötig
  ↓
Normalisieren
  ↓
Struktur erkennen
  ↓
Metadaten erfassen
  ↓
Chunking
  ↓
Chunk Enrichment
  ↓
Embedding / Sparse Representation
  ↓
Indexierung

Nicht jedes System benötigt alle Schritte.

Die Pipeline zeigt aber, wie viel vor dem eigentlichen Retrieval passiert.


95. Deterministische versus LLM-basierte Ingestion

Ingestion kann mit klassischen Algorithmen oder LLMs durchgeführt werden.

Deterministisch

Beispiele:

  • Regex,
  • HTML Parser,
  • PDF Parser,
  • AST,
  • Heading-Erkennung,
  • Tabellenparser.

Vorteile:

  • reproduzierbar,
  • günstig,
  • schnell,
  • nachvollziehbar.

LLM-basiert

Beispiele:

  • Überschriften rekonstruieren,
  • Tabellen interpretieren,
  • Kontextbeschreibung erzeugen,
  • Dokument klassifizieren,
  • Chunk Summary erstellen.

Vorteile:

  • flexibler bei unstrukturierten Daten.

Nachteile:

  • teurer,
  • langsamer,
  • nicht vollständig deterministisch,
  • potenziell halluzinierend.

96. Reprocessing

Wenn sich eine wichtige Ingestion-Entscheidung ändert, müssen Dokumente häufig erneut verarbeitet werden.

Beispiele:

anderer Parser
anderes Chunking
anderes Embedding-Modell
andere Metadaten

Dann spricht man häufig von:

Reprocessing oder Re-Indexing.

Das ist ein wichtiger Unterschied zu Änderungen, die nur die spätere Suche betreffen.


97. Re-Indexing

Re-Indexing bedeutet, den Suchindex neu aufzubauen.

Beispiel:

alte Chunks
 ↓
löschen

Dokumente
 ↓
neue Chunking-Regel
 ↓
neue Chunks
 ↓
neuer Index

Bei grossen Korpora kann Re-Indexing erheblichen Aufwand verursachen.

Deshalb sind Ingestion-Entscheidungen langfristig relevant.


98. Index Drift

Wenn Dokumente mit unterschiedlichen Einstellungen verarbeitet wurden, kann Index Drift entstehen.

Beispielsweise:

alte Dokumente:
Embedding Model A
Chunk Size 500

neue Dokumente:
Embedding Model B
Chunk Size 1'000

Der Index ist dann nicht mehr homogen.

Das kann Retrieval unvorhersehbar machen.


99. Embedding-Versionen

Besonders kritisch ist der Wechsel eines Embedding-Modells.

Vektoren verschiedener Modelle sind normalerweise nicht direkt vergleichbar.

Wenn Dokumente mit Modell A eingebettet wurden und die Query mit Modell B, funktioniert semantische Ähnlichkeit nicht sinnvoll.

Deshalb müssen Modellversionen sauber verwaltet werden.


100. Chunking-Versionen

Auch Chunking-Regeln können versioniert werden.

Beispiel:

chunking_version: 3

Damit lässt sich nachvollziehen, mit welcher Strategie ein Chunk erzeugt wurde.

Das ist hilfreich für:

  • Reprocessing,
  • Debugging,
  • Evaluation,
  • Migrationen.

101. Evaluation von Chunking

Chunking sollte nicht nur nach Bauchgefühl gewählt werden.

Man kann verschiedene Strategien testen.

Beispielsweise:

Strategie A:
500 Tokens, 50 Overlap

Strategie B:
strukturierte Abschnitte

Strategie C:
Parent-Child

Danach misst man:

Findet das Retrieval die richtigen Passagen?

Chunking-Evaluation ist deshalb letztlich Retrieval-Evaluation.


102. Gold Questions

Für Tests benötigt man Fragen mit bekannten relevanten Quellen.

Beispiel:

Frage:
Wie lange ist die Kündigungsfrist während der Probezeit?

Relevant:
Dokument A, Abschnitt 3.2

Dann kann man messen, ob unterschiedliche Chunking-Strategien den relevanten Abschnitt in die Top-k bringen.


103. Retrieval Granularity

Retrieval Granularity beschreibt die Grösse der Einheit, auf der gesucht wird.

Mögliche Ebenen:

Dokument
Kapitel
Abschnitt
Chunk
Satz
Record

Feine Granularität bietet hohe Präzision.

Grobe Granularität liefert mehr Kontext.

Parent-Child Retrieval versucht genau diesen Konflikt zu entschärfen.


104. Storage Granularity

Die Storage Granularity muss nicht mit der Retrieval Granularity identisch sein.

Ein System könnte beispielsweise speichern:

Dokument
Section
Chunk

aber nur auf Chunk-Ebene suchen.

Die anderen Ebenen dienen später der Kontextrekonstruktion.


105. Retrieval Unit versus Context Unit

Eine der wichtigsten Begriffsunterscheidungen dieses Teils:

Retrieval Unit

Die Einheit, die gesucht und gerankt wird.

Context Unit

Die Einheit, die dem LLM tatsächlich gegeben wird.

Beispiel:

Retrieval Unit:
2 Sätze

Context Unit:
ganzer Abschnitt

Das ist die Grundlage für Parent-Child und Small-to-Big Retrieval.


106. Source of Truth

Bei Chunk-basierten Systemen sollte der Chunk nicht zwingend die einzige gespeicherte Wahrheit sein.

Ideal ist häufig:

Originaldokument
      ↓
strukturierte Repräsentation
      ↓
Chunks

Das Original bleibt die Source of Truth.

Chunks sind abgeleitete Retrieval-Artefakte.

Das erleichtert später:

  • Reprocessing,
  • neue Chunking-Verfahren,
  • neue Embeddings,
  • bessere Parser.

107. Lossy versus Lossless Processing

Lossless Processing versucht, Information vollständig zu erhalten.

Lossy Processing verwirft oder verdichtet bewusst Information.

Beispiel:

Originaldokument:

10 Seiten

Zusammenfassung:

1 Seite

Die Zusammenfassung ist lossy.

Das kann für Retrieval hilfreich sein, darf aber nicht mit dem Original verwechselt werden.


108. Summaries sind keine Originalquellen

Automatisch erzeugte Dokument- oder Chunk-Zusammenfassungen können nützlich sein.

Sie sollten aber als abgeleitete Information betrachtet werden.

Denn ein Summary-Modell kann:

  • Details auslassen,
  • Zahlen verändern,
  • Nuancen verlieren,
  • falsche Schlüsse ziehen.

Für quellengebundene Antworten sollte möglichst weiterhin auf Originalpassagen zurückgegriffen werden.


109. Metadata Filtering

Metadaten können später beim Retrieval als Filter dienen.

Beispielsweise:

year = 2026
language = de
document_type = policy

Das ist effizienter, als jede Information nur über semantische Ähnlichkeit zu lösen.

Dafür müssen die Metadaten bereits während der Ingestion sauber vorhanden sein.


110. Metadata Enrichment

Metadaten können aus verschiedenen Quellen stammen.

Direkt aus der Datei

Dateiname
Author
Creation Date

Aus dem Inhalt

Titel
Kapitel
Sprache
Datum

Extern

SharePoint Site
Folder
Owner
Permission

Generiert

Thema
Zusammenfassung
Klassifikation

Generierte Metadaten sind nützlich, aber weniger verlässlich als direkt vorhandene.


111. Permissions als Metadaten

In Unternehmenssystemen kann auch die Zugriffsberechtigung mit Dokumenten oder Chunks verbunden sein.

Beispielsweise:

allowed_group = HR

Dann darf Retrieval diese Inhalte nur für entsprechende Benutzer berücksichtigen.

Das ist kein klassisches Chunking-Thema, gehört aber zur korrekten Ingestion von Unternehmenswissen.

Denn Berechtigungen müssen spätestens beim Indexieren oder Retrieval erhalten bleiben.


112. Chunk Provenance

Provenance bedeutet Herkunft und Nachvollziehbarkeit.

Für einen Chunk sollte idealerweise klar sein:

aus welchem Dokument?
welche Version?
welche Seite?
welcher Abschnitt?
welcher Parser?
welcher Chunker?

Diese Informationen sind besonders wertvoll für Debugging.


113. Warum Provenance wichtig ist

Angenommen, ein System liefert eine falsche Antwort.

Im Trace erscheint:

Chunk 5832

Ohne weitere Metadaten ist das kaum hilfreich.

Mit Provenance:

Document: Personalreglement 2026
Page: 7
Heading: Probezeit > Kündigung
Chunk Index: 12

lässt sich sofort nachvollziehen, woher der Treffer stammt.


114. Ingestion Observability

Auch die Ingestion selbst sollte beobachtbar sein.

Nützliche Kennzahlen können sein:

Dokumente verarbeitet
Dokumente fehlgeschlagen
OCR verwendet
Textlänge
Chunk-Anzahl
durchschnittliche Chunk-Grösse
Duplikate
leere Dokumente

Ein Dokument mit:

0 Chunks

ist zwar möglicherweise technisch „verarbeitet“, für Retrieval aber wertlos.


115. Empty Documents

Manche Dateien liefern nach Parsing keinen verwertbaren Text.

Gründe:

  • Scan ohne OCR,
  • beschädigte Datei,
  • DRM,
  • ungewöhnliche Codierung,
  • parserseitiger Fehler.

Solche Dokumente sollten nicht stillschweigend als erfolgreich indexiert gelten.


116. Very Short Documents

Sehr kurze Dokumente benötigen häufig kein klassisches Chunking.

Beispiel:

Passwort muss mindestens 14 Zeichen besitzen.

Dieser gesamte Text kann ein Chunk sein.

Ein fixer Chunker sollte nicht künstlich versuchen, jeden Inhalt gleich zu behandeln.


117. Very Large Documents

Sehr grosse Dokumente benötigen dagegen möglicherweise mehrere Hierarchiestufen.

Beispiel:

2'000 Seiten

Ein rein flaches Chunking kann zehntausende Chunks erzeugen.

Dann werden Dokument-Level- oder Section-Level-Repräsentationen interessant.


118. Chunk Explosion

Als Chunk Explosion kann man informell das Problem bezeichnen, dass aggressive Split-Regeln sehr viele kleine Chunks erzeugen.

Beispiel:

1'000 Dokumente
→ 300'000 Chunks

Das erhöht:

  • Indexgrösse,
  • Embedding-Kosten,
  • Retrieval-Kandidaten,
  • Speicherbedarf.

Mehr Chunks bedeuten nicht automatisch bessere Qualität.


119. Chunk Compression

Umgekehrt können Chunks nachträglich komprimiert oder gefiltert werden.

Eine Form ist Contextual Compression.

Dabei wird aus einem gefundenen Chunk nur der für die Frage relevante Teil übernommen.

Beispiel:

Chunk:

Probezeit dauert drei Monate.
Kündigungsfrist beträgt sieben Tage.
Ferienanspruch besteht anteilig.

Frage:

Wie lange ist die Kündigungsfrist?

Komprimierter Kontext:

Kündigungsfrist beträgt sieben Tage.

Contextual Compression gehört technisch eher in den Query-Pfad, steht aber in engem Zusammenhang mit Chunk-Grösse.


120. Chunking ist keine einmalige Wahrheit

Es existiert keine allgemeingültige Regel:

512 Tokens sind optimal.

oder:

20 % Overlap sind optimal.

Solche Werte sind Startpunkte.

Die richtige Chunking-Strategie hängt vom Korpus und den tatsächlichen Fragen ab.

Ein Gesetz, ein Code-Repository und ein Meeting-Transkript benötigen unterschiedliche Ansätze.


121. Der richtige Denkansatz

Die bessere Frage lautet nicht:

Welche Chunk Size sollte ich verwenden?

Sondern:

Welche Informationseinheiten müssen in meinem Korpus gemeinsam erhalten bleiben, damit die typischen Benutzerfragen beantwortbar bleiben?

Erst danach kommen technische Parameter.


122. Beispiel: Reglement

Original:

3. Probezeit

3.1 Dauer

Die Probezeit beträgt drei Monate.

3.2 Kündigung

Während der Probezeit kann das Arbeitsverhältnis
mit einer Frist von sieben Tagen gekündigt werden.

Eine sinnvolle Repräsentation könnte sein:

Chunk 1

Heading Path:
Probezeit > Dauer

Text:
Die Probezeit beträgt drei Monate.
Chunk 2

Heading Path:
Probezeit > Kündigung

Text:
Während der Probezeit kann das Arbeitsverhältnis
mit einer Frist von sieben Tagen gekündigt werden.

Damit sind beide Regeln getrennt auffindbar, behalten aber ihren Kontext.


123. Beispiel: Schlechte Variante

Chunk 1:
3. Probezeit 3.1 Dauer Die Probezeit beträgt drei Monate.
3.2 Kündigung Während
Chunk 2:
der Probezeit kann das Arbeitsverhältnis mit einer Frist
von sieben Tagen gekündigt werden.

Die Chunk-Grenze liegt mitten in einer Aussage.

Das Retrieval muss nun trotz künstlicher Trennung korrekt funktionieren.

Das ist vermeidbar.


124. Beispiel: Zu grosse Variante

Chunk 1:

gesamtes Personalreglement,
18'000 Wörter

Die Information ist vollständig vorhanden.

Aber das Retrieval erhält eine sehr unspezifische Repräsentation.

Die relevante Passage ist semantisch nur ein kleiner Anteil des Chunks.


125. Beispiel: Parent-Child

Retrieval-Chunks:

Child A:
Die Probezeit beträgt drei Monate.

Child B:
Die Kündigungsfrist beträgt sieben Tage.

Parent:

Probezeit

Die Probezeit beträgt drei Monate.
Während der Probezeit beträgt die Kündigungsfrist sieben Tage.
Nach Ablauf gelten die ordentlichen Fristen.

Suche:

Wie lang ist die Kündigungsfrist während der Probezeit?

Retriever findet:

Child B

Prompt erhält:

Parent

Das ist das Kernprinzip von Small-to-Big Retrieval.


126. Typische Chunking-Fehler

Zu den häufigsten Fehlern gehören:

  • starre Chunk-Grösse für alle Dokumenttypen,
  • Überschriften werden vom Inhalt getrennt,
  • Tabellen werden linearisiert und zerstört,
  • Seitenköpfe werden mehrfach indexiert,
  • zu grosser Overlap,
  • zu kleine Chunks,
  • zu grosse Chunks,
  • Dokumenttitel gehen verloren,
  • Parent-Beziehungen fehlen,
  • Quellenpositionen werden nicht gespeichert,
  • OCR-Fehler werden ignoriert,
  • alte Dokumentversionen bleiben im Index.

127. Was Chunking nicht lösen kann

Chunking ist wichtig, aber kein Allheilmittel.

Es kann nicht automatisch lösen:

  • falsche Dokumente,
  • veraltete Informationen,
  • fehlende Berechtigungen,
  • schlechte OCR,
  • widersprüchliche Quellen,
  • ungeeignete Retrieval-Verfahren,
  • Halluzinationen des LLM.

Chunking ist eine Stufe in der gesamten Pipeline.


128. Parsing, Chunking und Retrieval sauber trennen

Diese drei Begriffe werden häufig vermischt.

Parsing

Datei → Inhalt

Chunking

Inhalt → Einheiten

Retrieval

Frage → relevante Einheiten

Schematisch:

PDF
 ↓
Parsing
 ↓
strukturierter Text
 ↓
Chunking
 ↓
Chunks
 ↓
Index
 ↓
Retrieval
 ↓
relevante Chunks

Diese Trennung ist zentral.


129. Chunking versus Indexing

Chunking erzeugt Retrieval-Einheiten.

Indexing macht diese Einheiten effizient durchsuchbar.

Beispielsweise:

Chunk
 ↓
Embedding
 ↓
Vector Index

oder:

Chunk
 ↓
Tokenisierung
 ↓
BM25 Index

Dieselbe Chunking-Struktur kann theoretisch mit unterschiedlichen Indizes verwendet werden.


130. Chunking versus Embedding

Auch diese Begriffe sind getrennt.

Text
 ↓
Chunking
 ↓
Chunk
 ↓
Embedding
 ↓
Vector

Chunking entscheidet, welcher Text zusammengehört.

Embedding entscheidet, wie dieser Text numerisch repräsentiert wird.

Teil 3 behandelt genau diesen nächsten Schritt.


131. Begriffsübersicht

BegriffBedeutung
IngestionAufnahme und Aufbereitung von Wissen für Retrieval
Parsingstrukturierte Interpretation eines Datenformats
Text ExtractionExtraktion von Text ohne zwingenden Strukturerhalt
Layout ParsingErkennung visueller Dokumentstruktur
OCRTexterkennung aus Bildern oder Scans
NormalisierungBereinigung technischer Textartefakte
Boilerplatewiederkehrender, meist irrelevanter Dokumentinhalt
Metadatenzusätzliche Informationen über Dokument oder Chunk
Chunkkleinere Retrieval-Einheit eines grösseren Dokuments
Chunk Sizemaximale beziehungsweise angestrebte Chunk-Grösse
Overlapüberlappender Inhalt benachbarter Chunks
Fixed-Size ChunkingZerlegung nach fixer Länge
Sliding Windowfixe Fenster mit Overlap
Sentence ChunkingZerlegung entlang von Satzgrenzen
Paragraph ChunkingZerlegung entlang von Absätzen
Recursive Chunkingschrittweise Nutzung verschiedener Trennzeichen
Structured ChunkingChunking anhand logischer Dokumentstruktur
Semantic ChunkingChunk-Grenzen anhand semantischer Themenwechsel
Page Chunkingeine Seite als Retrieval-Einheit
Section ChunkingAbschnitte als Grundeinheit
Heading Pathhierarchischer Überschriftenpfad eines Chunks
Parent-Child Retrievalkleine Chunks suchen, grösseren Parent liefern
Small-to-Bigkleine Retrieval-Einheit, grössere Prompt-Einheit
Neighbor Expansionbenachbarte Chunks zusätzlich laden
Hierarchical Chunkingmehrere Dokumentebenen als Retrievalstruktur
Late ChunkingKontext vor der finalen Chunk-Repräsentation berücksichtigen
Chunk EnrichmentChunks um zusätzlichen Kontext erweitern
Contextual RetrievalChunks mit Dokumentkontext für Suche anreichern
ProvenanceHerkunft und Nachvollziehbarkeit eines Chunks
ReprocessingDokumente erneut durch die Ingestion schicken
Re-IndexingSuchindex neu erzeugen
Index Driftinkonsistente Indexierung über verschiedene Versionen
Retrieval UnitEinheit, auf der gesucht wird
Context UnitEinheit, die dem LLM bereitgestellt wird

132. Die wichtigste Erkenntnis aus Teil 2

Die Qualität eines RAG-Systems beginnt nicht beim LLM.

Sie beginnt beim Dokument.

Original
   ↓
Parsing
   ↓
Struktur
   ↓
Chunking
   ↓
Repräsentation
   ↓
Index
   ↓
Retrieval

Wenn in den ersten Stufen Information verloren geht, kann keine spätere Stufe sie zuverlässig zurückholen.

Deshalb lautet eine der wichtigsten Regeln beim Aufbau von RAG-Systemen:

Chunking ist kein Split-Parameter. Chunking ist Informationsmodellierung.

Man entscheidet damit, welche Einheiten später als Wissen betrachtet werden.

Ein guter Chunk ist nicht einfach „ungefähr 500 Tokens lang“.

Er ist:

  • semantisch zusammenhängend,
  • ausreichend vollständig,
  • nachvollziehbar,
  • mit seinem Ursprung verbunden,
  • für Retrieval präzise genug,
  • für die spätere Antwort kontextreich genug.

Und genau nach dem Chunking beginnt die nächste grosse Frage:

Wie verwandelt man Text in eine mathematische Repräsentation, mit der semantische Ähnlichkeit berechnet werden kann?

Das führt direkt zu Embeddings und Vektorsuche.

RAG von Grund auf

Teil 1 – RAG verstehen
LLM, parametrisches Wissen, Kontext, Retrieval, Augmentation, Generation und Grounding.

Teil 2 – Dokumente, Parsing und Chunking
Ingestion, Parser, OCR, Dokumentstruktur, Chunks, Overlap, Structured Chunking, Parent-Child und Small-to-Big.

Teil 3 – Embeddings und Vektorsuche
Embeddings, Dense Vectors, Ähnlichkeitsmasse, Vector Stores, ANN und HNSW.

Teil 4 – Information Retrieval und Hybrid Search
TF, IDF, TF-IDF, BM25, Sparse Search, Dense Search, Hybrid Retrieval und RRF.

Teil 5 – Reranking und Retrieval-Strategien
Bi-Encoder, Cross-Encoder, Top-k, MMR, Query Rewrite, Multi-Query und HyDE.

Teil 6 – Kontext, Grounding und Antworten
Token-Budget, Kontextfenster, Lost in the Middle, Faithfulness, Citations und Answerability.

Teil 7 – Advanced RAG
Naive RAG, Modular RAG, Multi-Hop, Self-RAG, CRAG, RAPTOR, GraphRAG, ColBERT und Agentic RAG.

Teil 8 – Evaluation, Sicherheit und Abgrenzung
Recall, Precision, Hit@k, MRR, nDCG, RAG-Evaluation, Prompt Injection, RAG Poisoning, Fine-Tuning und Tool Calling.

Mehr zu diesem Thema