{"id":344,"date":"2026-09-09T18:37:06","date_gmt":"2026-09-09T18:37:06","guid":{"rendered":"https:\/\/www.fabricioruch.ch\/?p=344"},"modified":"2026-09-25T21:17:33","modified_gmt":"2026-09-25T21:17:33","slug":"rag-von-grund-auf-teil-2-dokumente-parsing-und-chunking","status":"publish","type":"post","link":"https:\/\/www.fabricioruch.ch\/?p=344","title":{"rendered":"RAG von Grund auf \u2013 Teil 2: Dokumente, Parsing und Chunking"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Im ersten Teil ging es um die Grundidee von Retrieval-Augmented Generation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Retrieval\n    \u2193\nAugmentation\n    \u2193\nGeneration\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit ein System \u00fcberhaupt sinnvoll retrieven kann, muss Wissen zuerst in eine Form gebracht werden, die sich durchsuchen l\u00e4sst.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Genau hier beginnt die <strong>Ingestion<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Teil behandelt deshalb die Seite von RAG, die h\u00e4ufig untersch\u00e4tzt wird: Dokumente einlesen, strukturieren, zerlegen und so vorbereiten, dass sp\u00e4ter gute Suchergebnisse m\u00f6glich werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Denn ein RAG-System kann nur finden, was vorher sinnvoll aufbereitet wurde.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">1. Ingestion: Wissen f\u00fcr Retrieval vorbereiten<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Unter <strong>Ingestion<\/strong> versteht man den Prozess, bei dem Rohdaten in einen durchsuchbaren Wissensbestand \u00fcberf\u00fchrt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typischer Ablauf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Datei\n \u2193\nParsing\n \u2193\nstrukturierter Text\n \u2193\nChunking\n \u2193\nindexierbare Einheiten\n \u2193\nIndex\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je nach System kommen weitere Schritte hinzu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Datei\n \u2193\nParsing\n \u2193\nNormalisierung\n \u2193\nStrukturerkennung\n \u2193\nChunking\n \u2193\nMetadaten\n \u2193\nEmbedding \/ Sparse-Repr\u00e4sentation\n \u2193\nIndexierung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Ingestion entscheidet damit wesentlich dar\u00fcber, welche Informationen sp\u00e4ter \u00fcberhaupt auffindbar sind.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">2. Dokumente sind nicht einfach Textdateien<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein h\u00e4ufiger Denkfehler lautet:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Ein Dokument enth\u00e4lt Text, also lese ich den Text aus und speichere ihn.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">In der Praxis ist ein Dokument wesentlich mehr als eine lineare Folge von Zeichen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein PDF kann enthalten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00dcberschriften,<\/li>\n\n\n\n<li>Abs\u00e4tze,<\/li>\n\n\n\n<li>Tabellen,<\/li>\n\n\n\n<li>Fussnoten,<\/li>\n\n\n\n<li>Kopfzeilen,<\/li>\n\n\n\n<li>Seitenzahlen,<\/li>\n\n\n\n<li>Bilder,<\/li>\n\n\n\n<li>Diagramme,<\/li>\n\n\n\n<li>mehrspaltige Layouts,<\/li>\n\n\n\n<li>eingebettete Schriftarten,<\/li>\n\n\n\n<li>gescannte Seiten.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Word-Dokument kann enthalten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Formatvorlagen,<\/li>\n\n\n\n<li>Kapitelhierarchien,<\/li>\n\n\n\n<li>Tabellen,<\/li>\n\n\n\n<li>Kommentare,<\/li>\n\n\n\n<li>Textfelder,<\/li>\n\n\n\n<li>Listen,<\/li>\n\n\n\n<li>Fussnoten.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Webseite besitzt wiederum:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Navigation,<\/li>\n\n\n\n<li>Hauptinhalt,<\/li>\n\n\n\n<li>Footer,<\/li>\n\n\n\n<li>Seitenelemente,<\/li>\n\n\n\n<li>versteckte Bereiche,<\/li>\n\n\n\n<li>dynamisch geladenen Inhalt.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Die zentrale Aufgabe der Ingestion lautet deshalb nicht:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Wie bekomme ich Zeichen aus einer Datei?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Sondern:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Wie rekonstruiere ich die inhaltliche Struktur so gut, dass Retrieval sp\u00e4ter noch versteht, was zusammengeh\u00f6rt?<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">3. Parsing<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Parsing<\/strong> bezeichnet das Einlesen und strukturierte Interpretieren eines Dokuments oder Datenformats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Parser versucht, aus einer Rohquelle verwertbare Inhalte zu erzeugen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Personalreglement.pdf\n        \u2193\n      Parser\n        \u2193\nTitel\nKapitel\nAbs\u00e4tze\nTabellen\nSeiteninformationen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einem einfachen Textdokument ist Parsing trivial.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei komplexen Formaten kann es sehr schwierig werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">4. Text Extraction und Parsing sind nicht dasselbe<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Text Extraction<\/strong> bedeutet lediglich, Text aus einer Quelle herauszuholen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Parsing<\/strong> versucht zus\u00e4tzlich, Struktur zu erhalten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Original:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>3. Probezeit\n\n3.1 Dauer\nDie Probezeit dauert drei Monate.\n\n3.2 K\u00fcndigung\nW\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eine schlechte Extraktion k\u00f6nnte daraus machen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>3 Probezeit 3.1 Dauer Die Probezeit dauert drei Monate 3.2 K\u00fcndigung\nW\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der reine Text ist vorhanden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Struktur ist aber verloren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein besserer Parser erh\u00e4lt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Heading: Probezeit\n\nSubheading: Dauer\nText: Die Probezeit dauert drei Monate.\n\nSubheading: K\u00fcndigung\nText: W\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Retrieval ist die zweite Variante wesentlich wertvoller.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">5. Warum Struktur wichtig ist<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Dokumentstruktur transportiert Bedeutung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese beiden S\u00e4tze:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die Frist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">und:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>W\u00e4hrend der Probezeit betr\u00e4gt die Frist sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">sind nicht gleich informativ.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn \u00dcberschriften oder vorherige Abs\u00e4tze verloren gehen, verliert ein sp\u00e4terer Chunk m\u00f6glicherweise seinen semantischen Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Abschnitt mit der \u00dcberschrift:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K\u00fcndigung w\u00e4hrend der Probezeit\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">kann f\u00fcr Retrieval hochrelevant sein, selbst wenn der eigentliche Absatz das Wort \u201eProbezeit\u201c nicht wiederholt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb sollte Dokumentstruktur m\u00f6glichst fr\u00fch erhalten bleiben.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">6. Layout Parsing<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei komplexen Dokumenten reicht einfache Textextraktion h\u00e4ufig nicht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann kommt <strong>Layout Parsing<\/strong> ins Spiel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dabei wird versucht, die visuelle Struktur eines Dokuments zu erkennen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00dcberschrift,<\/li>\n\n\n\n<li>Absatz,<\/li>\n\n\n\n<li>Tabelle,<\/li>\n\n\n\n<li>Bild,<\/li>\n\n\n\n<li>Fussnote,<\/li>\n\n\n\n<li>Spalte,<\/li>\n\n\n\n<li>Seitenkopf.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Besonders PDFs ben\u00f6tigen h\u00e4ufig Layout-Erkennung, weil PDF intern nicht zwingend als logisch strukturierter Text gespeichert ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein PDF beschreibt prim\u00e4r, <strong>wo<\/strong> etwas dargestellt wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht zwingend, welche semantische Rolle es besitzt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">7. Warum PDFs schwierig sind<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">PDF ist f\u00fcr Darstellung optimiert, nicht f\u00fcr semantische Verarbeitung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Seite kann intern beispielsweise enthalten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Textblock A bei x=50, y=100\nTextblock B bei x=300, y=100\nTextblock C bei x=50, y=140\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Parser muss daraus rekonstruieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Spalte 1:\nA\nC\n\nSpalte 2:\nB\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein schlechter Parser k\u00f6nnte daraus machen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>A B C\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch k\u00f6nnen S\u00e4tze vermischt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr RAG ist das problematisch, weil falsche Reihenfolge zu falschen Chunks f\u00fchrt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">8. Born-Digital PDF versus Scan<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei PDFs muss man zwischen zwei grundlegend unterschiedlichen F\u00e4llen unterscheiden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Born-Digital PDF<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Text liegt bereits digital vor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Word\n \u2193\nPDF Export\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der Text kann meistens direkt extrahiert werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gescanntes PDF<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Seite besteht prim\u00e4r aus einem Bild.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Papierdokument\n \u2193\nScanner\n \u2193\nPDF mit Seitenbildern\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hier existiert kein direkt nutzbarer Textlayer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann ben\u00f6tigt man OCR.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">9. OCR<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>OCR<\/strong> steht f\u00fcr <strong>Optical Character Recognition<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OCR versucht, Text aus Bildern zu erkennen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Bild einer Seite\n      \u2193\n     OCR\n      \u2193\n\"Die K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">OCR ist f\u00fcr RAG besonders relevant bei:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>eingescannten Vertr\u00e4gen,<\/li>\n\n\n\n<li>Archivdokumenten,<\/li>\n\n\n\n<li>alten Handb\u00fcchern,<\/li>\n\n\n\n<li>Formularen,<\/li>\n\n\n\n<li>Bild-PDFs,<\/li>\n\n\n\n<li>fotografierten Dokumenten.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">10. OCR ist fehlerbehaftet<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">OCR liefert nicht garantiert korrekten Text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typische Fehler:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0 \u2194 O\n1 \u2194 l\nrn \u2194 m\n5 \u2194 S\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CHF 1'500\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">k\u00f6nnte beispielsweise werden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CHF l'5OO\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bei normalen S\u00e4tzen ist das oft tolerierbar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Betr\u00e4gen,<\/li>\n\n\n\n<li>Seriennummern,<\/li>\n\n\n\n<li>Paragraphen,<\/li>\n\n\n\n<li>Produktcodes,<\/li>\n\n\n\n<li>IDs,<\/li>\n\n\n\n<li>Namen<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">kann ein einzelner OCR-Fehler jedoch entscheidend sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb ist Dokumentqualit\u00e4t Teil der Retrieval-Qualit\u00e4t.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">11. OCR und Layout zusammen betrachten<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei komplexen Scans reicht reine OCR ebenfalls nicht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen, eine Seite enth\u00e4lt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>| Produkt | Preis |\n| A       | 100   |\n| B       | 200   |\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eine reine OCR k\u00f6nnte liefern:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Produkt Preis A 100 B 200\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der Text ist erkannt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Tabellenstruktur ist verloren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit wird sp\u00e4ter schwer erkennbar, welcher Preis zu welchem Produkt geh\u00f6rt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Moderne Document-AI-Systeme versuchen deshalb h\u00e4ufig gleichzeitig zu erkennen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Text,<\/li>\n\n\n\n<li>Bounding Boxes,<\/li>\n\n\n\n<li>Tabellen,<\/li>\n\n\n\n<li>\u00dcberschriften,<\/li>\n\n\n\n<li>Listen,<\/li>\n\n\n\n<li>Lesereihenfolge.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">12. Normalisierung<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Nach dem Parsing folgt h\u00e4ufig eine <strong>Normalisierung<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ziel ist, technische oder visuelle Artefakte zu entfernen, ohne den eigentlichen Inhalt zu zerst\u00f6ren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mehrfache Leerzeichen reduzieren,<\/li>\n\n\n\n<li>falsche Zeilenumbr\u00fcche zusammenf\u00fchren,<\/li>\n\n\n\n<li>wiederkehrende Kopfzeilen entfernen,<\/li>\n\n\n\n<li>Seitenzahlen aus dem Fliesstext l\u00f6sen,<\/li>\n\n\n\n<li>Zeichenkodierung vereinheitlichen,<\/li>\n\n\n\n<li>Bulletpoints konsistent darstellen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vorher:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die K\u00fcndigungs-\nfrist betr\u00e4gt sieben\nTage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nachher:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eine gute Normalisierung verbessert Retrieval.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine aggressive Normalisierung kann Information zerst\u00f6ren.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">13. Boilerplate<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Als <strong>Boilerplate<\/strong> bezeichnet man wiederkehrenden Inhalt, der f\u00fcr die eigentliche Wissenssuche h\u00e4ufig wenig relevant ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiele:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u00a9 2026 Beispiel AG\nVertraulich\nSeite 17 von 83\nwww.example.com\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn solche Texte auf jeder Seite vorkommen, k\u00f6nnen sie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>unn\u00f6tige Tokens erzeugen,<\/li>\n\n\n\n<li>Embeddings beeinflussen,<\/li>\n\n\n\n<li>Keyword-Suche verf\u00e4lschen,<\/li>\n\n\n\n<li>Duplicate-Chunks erzeugen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb werden wiederkehrende Header und Footer h\u00e4ufig entfernt oder separat behandelt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">14. Dokumentmetadaten<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Dokument besteht nicht nur aus Inhalt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es besitzt h\u00e4ufig <strong>Metadaten<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiele:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Titel\nDateiname\nAutor\nErstellungsdatum\n\u00c4nderungsdatum\nDokumenttyp\nSprache\nQuelle\nVersion\nSeitenzahl\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Metadaten k\u00f6nnen sp\u00e4ter beim Retrieval wichtig werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Frage wie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Was steht im Personalreglement von 2026?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">enth\u00e4lt Informationen, die nicht zwingend im eigentlichen Absatz vorkommen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokumenttyp = Personalreglement\nJahr = 2026\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Metadaten k\u00f6nnen deshalb als zus\u00e4tzliches Retrieval-Signal dienen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">15. Strukturmetadaten<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Neben klassischen Dokumentmetadaten existieren <strong>Strukturmetadaten<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Kapitel: Arbeitsverh\u00e4ltnis\nAbschnitt: Probezeit\nUnterabschnitt: K\u00fcndigung\nSeite: 7\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Chunk k\u00f6nnte damit intern ungef\u00e4hr so beschrieben werden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Document: Personalreglement.pdf\nPage: 7\nHeading: Arbeitsverh\u00e4ltnis\nSubheading: Probezeit\nSection: K\u00fcndigung\nText: W\u00e4hrend der Probezeit betr\u00e4gt ...\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Struktur kann sowohl Retrieval als auch Quellenanzeige verbessern.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">16. Was ist Chunking?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Chunking<\/strong> bezeichnet das Zerlegen gr\u00f6sserer Inhalte in kleinere Einheiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Einheiten werden <strong>Chunks<\/strong> genannt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokument mit 50'000 W\u00f6rtern\n          \u2193\n        Chunking\n          \u2193\nChunk 1\nChunk 2\nChunk 3\n...\nChunk 180\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Warum \u00fcberhaupt zerlegen?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Weil Retrieval meist auf kleineren Einheiten besser funktioniert als auf kompletten Dokumenten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">17. Warum nicht ganze Dokumente indexieren?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen, ein Personalhandbuch enth\u00e4lt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Arbeitszeiten,<\/li>\n\n\n\n<li>Spesen,<\/li>\n\n\n\n<li>Ferien,<\/li>\n\n\n\n<li>K\u00fcndigung,<\/li>\n\n\n\n<li>Versicherungen,<\/li>\n\n\n\n<li>IT-Richtlinien.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Die Benutzerfrage lautet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wie lange dauert die Probezeit?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn das gesamte Handbuch eine einzige Retrieval-Einheit w\u00e4re, m\u00fcsste ein Embedding die Bedeutung des gesamten Dokuments repr\u00e4sentieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die spezifische Passage \u00fcber die Probezeit w\u00e4re nur ein kleiner Teil davon.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mit Chunks kann stattdessen genau der relevante Abschnitt gefunden werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">18. Chunking ist eine Form der Informationskompression<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Beim Chunking trifft man implizit eine Entscheidung:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Welche Informationen m\u00fcssen gemeinsam bleiben, damit ihre Bedeutung erhalten bleibt?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist mehr als ein technisches Splitten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Chunk definiert eine semantische Einheit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Heading:\nK\u00fcndigung w\u00e4hrend der Probezeit\n\nText:\nW\u00e4hrend der Probezeit kann das Arbeitsverh\u00e4ltnis\nmit einer Frist von sieben Tagen gek\u00fcndigt werden.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist eine sinnvolle Einheit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn wir dagegen trennen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 1:\nW\u00e4hrend der Probezeit kann das Arbeitsverh\u00e4ltnis\n\nChunk 2:\nmit einer Frist von sieben Tagen gek\u00fcndigt werden.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">wird Information zerst\u00f6rt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">19. Chunk Size<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die <strong>Chunk Size<\/strong> beschreibt, wie gross ein Chunk sein darf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie kann gemessen werden in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zeichen,<\/li>\n\n\n\n<li>W\u00f6rtern,<\/li>\n\n\n\n<li>Tokens,<\/li>\n\n\n\n<li>S\u00e4tzen,<\/li>\n\n\n\n<li>Abs\u00e4tzen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Es existiert keine universell optimale Chunk-Gr\u00f6sse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die geeignete Gr\u00f6sse h\u00e4ngt ab von:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dokumenttyp,<\/li>\n\n\n\n<li>Sprache,<\/li>\n\n\n\n<li>Retrieval-Modell,<\/li>\n\n\n\n<li>Embedding-Modell,<\/li>\n\n\n\n<li>Fragen,<\/li>\n\n\n\n<li>gew\u00fcnschter Granularit\u00e4t.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">20. Kleine Chunks<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Kleine Chunks besitzen Vorteile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie sind meist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>thematisch pr\u00e4ziser,<\/li>\n\n\n\n<li>leichter zu ranken,<\/li>\n\n\n\n<li>g\u00fcnstiger im Prompt,<\/li>\n\n\n\n<li>weniger verrauscht.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die K\u00fcndigungsfrist w\u00e4hrend der Probezeit betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist extrem fokussiert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber kleine Chunks besitzen Nachteile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Satz k\u00f6nnte ohne Kontext unklar sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sie betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Was betr\u00e4gt sieben Tage?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der notwendige Kontext lag vielleicht im vorherigen Satz.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">21. Grosse Chunks<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Grosse Chunks enthalten mehr Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>3. Probezeit\n\nDie Probezeit dauert drei Monate.\n\nW\u00e4hrend der Probezeit kann das Arbeitsverh\u00e4ltnis\nmit einer Frist von sieben Tagen gek\u00fcndigt werden.\n\nNach Ablauf der Probezeit gelten die ordentlichen\nK\u00fcndigungsfristen.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Modell erh\u00e4lt mehr Zusammenhang.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Nachteil:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn der Chunk zus\u00e4tzlich noch zehn andere Themen enth\u00e4lt, sinkt seine semantische Pr\u00e4zision.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">22. Der Chunking-Trade-off<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Das Grundproblem l\u00e4sst sich so darstellen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kleine Chunks\n    \u2193\nhohe Pr\u00e4zision\naber weniger Kontext\n\ngrosse Chunks\n    \u2193\nmehr Kontext\naber mehr Rauschen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking optimiert deshalb einen Trade-off zwischen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Granularit\u00e4t<\/strong> und <strong>Kontext.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">23. Chunk Overlap<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Overlap<\/strong> bedeutet, dass benachbarte Chunks einen gemeinsamen Textbereich besitzen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Original:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>A B C D E F G H I J\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ohne Overlap:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 1: A B C D E\nChunk 2: F G H I J\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mit Overlap:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 1: A B C D E F\nChunk 2: E F G H I J\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch gehen Informationen an Chunk-Grenzen weniger leicht verloren.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">24. Warum Overlap hilft<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Satz 1:\nW\u00e4hrend der Probezeit gelten besondere K\u00fcndigungsregeln.\n\nSatz 2:\nDie K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn die Grenze zwischen den S\u00e4tzen liegt, k\u00f6nnte Chunk 2 nur enthalten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mit Overlap kann der vorherige Satz mitgenommen werden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>W\u00e4hrend der Probezeit gelten besondere K\u00fcndigungsregeln.\nDie K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit bleibt die Bedeutung klar.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">25. Zu viel Overlap ist ebenfalls problematisch<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Overlap erzeugt Duplikate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei sehr grossem Overlap entstehen beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 1: A B C D E F\nChunk 2: C D E F G H\nChunk 3: E F G H I J\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das kann dazu f\u00fchren, dass Retrieval mehrere fast identische Chunks findet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann erh\u00e4lt das Modell vielleicht f\u00fcnf Treffer, die inhaltlich fast dasselbe sagen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das verschwendet Kontextbudget.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Overlap ist daher eine Optimierung, kein kostenloser Qualit\u00e4tsgewinn.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">26. Fixed-Size Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die einfachste Strategie ist <strong>Fixed-Size Chunking<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alle 500 Tokens\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oder:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alle 2'000 Zeichen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist technisch einfach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Text\n \u2193\n500 Tokens\n \u2193\n500 Tokens\n \u2193\n500 Tokens\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Problem:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Semantische Grenzen werden ignoriert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Absatz oder Satz kann mitten inhaltlich getrennt werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">27. Sliding Window<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein <strong>Sliding Window<\/strong> kombiniert fixe Gr\u00f6sse mit Overlap.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk-Gr\u00f6sse: 500 Tokens\nOverlap: 100 Tokens\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dann entstehen Fenster wie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Tokens 1\u2013500\nTokens 401\u2013900\nTokens 801\u20131300\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das reduziert Randprobleme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die grundlegende Schw\u00e4che bleibt:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Dokumentstruktur wird nicht ber\u00fccksichtigt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">28. Sentence-Based Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Beim <strong>Sentence-Based Chunking<\/strong> werden Satzgrenzen verwendet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Satz 1\nSatz 2\nSatz 3\nSatz 4\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Chunks k\u00f6nnten dann sein:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 1:\nSatz 1\nSatz 2\n\nChunk 2:\nSatz 3\nSatz 4\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit werden S\u00e4tze nicht mitten im Text getrennt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Allerdings bilden S\u00e4tze nicht immer sinnvolle thematische Einheiten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">29. Paragraph-Based Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Beim <strong>Paragraph-Based Chunking<\/strong> werden Abs\u00e4tze als nat\u00fcrliche Grenzen verwendet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist h\u00e4ufig sinnvoll, weil ein Absatz typischerweise einen zusammenh\u00e4ngenden Gedanken enth\u00e4lt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Problematisch wird es bei sehr langen Abs\u00e4tzen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Absatz kann mehrere hundert oder tausend W\u00f6rter besitzen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann ben\u00f6tigt man zus\u00e4tzliche Split-Regeln.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">30. Recursive Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Recursive Character Splitting<\/strong> beziehungsweise <strong>Recursive Chunking<\/strong> ist eine sehr verbreitete Strategie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dabei wird versucht, zun\u00e4chst an starken semantischen Grenzen zu teilen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1. Kapitel\n2. Abs\u00e4tze\n3. Zeilen\n4. S\u00e4tze\n5. W\u00f6rter\n6. Zeichen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das System versucht also zun\u00e4chst:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\\n\\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dann:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dann Satzgrenzen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Erst zuletzt werden harte Zeichen- oder Token-Grenzen verwendet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit wird die Dokumentstruktur besser erhalten als bei reinem Fixed-Size Chunking.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">31. Structured Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Beim <strong>Structured Chunking<\/strong> wird die logische Dokumentstruktur aktiv ber\u00fccksichtigt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1. Arbeitsverh\u00e4ltnis\n   1.1 Probezeit\n       1.1.1 Dauer\n       1.1.2 K\u00fcndigung\n\n2. Ferien\n   2.1 Anspruch\n   2.2 Bezug\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Chunks werden entlang dieser Struktur gebildet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Chunk kann dann enthalten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Arbeitsverh\u00e4ltnis\n&gt; Probezeit\n&gt; K\u00fcndigung\n\nW\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit bleibt die semantische Einordnung erhalten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">32. Heading Path<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Der Begriff <strong>Heading Path<\/strong> bezeichnet den Pfad durch die \u00dcberschriftenhierarchie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Personalreglement\n    \u2193\nArbeitsverh\u00e4ltnis\n    \u2193\nProbezeit\n    \u2193\nK\u00fcndigung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Als Metadatum:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;\n  \"Arbeitsverh\u00e4ltnis\",\n  \"Probezeit\",\n  \"K\u00fcndigung\"\n]\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Heading Paths sind besonders wertvoll, weil sie Kontext liefern, ohne grosse Textmengen wiederholen zu m\u00fcssen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">33. Semantic Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Beim <strong>Semantic Chunking<\/strong> wird nicht prim\u00e4r anhand formaler Dokumentgrenzen geteilt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stattdessen versucht man, semantische Themenwechsel zu erkennen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vereinfacht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Satz 1 \u2500\u2510\nSatz 2  \u2502 Thema A\nSatz 3 \u2500\u2518\n\nSatz 4 \u2500\u2510\nSatz 5  \u2502 Thema B\nSatz 6 \u2500\u2518\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein m\u00f6glicher Ansatz besteht darin, Embeddings benachbarter S\u00e4tze zu vergleichen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn sich deren Bedeutung stark ver\u00e4ndert, wird eine Grenze gesetzt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">34. Vorteile von Semantic Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Semantic Chunking kann sinnvoll sein bei:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>langen Fliesstexten,<\/li>\n\n\n\n<li>schwacher Formatierung,<\/li>\n\n\n\n<li>automatisch generierten Dokumenten,<\/li>\n\n\n\n<li>Transkripten.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Es kann thematisch koh\u00e4rentere Chunks erzeugen als starre Fenster.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">35. Nachteile von Semantic Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Semantic Chunking bringt zus\u00e4tzliche Komplexit\u00e4t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es kann:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mehr Rechenaufwand verursachen,<\/li>\n\n\n\n<li>abh\u00e4ngig vom Embedding-Modell sein,<\/li>\n\n\n\n<li>instabile Grenzen erzeugen,<\/li>\n\n\n\n<li>schwerer reproduzierbar sein.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Dokument mit guter Struktur ben\u00f6tigt nicht automatisch semantisches Chunking.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oft ist vorhandene Struktur das st\u00e4rkere Signal.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">36. Page-Based Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei <strong>Page-Based Chunking<\/strong> entspricht eine Seite einem Chunk.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist einfach und praktisch f\u00fcr manche Dokumentarten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise Pr\u00e4sentationen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Slide 1 = Chunk 1\nSlide 2 = Chunk 2\nSlide 3 = Chunk 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bei technischen PDFs kann eine Seite ebenfalls eine brauchbare Einheit sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei langen Fliesstexten ist eine Seite jedoch eine rein visuelle Grenze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Satz oder Abschnitt kann \u00fcber zwei Seiten gehen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">37. Section-Based Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Beim <strong>Section-Based Chunking<\/strong> bildet ein Abschnitt die Grundeinheit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>3.2 K\u00fcndigung w\u00e4hrend der Probezeit\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">wird als Einheit verarbeitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ist der Abschnitt klein genug, bleibt er vollst\u00e4ndig.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ist er zu gross, wird er intern weiter zerlegt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieses Verfahren verbindet logische Struktur mit Gr\u00f6ssenlimits.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">38. Hybrid Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In realen Systemen werden Chunking-Strategien h\u00e4ufig kombiniert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokumentstruktur erkennen\n        \u2193\npro Abschnitt chunking\n        \u2193\nbei \u00dcbergr\u00f6sse Satzgrenzen\n        \u2193\nbei \u00dcbergr\u00f6sse Tokenlimit\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das k\u00f6nnte schematisch aussehen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Section\n  \u2502\n  \u251c\u2500 klein genug\n  \u2502      \u2193\n  \u2502    Chunk\n  \u2502\n  \u2514\u2500 zu gross\n         \u2193\n      Paragraph\n         \u2193\n      Sentence\n         \u2193\n      Token Split\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist typischerweise robuster als eine einzige starre Regel.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">39. Parent-Child Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein fortgeschrittenes Konzept ist <strong>Parent-Child Retrieval<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Grundidee:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man verwendet kleine Chunks f\u00fcr die Suche, liefert dem LLM aber einen gr\u00f6sseren \u00fcbergeordneten Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Section: Probezeit\n\u2502\n\u251c\u2500\u2500 Child Chunk 1: Dauer\n\u251c\u2500\u2500 Child Chunk 2: K\u00fcndigung\n\u2514\u2500\u2500 Child Chunk 3: Ferien\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Suche findet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Child Chunk 2\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die Antwort kann jedoch der Parent bereitgestellt werden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Section: Probezeit\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit verbindet man:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>pr\u00e4zises Retrieval,<\/li>\n\n\n\n<li>reichhaltigen Kontext.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">40. Small-to-Big Retrieval<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Small-to-Big Retrieval<\/strong> bezeichnet denselben Grundgedanken in allgemeiner Form.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man sucht mit einer kleinen Einheit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kleiner Chunk\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">und gibt anschliessend eine gr\u00f6ssere Einheit an das Modell:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Abschnitt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oder:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Nachbar-Chunks\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Schematisch:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klein suchen\n    \u2193\nrelevanten Treffer finden\n    \u2193\nKontext erweitern\n    \u2193\ngross an LLM geben\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">41. Warum Small-to-Big sinnvoll ist<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Dense Retrieval funktioniert h\u00e4ufig besser auf fokussierten Texten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein kleines Segment besitzt einen klaren semantischen Schwerpunkt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die Generierung ben\u00f6tigt das Modell aber manchmal mehr Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Small-to-Big trennt deshalb zwei Anforderungen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Retrieval-Einheit\n\u2260\nPrompt-Einheit\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Trennung ist konzeptionell sehr wichtig.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">42. Neighbor Expansion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eine einfache Variante von Small-to-Big ist <strong>Neighbor Expansion<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Suche findet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 12\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dann werden zus\u00e4tzlich geladen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 11\nChunk 12\nChunk 13\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch erh\u00e4lt das Modell den lokalen Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das funktioniert gut, wenn Dokumente linear strukturiert sind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Tabellen, stark verschachtelten Dokumenten oder Webseiten kann die unmittelbare Nachbarschaft weniger sinnvoll sein.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">43. Parent Document Retriever<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein <strong>Parent Document Retriever<\/strong> speichert eine Beziehung zwischen kleinen Retrieval-Chunks und gr\u00f6sseren Parent-Einheiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Parent: Abschnitt 3\n\nChild 3.1\nChild 3.2\nChild 3.3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Suchmaschine arbeitet auf Child-Chunks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nach einem Treffer wird der Parent geladen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Verfahren ist besonders hilfreich bei langen Abschnitten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">44. Hierarchical Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Beim <strong>Hierarchical Chunking<\/strong> existieren mehrere Ebenen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokument\n  \u2193\nKapitel\n  \u2193\nAbschnitt\n  \u2193\nAbsatz\n  \u2193\nChunk\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jede Ebene kann unterschiedliche Aufgaben erf\u00fcllen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Retrieval-System k\u00f6nnte zun\u00e4chst Kapitel identifizieren und danach innerhalb des Kapitels feinere Chunks suchen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das f\u00fchrt bereits in Richtung hierarchischer Retrieval-Architekturen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">45. Late Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Late Chunking<\/strong> verfolgt einen anderen Ansatz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei klassischem Chunking gilt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Text\n \u2193\nChunking\n \u2193\nEmbedding pro Chunk\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Late Chunking wird zun\u00e4chst ein gr\u00f6sserer Kontext gemeinsam durch ein Embedding-Modell verarbeitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Danach werden Repr\u00e4sentationen f\u00fcr kleinere Bereiche abgeleitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vereinfacht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>langer Text\n \u2193\ngemeinsame Modellverarbeitung\n \u2193\nlokale Chunk-Repr\u00e4sentationen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Idee:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein einzelner Chunk soll bereits bei seiner Vektorrepr\u00e4sentation Informationen aus dem gr\u00f6sseren Dokumentkontext mitbekommen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">46. Warum Late Chunking interessant ist<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Betrachten wir den Satz:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sie betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Allein ist er schlecht verst\u00e4ndlich.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Im Kontext:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K\u00fcndigungsfrist w\u00e4hrend der Probezeit.\nSie betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ist die Bedeutung klar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Klassisches Embedding des einzelnen Satzes verliert m\u00f6glicherweise diese Information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Late Chunking versucht, Kontext bereits in die Chunk-Repr\u00e4sentation einzubauen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">47. Chunk Enrichment<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eine weitere Strategie ist <strong>Chunk Enrichment<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dabei wird einem Chunk zus\u00e4tzliche Information mitgegeben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Original:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sie betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Angereichert:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokument: Personalreglement\nKapitel: Probezeit\nAbschnitt: K\u00fcndigung\n\nSie betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch wird der Chunk f\u00fcr Retrieval verst\u00e4ndlicher.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enrichment kann stammen aus:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00dcberschriften,<\/li>\n\n\n\n<li>Dokumenttitel,<\/li>\n\n\n\n<li>Zusammenfassungen,<\/li>\n\n\n\n<li>Metadaten,<\/li>\n\n\n\n<li>Parent-Kontext.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">48. Contextual Retrieval<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein verwandtes Konzept ist <strong>Contextual Retrieval<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dabei wird einem Chunk explizit erkl\u00e4rt, wo er im Dokument einzuordnen ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Original:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die Frist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kontextualisiert:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dieser Abschnitt stammt aus dem Kapitel \u00fcber die K\u00fcndigung\nw\u00e4hrend der Probezeit eines Personalreglements.\n\nDie Frist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit kann sowohl lexikalisches als auch semantisches Retrieval verbessert werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">49. Chunk Summary<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Statt vollst\u00e4ndigen Parent-Kontext hinzuzuf\u00fcgen, kann man eine <strong>Chunk Summary<\/strong> erzeugen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Summary:\nRegelung zur K\u00fcndigungsfrist w\u00e4hrend der Probezeit.\n\nOriginal:\nDie Frist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das kann hilfreich sein, erh\u00f6ht aber den Ingestion-Aufwand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ausserdem k\u00f6nnen automatisch generierte Zusammenfassungen selbst Fehler enthalten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">50. Chunk Title<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eine einfachere Form des Enrichments ist ein <strong>Chunk Title<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K\u00fcndigung w\u00e4hrend der Probezeit\n\nW\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Titel oder Heading Paths sind h\u00e4ufig hochwertige Kontextsignale, weil sie aus der urspr\u00fcnglichen Dokumentstruktur stammen und nicht generiert werden m\u00fcssen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">51. Chunk ID<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Jeder Chunk ben\u00f6tigt typischerweise eine eindeutige Identit\u00e4t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>document_123_chunk_42\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oder eine UUID.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Chunk-ID erm\u00f6glicht:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Retrieval,<\/li>\n\n\n\n<li>Updates,<\/li>\n\n\n\n<li>L\u00f6schen,<\/li>\n\n\n\n<li>Quellenreferenzen,<\/li>\n\n\n\n<li>Debugging,<\/li>\n\n\n\n<li>Nachvollziehbarkeit.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">52. Document ID<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Zus\u00e4tzlich sollte die Beziehung zum Ursprungsdokument erhalten bleiben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chunk_id: chunk_42\ndocument_id: document_123\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit l\u00e4sst sich nachvollziehen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk\n \u2193\nDokument\n \u2193\nOriginalquelle\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ohne diese Beziehung w\u00e4ren gute Citations schwierig.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">53. Position im Dokument<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Auch die Position eines Chunks kann wichtig sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>page: 12\nsection: 3.2\nchunk_index: 42\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Daten erm\u00f6glichen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Quellenanzeige,<\/li>\n\n\n\n<li>Neighbor Expansion,<\/li>\n\n\n\n<li>Parent Retrieval,<\/li>\n\n\n\n<li>Dokumentnavigation.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">54. Versionierung<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Dokumente ver\u00e4ndern sich.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Personalreglement 2025\nPersonalreglement 2026\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Oder dieselbe Datei wird ersetzt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein RAG-System sollte deshalb wissen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Welcher Chunk geh\u00f6rt zu welcher Dokumentversion?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sonst k\u00f6nnen alte und neue Aussagen gleichzeitig im Index vorhanden sein.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">55. Duplicate Detection<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Korpus enth\u00e4lt h\u00e4ufig Duplikate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Personalreglement.pdf\nPersonalreglement_Kopie.pdf\nPersonalreglement_final.pdf\nPersonalreglement_final_final.pdf\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Werden alle unabh\u00e4ngig indexiert, kann Retrieval dieselbe Passage mehrfach zur\u00fcckgeben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das erzeugt scheinbar mehrere Quellen, obwohl nur eine Information mehrfach vorhanden ist.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">56. Near-Duplicates<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Noch schwieriger sind <strong>Near-Duplicates<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dokument A:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dokument B:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die K\u00fcndigungsfrist betr\u00e4gt 7 Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Semantisch ist das praktisch identisch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Near-Duplicate-Erkennung kann sp\u00e4ter verhindern, dass der Prompt mit Wiederholungen gef\u00fcllt wird.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">57. Tabellen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Tabellen ben\u00f6tigen besondere Behandlung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Vertragsart<\/th><th>K\u00fcndigungsfrist<\/th><\/tr><\/thead><tbody><tr><td>Probezeit<\/td><td>7 Tage<\/td><\/tr><tr><td>unbefristet<\/td><td>3 Monate<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Eine lineare Extraktion:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Vertragsart K\u00fcndigungsfrist Probezeit 7 Tage unbefristet 3 Monate\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ist schlechter als eine strukturierte Darstellung:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Vertragsart: Probezeit\nK\u00fcndigungsfrist: 7 Tage\n\nVertragsart: unbefristet\nK\u00fcndigungsfrist: 3 Monate\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die zweite Variante erh\u00e4lt die Beziehung zwischen Spalten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">58. Tabellen als Markdown<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eine verbreitete Strategie ist, Tabellen in Markdown umzuwandeln.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>| Vertragsart | K\u00fcndigungsfrist |\n|---|---|\n| Probezeit | 7 Tage |\n| unbefristet | 3 Monate |\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das erh\u00e4lt Struktur relativ kompakt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ob das f\u00fcr Retrieval optimal ist, h\u00e4ngt vom Modell und vom Tabelleninhalt ab.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">59. Tabellen zeilenweise chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei grossen Tabellen kann es sinnvoll sein, jede Zeile als eigene Einheit zu behandeln.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Vertragsart: Probezeit\nK\u00fcndigungsfrist: 7 Tage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch lassen sich konkrete Datens\u00e4tze besser finden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Fragen \u00fcber die gesamte Tabelle ben\u00f6tigt man dagegen m\u00f6glicherweise wieder Aggregate oder gr\u00f6ssere Kontexte.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">60. Listen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Listen sollten ebenfalls nicht blind in Fliesstext verwandelt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Original:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Mitarbeiter erhalten:\n- 25 Ferientage\n- Homeoffice\n- Weiterbildung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Schlecht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Mitarbeiter erhalten 25 Ferientage Homeoffice Weiterbildung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Besser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Mitarbeiter erhalten:\n- 25 Ferientage\n- Homeoffice\n- Weiterbildung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Listenstruktur tr\u00e4gt semantische Information.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">61. Code<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Technische Dokumentationen enthalten h\u00e4ufig Quellcode.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Code sollte m\u00f6glichst als zusammenh\u00e4ngender Block erhalten bleiben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (user == null)\n{\n    throw new ArgumentNullException(nameof(user));\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Split mitten im Code kann:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Syntax zerst\u00f6ren,<\/li>\n\n\n\n<li>Bedeutung verlieren,<\/li>\n\n\n\n<li>Retrieval verschlechtern.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Code-Dokumentation ben\u00f6tigt daher oft andere Chunking-Regeln als Prosa.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">62. JSON und strukturierte Daten<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">JSON ist kein klassischer Fliesstext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"name\": \"Max Muster\",\n  \"department\": \"IT\",\n  \"status\": \"active\"\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Man k\u00f6nnte daraus Text erzeugen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Name: Max Muster\nDepartment: IT\nStatus: active\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bei grossen Arrays stellt sich aber die Frage:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ein Chunk pro Record?\nMehrere Records pro Chunk?\nAggregate?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Strukturierte Daten ben\u00f6tigen h\u00e4ufig eine andere Ingestion-Strategie als PDFs.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">63. CSV<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Auch CSV besteht aus Records.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>name,department,status\nMax Muster,IT,active\nAnna Beispiel,HR,active\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Entity-Suche ist oft ein Record pro Chunk sinnvoll.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Fragen wie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wie viele aktive Mitarbeiter gibt es?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ist reines Chunk-Retrieval dagegen problematisch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hier ben\u00f6tigt man eher strukturierte Abfragen oder vorberechnete Aggregate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das zeigt:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Nicht jede Wissensfrage ist ideal f\u00fcr Chunk-RAG.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">64. HTML<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Webseiten enthalten oft viel nicht relevanten Inhalt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Header\nNavigation\nCookie Banner\nSidebar\nArtikel\nFooter\nRelated Posts\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr RAG interessiert meistens:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Artikel\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">HTML-Ingestion sollte deshalb versuchen, Hauptinhalt von Navigation und Boilerplate zu trennen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">65. Markdown<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Markdown besitzt explizite Struktur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Personalreglement\n\n## Probezeit\n\n### K\u00fcndigung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Struktur sollte nicht verworfen werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Markdown eignet sich deshalb besonders gut f\u00fcr strukturiertes Chunking.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">66. E-Mails<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">E-Mails bringen eigene Probleme mit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Nachricht kann enthalten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>aktuelle Antwort\n\n--- urspr\u00fcngliche Nachricht ---\n\n\u00e4ltere Antwort\n\n--- urspr\u00fcngliche Nachricht ---\n\nnoch \u00e4ltere Nachricht\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn der komplette Thread blind indexiert wird, entstehen massive Duplikate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E-Mail-Ingestion sollte deshalb zwischen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nachricht,<\/li>\n\n\n\n<li>Thread,<\/li>\n\n\n\n<li>Zitat,<\/li>\n\n\n\n<li>Signatur,<\/li>\n\n\n\n<li>Anh\u00e4ngen<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">unterscheiden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">67. Chatverl\u00e4ufe<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Auch Chats bestehen aus strukturierter Kommunikation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>User A: Wann wird deployed?\nUser B: Freitag.\nUser A: Welcher Build?\nUser B: 1.4.7.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Einzelne Nachrichten allein k\u00f6nnen unverst\u00e4ndlich sein.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Freitag.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ist ohne Kontext wertlos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chats ben\u00f6tigen deshalb h\u00e4ufig konversationsbezogenes Chunking.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">68. Transkripte<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Meeting- oder Video-Transkripte sind lange lineare Texte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00fctzliche Metadaten k\u00f6nnen sein:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sprecher\nZeitstempel\nKapitel\nThema\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking nur nach fester L\u00e4nge kann mitten in einem Sprecherwechsel oder Thema schneiden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">69. Dokumentqualit\u00e4t vor Retrieval-Qualit\u00e4t<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein wichtiger Grundsatz lautet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>schlechte Extraktion\n        \u2193\nschlechte Chunks\n        \u2193\nschlechter Index\n        \u2193\nschlechtes Retrieval\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das LLM kann diese Fehler am Ende nicht zuverl\u00e4ssig reparieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K\u00fcndigungsfrist: sieben Tage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">durch OCR wird:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K\u00fcndigungsfrist: sieben lage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">existiert bereits ein Datenqualit\u00e4tsproblem vor dem Retrieval.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">70. Garbage In, Garbage Out<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Der bekannte Grundsatz:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Garbage In, Garbage Out<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">gilt f\u00fcr RAG besonders stark.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine hochwertige Embedding-Suche kann keine Information finden, die beim Parsing verloren gegangen ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Cross-Encoder kann keinen kaputten Tabellenzusammenhang rekonstruieren, wenn die Zuordnung bereits zerst\u00f6rt wurde.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein LLM kann fehlende Dokumentstruktur h\u00f6chstens erraten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb beginnt RAG-Qualit\u00e4t bei der Ingestion.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">71. Chunking und Retrieval sind gekoppelt<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking darf nicht isoliert betrachtet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Chunking-Strategie beeinflusst:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dense Retrieval,<\/li>\n\n\n\n<li>Sparse Retrieval,<\/li>\n\n\n\n<li>Reranking,<\/li>\n\n\n\n<li>Promptgr\u00f6sse,<\/li>\n\n\n\n<li>Citation-Granularit\u00e4t,<\/li>\n\n\n\n<li>Antwortqualit\u00e4t.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sehr kleine Chunks k\u00f6nnen Dense Retrieval verbessern.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber ein Cross-Encoder ben\u00f6tigt m\u00f6glicherweise mehr Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sehr grosse Chunks k\u00f6nnen BM25-Treffer verw\u00e4ssern.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking muss deshalb gegen das gesamte Retrieval-System evaluiert werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">72. Chunking und Embeddings<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Embeddings werden h\u00e4ufig pro Chunk berechnet.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk\n \u2193\nEmbedding Model\n \u2193\nVector\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Chunk-Gr\u00f6sse beeinflusst damit unmittelbar die Bedeutung des Vektors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Embedding von:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K\u00fcndigungsfrist w\u00e4hrend der Probezeit: sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ist stark fokussiert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Embedding von zwanzig Seiten Personalreglement repr\u00e4sentiert viele Themen gleichzeitig.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch sinkt die lokale semantische Pr\u00e4zision.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">73. Chunking und Sparse Retrieval<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Auch lexikalische Verfahren wie BM25 reagieren auf Chunk-Gr\u00f6sse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein kurzer Chunk:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Probezeit K\u00fcndigungsfrist sieben Tage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">hat eine hohe Konzentration relevanter Terme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein grosser Chunk k\u00f6nnte zus\u00e4tzlich enthalten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ferien\nLohn\nSpesen\nVersicherungen\nArbeitszeit\nWeiterbildung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit wird die Relevanz eines einzelnen Begriffs relativ schw\u00e4cher.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">74. Chunking und Reranking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Reranker bewerten typischerweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Frage + Passage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ist die Passage extrem lang, enth\u00e4lt sie m\u00f6glicherweise viel irrelevanten Text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ist sie zu kurz, fehlt Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch hier existiert ein optimaler Bereich, der vom Modell abh\u00e4ngt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">75. Chunking und Citations<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Chunk-Gr\u00f6sse beeinflusst auch Quellenangaben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein kleiner Chunk erlaubt eine pr\u00e4zise Citation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Seite 7, Absatz K\u00fcndigung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein riesiger Chunk kann als Quelle mehrere Seiten umfassen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann wird die Citation weniger hilfreich.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">76. Chunk Boundaries<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Als <strong>Chunk Boundary<\/strong> bezeichnet man die Grenze zwischen zwei Chunks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gute Grenzen liegen bevorzugt an:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kapitelwechseln,<\/li>\n\n\n\n<li>Abschnittswechseln,<\/li>\n\n\n\n<li>Absatzgrenzen,<\/li>\n\n\n\n<li>Satzgrenzen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Schlechte Grenzen liegen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mitten im Satz,<\/li>\n\n\n\n<li>mitten in einer Tabelle,<\/li>\n\n\n\n<li>zwischen Frage und Antwort,<\/li>\n\n\n\n<li>zwischen \u00dcberschrift und Absatz,<\/li>\n\n\n\n<li>zwischen Codezeilen eines Blocks.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">77. Boundary Preservation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Boundary Preservation<\/strong> bedeutet, semantische oder strukturelle Grenzen m\u00f6glichst zu respektieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein guter Chunker versucht beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Section\n \u2193\nParagraph\n \u2193\nSentence\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">und splittet erst hart, wenn Gr\u00f6ssenlimits sonst \u00fcberschritten werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">78. Chunk Context<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Chunk sollte gen\u00fcgend <strong>Chunk Context<\/strong> besitzen, um sinnvoll interpretiert werden zu k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Schlecht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sie betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Besser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K\u00fcndigung w\u00e4hrend der Probezeit\n\nDie K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Chunk Context kann aus:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00dcberschrift,<\/li>\n\n\n\n<li>Parent Section,<\/li>\n\n\n\n<li>vorherigem Satz,<\/li>\n\n\n\n<li>Metadaten<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">kommen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">79. Chunk Cohesion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cohesion<\/strong> beschreibt, wie stark die Inhalte eines Chunks thematisch zusammengeh\u00f6ren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein guter Chunk besitzt hohe Koh\u00e4sion:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Probezeit\nK\u00fcndigungsfrist\nsieben Tage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein schlechter Chunk mischt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Probezeit\nKantinenmenu\nVPN-Konfiguration\nK\u00fcndigungsfrist\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hohe Koh\u00e4sion verbessert meist semantisches Retrieval.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">80. Chunk Completeness<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Chunk sollte m\u00f6glichst eine vollst\u00e4ndige inhaltliche Aussage enthalten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unvollst\u00e4ndig:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die K\u00fcndigungsfrist betr\u00e4gt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Vollst\u00e4ndig:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Completeness ist besonders wichtig bei:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Regeln,<\/li>\n\n\n\n<li>Definitionen,<\/li>\n\n\n\n<li>Zahlen,<\/li>\n\n\n\n<li>Bedingungen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">81. Conditional Statements<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Regelwerke enthalten h\u00e4ufig Bedingungen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wenn die Probezeit verl\u00e4ngert wurde,\nbetr\u00e4gt die K\u00fcndigungsfrist weiterhin sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Chunk, der nur enth\u00e4lt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>betr\u00e4gt die K\u00fcndigungsfrist weiterhin sieben Tage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">verliert die Bedingung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch kann das RAG-System sp\u00e4ter falsche allgemeine Aussagen erzeugen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">82. Negationen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Negationen m\u00fcssen ebenfalls im Chunk erhalten bleiben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Original:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>W\u00e4hrend der Probezeit besteht kein Anspruch auf Homeoffice.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn durch schlechtes Parsing oder Chunking nur verbleibt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Anspruch auf Homeoffice.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00e4ndert sich die Bedeutung vollst\u00e4ndig.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">83. Zahlen und Einheiten<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Zahlen sollten zusammen mit ihrer Einheit und ihrem Bezug bleiben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Schlecht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CHF 500\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Besser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die maximale Spesenpauschale betr\u00e4gt CHF 500 pro Monat.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist sowohl f\u00fcr Retrieval als auch f\u00fcr sp\u00e4tere Grounding-Pr\u00fcfungen relevant.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">84. Tabellenk\u00f6pfe wiederholen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei grossen Tabellen kann ein Chunk sonst nur enthalten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>A | 500 | aktiv\nB | 700 | inaktiv\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ohne Header ist die Bedeutung unklar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb werden Tabellenk\u00f6pfe h\u00e4ufig in jeden Teilchunk \u00fcbernommen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Name | Betrag | Status\nA | 500 | aktiv\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">85. Dokumenttitel wiederholen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c4hnlich kann ein Dokumenttitel als Metadatum oder Kontext jedem Chunk hinzugef\u00fcgt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokument: Personalreglement 2026\nAbschnitt: Probezeit\n\nDie K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das kann helfen, \u00e4hnlich klingende Dokumente zu unterscheiden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">86. Kontextanreicherung versus Duplikation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Zus\u00e4tzlicher Kontext hilft.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber zu viel Wiederholung verursacht:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>gr\u00f6ssere Embedding-Texte,<\/li>\n\n\n\n<li>mehr Speicher,<\/li>\n\n\n\n<li>lexikalische Verzerrung,<\/li>\n\n\n\n<li>Duplikate im Prompt.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Daher sollte Kontextanreicherung gezielt erfolgen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">87. Chunking nach Dokumenttyp<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Es gibt keinen Grund, f\u00fcr alle Dokumenttypen dieselbe Strategie zu verwenden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Dokumenttyp<\/th><th>m\u00f6gliche Strategie<\/th><\/tr><\/thead><tbody><tr><td>Gesetz<\/td><td>Artikel \/ Absatz<\/td><\/tr><tr><td>Handbuch<\/td><td>Kapitel \/ Abschnitt<\/td><\/tr><tr><td>Pr\u00e4sentation<\/td><td>Folie<\/td><\/tr><tr><td>Chat<\/td><td>Gespr\u00e4chssegment<\/td><\/tr><tr><td>Tabelle<\/td><td>Zeile oder Gruppe<\/td><\/tr><tr><td>JSON<\/td><td>Record<\/td><\/tr><tr><td>Code<\/td><td>Funktion \/ Klasse<\/td><\/tr><tr><td>Markdown<\/td><td>Heading-Hierarchie<\/td><\/tr><tr><td>E-Mail<\/td><td>Nachricht \/ Threadsegment<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Das Format selbst gibt oft gute nat\u00fcrliche Grenzen vor.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">88. Code Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Source Code sind syntaktische Strukturen gute Grenzen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Namespace\n  \u2193\nClass\n  \u2193\nMethod\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Statt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alle 500 Tokens\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">kann man chunking entlang von:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Klassen,<\/li>\n\n\n\n<li>Methoden,<\/li>\n\n\n\n<li>Funktionen,<\/li>\n\n\n\n<li>Modulen<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">verwenden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das erh\u00e4lt semantische Einheiten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">89. AST-basiertes Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Programmiersprachen kann ein <strong>Abstract Syntax Tree<\/strong>, kurz AST, genutzt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ClassDeclaration\n \u251c\u2500\u2500 MethodDeclaration\n \u251c\u2500\u2500 MethodDeclaration\n \u2514\u2500\u2500 PropertyDeclaration\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">AST-basiertes Chunking ist pr\u00e4ziser als reine Textgrenzen, weil es die Sprachsyntax versteht.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">90. Chunking von Dokumentationen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Technische Dokumentation besitzt h\u00e4ufig nat\u00fcrliche Hierarchien:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Produkt\n \u2193\nKomponente\n \u2193\nFeature\n \u2193\nAPI\n \u2193\nBeispiel\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Struktur sollte m\u00f6glichst erhalten bleiben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine API-Dokumentation mitten zwischen Parameterliste und Return-Wert zu splitten w\u00e4re ung\u00fcnstig.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">91. Multimodale Dokumente<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Manche Dokumente enthalten relevante Information nicht nur als Text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Diagramme,<\/li>\n\n\n\n<li>Screenshots,<\/li>\n\n\n\n<li>Architekturzeichnungen,<\/li>\n\n\n\n<li>Charts,<\/li>\n\n\n\n<li>Formulare.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ein reiner Textparser verliert diese Information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Multimodale RAG-Systeme k\u00f6nnen zus\u00e4tzlich:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bilder beschreiben,<\/li>\n\n\n\n<li>Bild-Embeddings erzeugen,<\/li>\n\n\n\n<li>Layout interpretieren,<\/li>\n\n\n\n<li>Visual Question Answering verwenden.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Das erweitert die Ingestion \u00fcber klassischen Text hinaus.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">92. Image Captioning<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eine M\u00f6glichkeit ist, Bilder automatisch beschreiben zu lassen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Bild\n \u2193\nVision Model\n \u2193\n\"Diagramm zeigt einen Client, der \u00fcber eine API\nmit drei Backend-Services kommuniziert.\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Beschreibung kann anschliessend indexiert werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Problem:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine generierte Beschreibung ist bereits eine Interpretation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie kann Details auslassen oder falsch beschreiben.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">93. Multimodal Embeddings<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Statt ein Bild zuerst in Text umzuwandeln, k\u00f6nnen Systeme multimodale Embeddings verwenden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dabei werden Text und Bilder in einen gemeinsamen oder vergleichbaren Vektorraum \u00fcberf\u00fchrt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann kann eine Textfrage direkt relevante Bilder finden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist konzeptionell eine Erweiterung klassischer Dense Retrieval-Verfahren.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">94. Ingestion Pipeline<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eine typische allgemeine Ingestion-Pipeline kann deshalb deutlich umfangreicher aussehen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Quelle\n  \u2193\nDateityp erkennen\n  \u2193\nParser ausw\u00e4hlen\n  \u2193\nText \/ Layout \/ Tabellen extrahieren\n  \u2193\nOCR falls n\u00f6tig\n  \u2193\nNormalisieren\n  \u2193\nStruktur erkennen\n  \u2193\nMetadaten erfassen\n  \u2193\nChunking\n  \u2193\nChunk Enrichment\n  \u2193\nEmbedding \/ Sparse Representation\n  \u2193\nIndexierung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht jedes System ben\u00f6tigt alle Schritte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Pipeline zeigt aber, wie viel vor dem eigentlichen Retrieval passiert.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">95. Deterministische versus LLM-basierte Ingestion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ingestion kann mit klassischen Algorithmen oder LLMs durchgef\u00fchrt werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deterministisch<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Regex,<\/li>\n\n\n\n<li>HTML Parser,<\/li>\n\n\n\n<li>PDF Parser,<\/li>\n\n\n\n<li>AST,<\/li>\n\n\n\n<li>Heading-Erkennung,<\/li>\n\n\n\n<li>Tabellenparser.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Vorteile:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>reproduzierbar,<\/li>\n\n\n\n<li>g\u00fcnstig,<\/li>\n\n\n\n<li>schnell,<\/li>\n\n\n\n<li>nachvollziehbar.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">LLM-basiert<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00dcberschriften rekonstruieren,<\/li>\n\n\n\n<li>Tabellen interpretieren,<\/li>\n\n\n\n<li>Kontextbeschreibung erzeugen,<\/li>\n\n\n\n<li>Dokument klassifizieren,<\/li>\n\n\n\n<li>Chunk Summary erstellen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Vorteile:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>flexibler bei unstrukturierten Daten.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nachteile:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>teurer,<\/li>\n\n\n\n<li>langsamer,<\/li>\n\n\n\n<li>nicht vollst\u00e4ndig deterministisch,<\/li>\n\n\n\n<li>potenziell halluzinierend.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">96. Reprocessing<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn sich eine wichtige Ingestion-Entscheidung \u00e4ndert, m\u00fcssen Dokumente h\u00e4ufig erneut verarbeitet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiele:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>anderer Parser\nanderes Chunking\nanderes Embedding-Modell\nandere Metadaten\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dann spricht man h\u00e4ufig von:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reprocessing<\/strong> oder <strong>Re-Indexing<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist ein wichtiger Unterschied zu \u00c4nderungen, die nur die sp\u00e4tere Suche betreffen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">97. Re-Indexing<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Re-Indexing<\/strong> bedeutet, den Suchindex neu aufzubauen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alte Chunks\n \u2193\nl\u00f6schen\n\nDokumente\n \u2193\nneue Chunking-Regel\n \u2193\nneue Chunks\n \u2193\nneuer Index\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bei grossen Korpora kann Re-Indexing erheblichen Aufwand verursachen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb sind Ingestion-Entscheidungen langfristig relevant.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">98. Index Drift<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Dokumente mit unterschiedlichen Einstellungen verarbeitet wurden, kann <strong>Index Drift<\/strong> entstehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alte Dokumente:\nEmbedding Model A\nChunk Size 500\n\nneue Dokumente:\nEmbedding Model B\nChunk Size 1'000\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der Index ist dann nicht mehr homogen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das kann Retrieval unvorhersehbar machen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">99. Embedding-Versionen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Besonders kritisch ist der Wechsel eines Embedding-Modells.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vektoren verschiedener Modelle sind normalerweise nicht direkt vergleichbar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Dokumente mit Modell A eingebettet wurden und die Query mit Modell B, funktioniert semantische \u00c4hnlichkeit nicht sinnvoll.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb m\u00fcssen Modellversionen sauber verwaltet werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">100. Chunking-Versionen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Auch Chunking-Regeln k\u00f6nnen versioniert werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chunking_version: 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit l\u00e4sst sich nachvollziehen, mit welcher Strategie ein Chunk erzeugt wurde.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist hilfreich f\u00fcr:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reprocessing,<\/li>\n\n\n\n<li>Debugging,<\/li>\n\n\n\n<li>Evaluation,<\/li>\n\n\n\n<li>Migrationen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">101. Evaluation von Chunking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking sollte nicht nur nach Bauchgef\u00fchl gew\u00e4hlt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man kann verschiedene Strategien testen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Strategie A:\n500 Tokens, 50 Overlap\n\nStrategie B:\nstrukturierte Abschnitte\n\nStrategie C:\nParent-Child\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Danach misst man:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Findet das Retrieval die richtigen Passagen?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking-Evaluation ist deshalb letztlich Retrieval-Evaluation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">102. Gold Questions<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Tests ben\u00f6tigt man Fragen mit bekannten relevanten Quellen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Frage:\nWie lange ist die K\u00fcndigungsfrist w\u00e4hrend der Probezeit?\n\nRelevant:\nDokument A, Abschnitt 3.2\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dann kann man messen, ob unterschiedliche Chunking-Strategien den relevanten Abschnitt in die Top-k bringen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">103. Retrieval Granularity<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Retrieval Granularity<\/strong> beschreibt die Gr\u00f6sse der Einheit, auf der gesucht wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">M\u00f6gliche Ebenen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokument\nKapitel\nAbschnitt\nChunk\nSatz\nRecord\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Feine Granularit\u00e4t bietet hohe Pr\u00e4zision.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Grobe Granularit\u00e4t liefert mehr Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Parent-Child Retrieval versucht genau diesen Konflikt zu entsch\u00e4rfen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">104. Storage Granularity<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die <strong>Storage Granularity<\/strong> muss nicht mit der Retrieval Granularity identisch sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein System k\u00f6nnte beispielsweise speichern:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokument\nSection\nChunk\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">aber nur auf Chunk-Ebene suchen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die anderen Ebenen dienen sp\u00e4ter der Kontextrekonstruktion.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">105. Retrieval Unit versus Context Unit<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eine der wichtigsten Begriffsunterscheidungen dieses Teils:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Retrieval Unit<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Einheit, die gesucht und gerankt wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Context Unit<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Einheit, die dem LLM tats\u00e4chlich gegeben wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Retrieval Unit:\n2 S\u00e4tze\n\nContext Unit:\nganzer Abschnitt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist die Grundlage f\u00fcr Parent-Child und Small-to-Big Retrieval.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">106. Source of Truth<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Chunk-basierten Systemen sollte der Chunk nicht zwingend die einzige gespeicherte Wahrheit sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ideal ist h\u00e4ufig:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Originaldokument\n      \u2193\nstrukturierte Repr\u00e4sentation\n      \u2193\nChunks\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Original bleibt die <strong>Source of Truth<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chunks sind abgeleitete Retrieval-Artefakte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das erleichtert sp\u00e4ter:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reprocessing,<\/li>\n\n\n\n<li>neue Chunking-Verfahren,<\/li>\n\n\n\n<li>neue Embeddings,<\/li>\n\n\n\n<li>bessere Parser.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">107. Lossy versus Lossless Processing<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Lossless Processing<\/strong> versucht, Information vollst\u00e4ndig zu erhalten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Lossy Processing<\/strong> verwirft oder verdichtet bewusst Information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Originaldokument:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>10 Seiten\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Zusammenfassung:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1 Seite\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Zusammenfassung ist lossy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das kann f\u00fcr Retrieval hilfreich sein, darf aber nicht mit dem Original verwechselt werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">108. Summaries sind keine Originalquellen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Automatisch erzeugte Dokument- oder Chunk-Zusammenfassungen k\u00f6nnen n\u00fctzlich sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie sollten aber als abgeleitete Information betrachtet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Denn ein Summary-Modell kann:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Details auslassen,<\/li>\n\n\n\n<li>Zahlen ver\u00e4ndern,<\/li>\n\n\n\n<li>Nuancen verlieren,<\/li>\n\n\n\n<li>falsche Schl\u00fcsse ziehen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr quellengebundene Antworten sollte m\u00f6glichst weiterhin auf Originalpassagen zur\u00fcckgegriffen werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">109. Metadata Filtering<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Metadaten k\u00f6nnen sp\u00e4ter beim Retrieval als Filter dienen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>year = 2026\nlanguage = de\ndocument_type = policy\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist effizienter, als jede Information nur \u00fcber semantische \u00c4hnlichkeit zu l\u00f6sen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Daf\u00fcr m\u00fcssen die Metadaten bereits w\u00e4hrend der Ingestion sauber vorhanden sein.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">110. Metadata Enrichment<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Metadaten k\u00f6nnen aus verschiedenen Quellen stammen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Direkt aus der Datei<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Dateiname\nAuthor\nCreation Date\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Aus dem Inhalt<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Titel\nKapitel\nSprache\nDatum\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Extern<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>SharePoint Site\nFolder\nOwner\nPermission\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Generiert<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Thema\nZusammenfassung\nKlassifikation\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Generierte Metadaten sind n\u00fctzlich, aber weniger verl\u00e4sslich als direkt vorhandene.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">111. Permissions als Metadaten<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In Unternehmenssystemen kann auch die Zugriffsberechtigung mit Dokumenten oder Chunks verbunden sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>allowed_group = HR\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dann darf Retrieval diese Inhalte nur f\u00fcr entsprechende Benutzer ber\u00fccksichtigen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist kein klassisches Chunking-Thema, geh\u00f6rt aber zur korrekten Ingestion von Unternehmenswissen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Denn Berechtigungen m\u00fcssen sp\u00e4testens beim Indexieren oder Retrieval erhalten bleiben.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">112. Chunk Provenance<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Provenance<\/strong> bedeutet Herkunft und Nachvollziehbarkeit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr einen Chunk sollte idealerweise klar sein:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>aus welchem Dokument?\nwelche Version?\nwelche Seite?\nwelcher Abschnitt?\nwelcher Parser?\nwelcher Chunker?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Informationen sind besonders wertvoll f\u00fcr Debugging.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">113. Warum Provenance wichtig ist<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen, ein System liefert eine falsche Antwort.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Im Trace erscheint:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 5832\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ohne weitere Metadaten ist das kaum hilfreich.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mit Provenance:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Document: Personalreglement 2026\nPage: 7\nHeading: Probezeit &gt; K\u00fcndigung\nChunk Index: 12\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">l\u00e4sst sich sofort nachvollziehen, woher der Treffer stammt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">114. Ingestion Observability<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Auch die Ingestion selbst sollte beobachtbar sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00fctzliche Kennzahlen k\u00f6nnen sein:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokumente verarbeitet\nDokumente fehlgeschlagen\nOCR verwendet\nTextl\u00e4nge\nChunk-Anzahl\ndurchschnittliche Chunk-Gr\u00f6sse\nDuplikate\nleere Dokumente\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Dokument mit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0 Chunks\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ist zwar m\u00f6glicherweise technisch \u201everarbeitet\u201c, f\u00fcr Retrieval aber wertlos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">115. Empty Documents<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Manche Dateien liefern nach Parsing keinen verwertbaren Text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gr\u00fcnde:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scan ohne OCR,<\/li>\n\n\n\n<li>besch\u00e4digte Datei,<\/li>\n\n\n\n<li>DRM,<\/li>\n\n\n\n<li>ungew\u00f6hnliche Codierung,<\/li>\n\n\n\n<li>parserseitiger Fehler.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Solche Dokumente sollten nicht stillschweigend als erfolgreich indexiert gelten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">116. Very Short Documents<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Sehr kurze Dokumente ben\u00f6tigen h\u00e4ufig kein klassisches Chunking.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Passwort muss mindestens 14 Zeichen besitzen.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser gesamte Text kann ein Chunk sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein fixer Chunker sollte nicht k\u00fcnstlich versuchen, jeden Inhalt gleich zu behandeln.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">117. Very Large Documents<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Sehr grosse Dokumente ben\u00f6tigen dagegen m\u00f6glicherweise mehrere Hierarchiestufen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>2'000 Seiten\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein rein flaches Chunking kann zehntausende Chunks erzeugen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann werden Dokument-Level- oder Section-Level-Repr\u00e4sentationen interessant.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">118. Chunk Explosion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Als <strong>Chunk Explosion<\/strong> kann man informell das Problem bezeichnen, dass aggressive Split-Regeln sehr viele kleine Chunks erzeugen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1'000 Dokumente\n\u2192 300'000 Chunks\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das erh\u00f6ht:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Indexgr\u00f6sse,<\/li>\n\n\n\n<li>Embedding-Kosten,<\/li>\n\n\n\n<li>Retrieval-Kandidaten,<\/li>\n\n\n\n<li>Speicherbedarf.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Mehr Chunks bedeuten nicht automatisch bessere Qualit\u00e4t.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">119. Chunk Compression<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Umgekehrt k\u00f6nnen Chunks nachtr\u00e4glich komprimiert oder gefiltert werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Form ist <strong>Contextual Compression<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dabei wird aus einem gefundenen Chunk nur der f\u00fcr die Frage relevante Teil \u00fcbernommen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chunk:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Probezeit dauert drei Monate.\nK\u00fcndigungsfrist betr\u00e4gt sieben Tage.\nFerienanspruch besteht anteilig.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Frage:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wie lange ist die K\u00fcndigungsfrist?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Komprimierter Kontext:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Contextual Compression geh\u00f6rt technisch eher in den Query-Pfad, steht aber in engem Zusammenhang mit Chunk-Gr\u00f6sse.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">120. Chunking ist keine einmalige Wahrheit<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Es existiert keine allgemeing\u00fcltige Regel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>512 Tokens sind optimal.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oder:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>20 % Overlap sind optimal.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Solche Werte sind Startpunkte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die richtige Chunking-Strategie h\u00e4ngt vom Korpus und den tats\u00e4chlichen Fragen ab.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Gesetz, ein Code-Repository und ein Meeting-Transkript ben\u00f6tigen unterschiedliche Ans\u00e4tze.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">121. Der richtige Denkansatz<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die bessere Frage lautet nicht:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Welche Chunk Size sollte ich verwenden?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Sondern:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Welche Informationseinheiten m\u00fcssen in meinem Korpus gemeinsam erhalten bleiben, damit die typischen Benutzerfragen beantwortbar bleiben?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Erst danach kommen technische Parameter.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">122. Beispiel: Reglement<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Original:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>3. Probezeit\n\n3.1 Dauer\n\nDie Probezeit betr\u00e4gt drei Monate.\n\n3.2 K\u00fcndigung\n\nW\u00e4hrend der Probezeit kann das Arbeitsverh\u00e4ltnis\nmit einer Frist von sieben Tagen gek\u00fcndigt werden.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eine sinnvolle Repr\u00e4sentation k\u00f6nnte sein:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 1\n\nHeading Path:\nProbezeit &gt; Dauer\n\nText:\nDie Probezeit betr\u00e4gt drei Monate.\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 2\n\nHeading Path:\nProbezeit &gt; K\u00fcndigung\n\nText:\nW\u00e4hrend der Probezeit kann das Arbeitsverh\u00e4ltnis\nmit einer Frist von sieben Tagen gek\u00fcndigt werden.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit sind beide Regeln getrennt auffindbar, behalten aber ihren Kontext.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">123. Beispiel: Schlechte Variante<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 1:\n3. Probezeit 3.1 Dauer Die Probezeit betr\u00e4gt drei Monate.\n3.2 K\u00fcndigung W\u00e4hrend\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 2:\nder Probezeit kann das Arbeitsverh\u00e4ltnis mit einer Frist\nvon sieben Tagen gek\u00fcndigt werden.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Chunk-Grenze liegt mitten in einer Aussage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Retrieval muss nun trotz k\u00fcnstlicher Trennung korrekt funktionieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist vermeidbar.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">124. Beispiel: Zu grosse Variante<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 1:\n\ngesamtes Personalreglement,\n18'000 W\u00f6rter\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Information ist vollst\u00e4ndig vorhanden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber das Retrieval erh\u00e4lt eine sehr unspezifische Repr\u00e4sentation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die relevante Passage ist semantisch nur ein kleiner Anteil des Chunks.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">125. Beispiel: Parent-Child<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Retrieval-Chunks:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Child A:\nDie Probezeit betr\u00e4gt drei Monate.\n\nChild B:\nDie K\u00fcndigungsfrist betr\u00e4gt sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Parent:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Probezeit\n\nDie Probezeit betr\u00e4gt drei Monate.\nW\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage.\nNach Ablauf gelten die ordentlichen Fristen.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Suche:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wie lang ist die K\u00fcndigungsfrist w\u00e4hrend der Probezeit?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Retriever findet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Child B\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Prompt erh\u00e4lt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Parent\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist das Kernprinzip von Small-to-Big Retrieval.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">126. Typische Chunking-Fehler<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Zu den h\u00e4ufigsten Fehlern geh\u00f6ren:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>starre Chunk-Gr\u00f6sse f\u00fcr alle Dokumenttypen,<\/li>\n\n\n\n<li>\u00dcberschriften werden vom Inhalt getrennt,<\/li>\n\n\n\n<li>Tabellen werden linearisiert und zerst\u00f6rt,<\/li>\n\n\n\n<li>Seitenk\u00f6pfe werden mehrfach indexiert,<\/li>\n\n\n\n<li>zu grosser Overlap,<\/li>\n\n\n\n<li>zu kleine Chunks,<\/li>\n\n\n\n<li>zu grosse Chunks,<\/li>\n\n\n\n<li>Dokumenttitel gehen verloren,<\/li>\n\n\n\n<li>Parent-Beziehungen fehlen,<\/li>\n\n\n\n<li>Quellenpositionen werden nicht gespeichert,<\/li>\n\n\n\n<li>OCR-Fehler werden ignoriert,<\/li>\n\n\n\n<li>alte Dokumentversionen bleiben im Index.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">127. Was Chunking nicht l\u00f6sen kann<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking ist wichtig, aber kein Allheilmittel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es kann nicht automatisch l\u00f6sen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>falsche Dokumente,<\/li>\n\n\n\n<li>veraltete Informationen,<\/li>\n\n\n\n<li>fehlende Berechtigungen,<\/li>\n\n\n\n<li>schlechte OCR,<\/li>\n\n\n\n<li>widerspr\u00fcchliche Quellen,<\/li>\n\n\n\n<li>ungeeignete Retrieval-Verfahren,<\/li>\n\n\n\n<li>Halluzinationen des LLM.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking ist eine Stufe in der gesamten Pipeline.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">128. Parsing, Chunking und Retrieval sauber trennen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Diese drei Begriffe werden h\u00e4ufig vermischt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Parsing<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Datei \u2192 Inhalt\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Chunking<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Inhalt \u2192 Einheiten\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Retrieval<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Frage \u2192 relevante Einheiten\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Schematisch:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PDF\n \u2193\nParsing\n \u2193\nstrukturierter Text\n \u2193\nChunking\n \u2193\nChunks\n \u2193\nIndex\n \u2193\nRetrieval\n \u2193\nrelevante Chunks\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Trennung ist zentral.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">129. Chunking versus Indexing<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Chunking<\/strong> erzeugt Retrieval-Einheiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Indexing<\/strong> macht diese Einheiten effizient durchsuchbar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk\n \u2193\nEmbedding\n \u2193\nVector Index\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oder:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk\n \u2193\nTokenisierung\n \u2193\nBM25 Index\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dieselbe Chunking-Struktur kann theoretisch mit unterschiedlichen Indizes verwendet werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">130. Chunking versus Embedding<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Auch diese Begriffe sind getrennt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Text\n \u2193\nChunking\n \u2193\nChunk\n \u2193\nEmbedding\n \u2193\nVector\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking entscheidet, <strong>welcher Text zusammengeh\u00f6rt<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Embedding entscheidet, <strong>wie dieser Text numerisch repr\u00e4sentiert wird<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Teil 3 behandelt genau diesen n\u00e4chsten Schritt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">131. Begriffs\u00fcbersicht<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Begriff<\/th><th>Bedeutung<\/th><\/tr><\/thead><tbody><tr><td><strong>Ingestion<\/strong><\/td><td>Aufnahme und Aufbereitung von Wissen f\u00fcr Retrieval<\/td><\/tr><tr><td><strong>Parsing<\/strong><\/td><td>strukturierte Interpretation eines Datenformats<\/td><\/tr><tr><td><strong>Text Extraction<\/strong><\/td><td>Extraktion von Text ohne zwingenden Strukturerhalt<\/td><\/tr><tr><td><strong>Layout Parsing<\/strong><\/td><td>Erkennung visueller Dokumentstruktur<\/td><\/tr><tr><td><strong>OCR<\/strong><\/td><td>Texterkennung aus Bildern oder Scans<\/td><\/tr><tr><td><strong>Normalisierung<\/strong><\/td><td>Bereinigung technischer Textartefakte<\/td><\/tr><tr><td><strong>Boilerplate<\/strong><\/td><td>wiederkehrender, meist irrelevanter Dokumentinhalt<\/td><\/tr><tr><td><strong>Metadaten<\/strong><\/td><td>zus\u00e4tzliche Informationen \u00fcber Dokument oder Chunk<\/td><\/tr><tr><td><strong>Chunk<\/strong><\/td><td>kleinere Retrieval-Einheit eines gr\u00f6sseren Dokuments<\/td><\/tr><tr><td><strong>Chunk Size<\/strong><\/td><td>maximale beziehungsweise angestrebte Chunk-Gr\u00f6sse<\/td><\/tr><tr><td><strong>Overlap<\/strong><\/td><td>\u00fcberlappender Inhalt benachbarter Chunks<\/td><\/tr><tr><td><strong>Fixed-Size Chunking<\/strong><\/td><td>Zerlegung nach fixer L\u00e4nge<\/td><\/tr><tr><td><strong>Sliding Window<\/strong><\/td><td>fixe Fenster mit Overlap<\/td><\/tr><tr><td><strong>Sentence Chunking<\/strong><\/td><td>Zerlegung entlang von Satzgrenzen<\/td><\/tr><tr><td><strong>Paragraph Chunking<\/strong><\/td><td>Zerlegung entlang von Abs\u00e4tzen<\/td><\/tr><tr><td><strong>Recursive Chunking<\/strong><\/td><td>schrittweise Nutzung verschiedener Trennzeichen<\/td><\/tr><tr><td><strong>Structured Chunking<\/strong><\/td><td>Chunking anhand logischer Dokumentstruktur<\/td><\/tr><tr><td><strong>Semantic Chunking<\/strong><\/td><td>Chunk-Grenzen anhand semantischer Themenwechsel<\/td><\/tr><tr><td><strong>Page Chunking<\/strong><\/td><td>eine Seite als Retrieval-Einheit<\/td><\/tr><tr><td><strong>Section Chunking<\/strong><\/td><td>Abschnitte als Grundeinheit<\/td><\/tr><tr><td><strong>Heading Path<\/strong><\/td><td>hierarchischer \u00dcberschriftenpfad eines Chunks<\/td><\/tr><tr><td><strong>Parent-Child Retrieval<\/strong><\/td><td>kleine Chunks suchen, gr\u00f6sseren Parent liefern<\/td><\/tr><tr><td><strong>Small-to-Big<\/strong><\/td><td>kleine Retrieval-Einheit, gr\u00f6ssere Prompt-Einheit<\/td><\/tr><tr><td><strong>Neighbor Expansion<\/strong><\/td><td>benachbarte Chunks zus\u00e4tzlich laden<\/td><\/tr><tr><td><strong>Hierarchical Chunking<\/strong><\/td><td>mehrere Dokumentebenen als Retrievalstruktur<\/td><\/tr><tr><td><strong>Late Chunking<\/strong><\/td><td>Kontext vor der finalen Chunk-Repr\u00e4sentation ber\u00fccksichtigen<\/td><\/tr><tr><td><strong>Chunk Enrichment<\/strong><\/td><td>Chunks um zus\u00e4tzlichen Kontext erweitern<\/td><\/tr><tr><td><strong>Contextual Retrieval<\/strong><\/td><td>Chunks mit Dokumentkontext f\u00fcr Suche anreichern<\/td><\/tr><tr><td><strong>Provenance<\/strong><\/td><td>Herkunft und Nachvollziehbarkeit eines Chunks<\/td><\/tr><tr><td><strong>Reprocessing<\/strong><\/td><td>Dokumente erneut durch die Ingestion schicken<\/td><\/tr><tr><td><strong>Re-Indexing<\/strong><\/td><td>Suchindex neu erzeugen<\/td><\/tr><tr><td><strong>Index Drift<\/strong><\/td><td>inkonsistente Indexierung \u00fcber verschiedene Versionen<\/td><\/tr><tr><td><strong>Retrieval Unit<\/strong><\/td><td>Einheit, auf der gesucht wird<\/td><\/tr><tr><td><strong>Context Unit<\/strong><\/td><td>Einheit, die dem LLM bereitgestellt wird<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">132. Die wichtigste Erkenntnis aus Teil 2<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die Qualit\u00e4t eines RAG-Systems beginnt nicht beim LLM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie beginnt beim Dokument.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Original\n   \u2193\nParsing\n   \u2193\nStruktur\n   \u2193\nChunking\n   \u2193\nRepr\u00e4sentation\n   \u2193\nIndex\n   \u2193\nRetrieval\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn in den ersten Stufen Information verloren geht, kann keine sp\u00e4tere Stufe sie zuverl\u00e4ssig zur\u00fcckholen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb lautet eine der wichtigsten Regeln beim Aufbau von RAG-Systemen:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Chunking ist kein Split-Parameter. Chunking ist Informationsmodellierung.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Man entscheidet damit, welche Einheiten sp\u00e4ter als Wissen betrachtet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein guter Chunk ist nicht einfach \u201eungef\u00e4hr 500 Tokens lang\u201c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Er ist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>semantisch zusammenh\u00e4ngend,<\/li>\n\n\n\n<li>ausreichend vollst\u00e4ndig,<\/li>\n\n\n\n<li>nachvollziehbar,<\/li>\n\n\n\n<li>mit seinem Ursprung verbunden,<\/li>\n\n\n\n<li>f\u00fcr Retrieval pr\u00e4zise genug,<\/li>\n\n\n\n<li>f\u00fcr die sp\u00e4tere Antwort kontextreich genug.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Und genau nach dem Chunking beginnt die n\u00e4chste grosse Frage:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Wie verwandelt man Text in eine mathematische Repr\u00e4sentation, mit der semantische \u00c4hnlichkeit berechnet werden kann?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Das f\u00fchrt direkt zu <strong>Embeddings und Vektorsuche<\/strong>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">RAG von Grund auf<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 1 \u2013 RAG verstehen<\/strong><br>LLM, parametrisches Wissen, Kontext, Retrieval, Augmentation, Generation und Grounding.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 2 \u2013 Dokumente, Parsing und Chunking<\/strong><br>Ingestion, Parser, OCR, Dokumentstruktur, Chunks, Overlap, Structured Chunking, Parent-Child und Small-to-Big.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 3 \u2013 Embeddings und Vektorsuche<\/strong><br>Embeddings, Dense Vectors, \u00c4hnlichkeitsmasse, Vector Stores, ANN und HNSW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 4 \u2013 Information Retrieval und Hybrid Search<\/strong><br>TF, IDF, TF-IDF, BM25, Sparse Search, Dense Search, Hybrid Retrieval und RRF.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 5 \u2013 Reranking und Retrieval-Strategien<\/strong><br>Bi-Encoder, Cross-Encoder, Top-k, MMR, Query Rewrite, Multi-Query und HyDE.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 6 \u2013 Kontext, Grounding und Antworten<\/strong><br>Token-Budget, Kontextfenster, Lost in the Middle, Faithfulness, Citations und Answerability.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 7 \u2013 Advanced RAG<\/strong><br>Naive RAG, Modular RAG, Multi-Hop, Self-RAG, CRAG, RAPTOR, GraphRAG, ColBERT und Agentic RAG.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 8 \u2013 Evaluation, Sicherheit und Abgrenzung<\/strong><br>Recall, Precision, Hit@k, MRR, nDCG, RAG-Evaluation, Prompt Injection, RAG Poisoning, Fine-Tuning und Tool Calling.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im ersten Teil ging es um die Grundidee von Retrieval-Augmented Generation: Damit ein System \u00fcberhaupt sinnvoll retrieven kann, muss Wissen zuerst in eine Form gebracht werden, die sich durchsuchen l\u00e4sst. Genau hier beginnt die Ingestion. Dieser Teil behandelt deshalb die Seite von RAG, die h\u00e4ufig untersch\u00e4tzt wird: Dokumente einlesen, strukturieren, zerlegen und so vorbereiten, dass [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":360,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41,61],"tags":[196,197,192,195,194],"class_list":["post-344","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cost-aware-ai-systems","category-retrieval-augmented-generation","tag-chunking","tag-ingestion","tag-rag","tag-rag-part-2","tag-series"],"_links":{"self":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts\/344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=344"}],"version-history":[{"count":1,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts\/344\/revisions"}],"predecessor-version":[{"id":345,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts\/344\/revisions\/345"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/media\/360"}],"wp:attachment":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}