{"id":342,"date":"2026-09-09T18:35:49","date_gmt":"2026-09-09T18:35:49","guid":{"rendered":"https:\/\/www.fabricioruch.ch\/?p=342"},"modified":"2026-09-25T21:17:33","modified_gmt":"2026-09-25T21:17:33","slug":"rag-von-grund-auf-teil-1-rag-verstehen","status":"publish","type":"post","link":"https:\/\/www.fabricioruch.ch\/?p=342","title":{"rendered":"RAG von Grund auf \u2013 Teil 1: RAG verstehen"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Retrieval-Augmented Generation, kurz <strong>RAG<\/strong>, geh\u00f6rt inzwischen zu den zentralen Konzepten beim Einsatz von Large Language Models mit eigenem Wissen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Grundidee klingt zun\u00e4chst erstaunlich einfach:<\/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\">Bevor ein Sprachmodell eine Frage beantwortet, werden relevante Informationen gesucht und dem Modell als Kontext mitgegeben.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Damit ist RAG im Kern bereits beschrieben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die eigentliche Komplexit\u00e4t beginnt jedoch unmittelbar danach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Was bedeutet \u201erelevant\u201c? Wie findet man die richtigen Informationen? Wie werden Dokumente \u00fcberhaupt durchsuchbar gemacht? Was ist ein Embedding? Warum reicht eine klassische Volltextsuche manchmal nicht aus? Was ist der Unterschied zwischen Dense und Sparse Retrieval? Warum ben\u00f6tigt man Reranking? Was bedeutet Grounding? Und warum kann ein RAG-System trotz korrekter Quellen noch immer eine falsche Antwort erzeugen?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Artikelserie behandelt genau diese Grundlagen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht anhand eines bestimmten Frameworks und nicht anhand einer konkreten Produktarchitektur. Ziel ist ein technisches Referenzwerk \u00fcber die Begriffe und Konzepte, die man kennen muss, um RAG-Systeme, Fachartikel, Papers, Dokumentationen und technische Diskussionen verstehen und einordnen zu k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser erste Teil beginnt bewusst vor Embeddings, Vektordatenbanken und Chunking.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zuerst muss klar sein, <strong>welches Problem RAG \u00fcberhaupt l\u00f6st.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">1. Das Ausgangsproblem: Ein LLM ist keine Wissensdatenbank<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Large Language Model ist zun\u00e4chst ein Modell zur Verarbeitung und Erzeugung von Sprache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vereinfacht betrachtet erh\u00e4lt es eine Folge von Tokens und berechnet, welche Tokens wahrscheinlich folgen sollten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Die Hauptstadt der Schweiz ist ...\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">kann beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Bern\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Moderne Sprachmodelle sind nat\u00fcrlich wesentlich komplexer als diese vereinfachte Darstellung vermuten l\u00e4sst. Dennoch ist ein Punkt entscheidend:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Das Modell f\u00fchrt nicht bei jeder Frage automatisch eine Suche in einer Wissensdatenbank durch.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein erheblicher Teil dessen, was ein LLM \u201eweiss\u201c, stammt aus seinem Training.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit kommen wir zur ersten wichtigen Unterscheidung.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">2. Parametrisches Wissen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Als <strong>parametrisches Wissen<\/strong> bezeichnet man vereinfacht Wissen, das w\u00e4hrend des Trainings in den Parametern beziehungsweise Gewichten eines Modells repr\u00e4sentiert wurde.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Modell hat beispielsweise w\u00e4hrend des Trainings sehr viele Texte \u00fcber Programmiersprachen gesehen. Dadurch kann es Fragen \u00fcber C#, Java oder Python beantworten, ohne daf\u00fcr bei jeder Anfrage Dokumentationen durchsuchen zu m\u00fcssen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist enorm leistungsf\u00e4hig.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es besitzt aber fundamentale Grenzen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aktualit\u00e4t<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Das Trainingswissen entspricht nicht zwangsl\u00e4ufig dem heutigen Stand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neue Produkte, ge\u00e4nderte Gesetze, aktuelle interne Dokumentationen oder Informationen, die nach dem Training entstanden sind, k\u00f6nnen fehlen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unternehmensinternes Wissen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ein \u00f6ffentlich trainiertes Modell kennt normalerweise nicht:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>interne Richtlinien,<\/li>\n\n\n\n<li>Prozessbeschreibungen,<\/li>\n\n\n\n<li>Projektdokumentationen,<\/li>\n\n\n\n<li>Vertr\u00e4ge,<\/li>\n\n\n\n<li>Sitzungsprotokolle,<\/li>\n\n\n\n<li>interne Wikis,<\/li>\n\n\n\n<li>technische Betriebsdokumentationen,<\/li>\n\n\n\n<li>private Wissensdatenbanken.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Nachweisbarkeit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Selbst wenn das Modell eine richtige Antwort kennt, ist zun\u00e4chst nicht klar, <strong>woher<\/strong> diese Information stammt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr viele professionelle Anwendungen reicht<\/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\">\u201eDas Modell weiss das.\u201c<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">nicht aus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man ben\u00f6tigt eine konkrete Quelle.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zuverl\u00e4ssigkeit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sprachmodelle k\u00f6nnen plausible Aussagen erzeugen, die faktisch falsch oder nicht belegt sind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit entsteht eines der bekanntesten Probleme generativer KI.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">3. Halluzination<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Von einer <strong>Halluzination<\/strong> spricht man, wenn ein Sprachmodell Inhalte erzeugt, die plausibel erscheinen, aber nicht durch die zugrunde liegenden Fakten oder den bereitgestellten Kontext gedeckt sind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Gef\u00e4hrliche daran ist nicht zwingend, dass eine Halluzination absurd klingt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Gegenteil ist h\u00e4ufig das Problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie kann sprachlich vollkommen \u00fcberzeugend sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Modell k\u00f6nnte beispielsweise eine nicht existierende Vorschrift, eine falsche Zahl oder eine erfundene Produkteigenschaft nennen und diese in einer sprachlich perfekten Antwort pr\u00e4sentieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG versucht unter anderem, dieses Problem zu reduzieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber eine wichtige Einschr\u00e4nkung geh\u00f6rt bereits an diese Stelle:<\/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>RAG beseitigt Halluzinationen nicht automatisch.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Ein RAG-System kann die falschen Informationen finden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es kann richtige Informationen falsch interpretieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Modell kann trotz korrektem Kontext zus\u00e4tzliche Behauptungen erzeugen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oder die Antwort kann weiter gehen, als die Quellen tats\u00e4chlich erlauben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG verbessert die Voraussetzungen f\u00fcr faktengebundene Antworten. Es garantiert sie nicht.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">4. Die zweite Wissensquelle eines LLM: Kontext<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Sprachmodell besitzt neben seinem parametrischen Wissen noch eine zweite entscheidende Informationsquelle:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>den Kontext des aktuellen Requests.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn wir dem Modell schreiben:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Das Unternehmen gew\u00e4hrt w\u00e4hrend der Probezeit\n20 Ferientage pro Jahr.\n\nFrage:\nWie viele Ferientage gelten w\u00e4hrend der Probezeit?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">muss diese Information nicht Bestandteil des Trainings gewesen sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie befindet sich direkt im aktuellen Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Modell kann daraus die Antwort ableiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Genau diese Eigenschaft bildet die Grundlage von RAG.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anstatt zu versuchen, jedes ben\u00f6tigte Wissen in die Modellgewichte zu bekommen, suchen wir die relevanten Informationen <strong>vor der Antwort<\/strong> und geben sie dem Modell mit.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">5. Das Kontextfenster<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die Menge an Informationen, die ein Modell gleichzeitig verarbeiten kann, wird durch sein <strong>Kontextfenster<\/strong> begrenzt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieses wird \u00fcblicherweise in <strong>Tokens<\/strong> angegeben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Request kann beispielsweise enthalten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Systemanweisungen\n+\nbisheriger Chatverlauf\n+\nBenutzerfrage\n+\ngefundene Dokumentpassagen\n+\nweitere Metadaten\n+\nerzeugte Antwort\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">All diese Bestandteile ben\u00f6tigen Kontext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das f\u00fchrt zu einer wichtigen Erkenntnis:<\/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\">Man kann einem Sprachmodell normalerweise nicht einfach unbegrenzt viele Dokumente mitgeben.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Selbst wenn ein Modell ein sehr grosses Kontextfenster unterst\u00fctzt, w\u00e4re es h\u00e4ufig ineffizient, bei jeder Frage das gesamte verf\u00fcgbare Wissen hineinzukopieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Unternehmen k\u00f6nnte beispielsweise Millionen Seiten Dokumentation besitzen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Frage ben\u00f6tigt davon vielleicht drei Abs\u00e4tze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das eigentliche Problem lautet daher 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 alle Dokumente in den Prompt?<\/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 finde ich f\u00fcr diese konkrete Frage genau die Informationen, die das Modell ben\u00f6tigt?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Damit sind wir beim Retrieval.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">6. Was bedeutet RAG?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>RAG<\/strong> steht f\u00fcr:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Retrieval-Augmented Generation<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Begriff beschreibt die Kombination von Informationssuche und generativer KI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Er l\u00e4sst sich in drei Bestandteile zerlegen:<\/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\">Oder ausf\u00fchrlicher:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Benutzerfrage\n      \u2193\nrelevante Informationen suchen\n      \u2193\ngefundene Informationen als Kontext bereitstellen\n      \u2193\nLLM erzeugt daraus eine Antwort\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese drei Schritte sollte man begrifflich sauber auseinanderhalten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">7. Retrieval<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Retrieval<\/strong> bedeutet Informationsabruf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das System versucht, aus einem vorhandenen Wissensbestand diejenigen Informationen zu finden, die f\u00fcr die aktuelle Anfrage relevant sind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Wissensbestand wird h\u00e4ufig als <strong>Korpus<\/strong> beziehungsweise <strong>Corpus<\/strong> bezeichnet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Korpus kann beispielsweise bestehen aus:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PDF-Dokumenten,<\/li>\n\n\n\n<li>Word-Dateien,<\/li>\n\n\n\n<li>Webseiten,<\/li>\n\n\n\n<li>Wiki-Artikeln,<\/li>\n\n\n\n<li>Handb\u00fcchern,<\/li>\n\n\n\n<li>E-Mails,<\/li>\n\n\n\n<li>Tickets,<\/li>\n\n\n\n<li>Markdown-Dateien,<\/li>\n\n\n\n<li>Datenbankinhalten,<\/li>\n\n\n\n<li>JSON-Daten,<\/li>\n\n\n\n<li>technischen Dokumentationen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Die zentrale Aufgabe des Retrievals 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\">Welche Teile dieses Korpus sind f\u00fcr die Frage relevant?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Das klingt wie eine klassische Suchmaschine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und tats\u00e4chlich stammt ein erheblicher Teil der technischen Grundlagen von RAG nicht aus der LLM-Forschung, sondern aus einem wesentlich \u00e4lteren Gebiet:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Information Retrieval.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">8. Information Retrieval<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Information Retrieval<\/strong>, kurz <strong>IR<\/strong>, besch\u00e4ftigt sich mit dem Auffinden relevanter Informationen innerhalb grosser Informationsbest\u00e4nde.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suchmaschinen sind das offensichtlichste Beispiel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Begriffe wie<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ranking,<\/li>\n\n\n\n<li>Relevanz,<\/li>\n\n\n\n<li>Recall,<\/li>\n\n\n\n<li>Precision,<\/li>\n\n\n\n<li>TF-IDF,<\/li>\n\n\n\n<li>BM25,<\/li>\n\n\n\n<li>Query Expansion,<\/li>\n\n\n\n<li>Reranking<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">existierten lange vor modernen Large Language Models.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG verbindet diese klassische Suchwelt mit generativer KI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist eine wichtige Perspektive, weil RAG h\u00e4ufig f\u00e4lschlicherweise haupts\u00e4chlich als LLM- oder Prompting-Problem betrachtet wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Wirklichkeit lautet eine der wichtigsten Regeln:<\/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>Eine Generation kann nur so gut auf den Quellen basieren, wie das Retrieval die richtigen Quellen findet.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn der richtige Absatz nie gefunden wird, kann das Antwortmodell ihn auch nicht verwenden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb steckt ein grosser Teil der Qualit\u00e4t eines RAG-Systems im Retrieval.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">9. Augmentation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Nach dem Retrieval liegen relevante Informationen vor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese m\u00fcssen nun dem Modell zur Verf\u00fcgung gestellt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Schritt ist die <strong>Augmentation<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vereinfacht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Frage:\nWelche K\u00fcndigungsfrist gilt w\u00e4hrend der Probezeit?\n\nGefundener Kontext:\n&#91;Passage aus Dokument A]\n&#91;Passage aus Dokument B]\n\nAnweisung:\nBeantworte die Frage anhand des bereitgestellten Kontexts.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der urspr\u00fcngliche Prompt wird also um extern gefundenes Wissen <strong>erweitert<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Daher der Begriff:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Retrieval-Augmented Generation<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Generation wird durch Retrieval angereichert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Augmentation ist allerdings mehr als simples Copy-and-Paste.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein reales System muss entscheiden:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>welche Treffer \u00fcbernommen werden,<\/li>\n\n\n\n<li>in welcher Reihenfolge,<\/li>\n\n\n\n<li>wie viel Text \u00fcbernommen wird,<\/li>\n\n\n\n<li>wie Quellen markiert werden,<\/li>\n\n\n\n<li>wie viel Platz f\u00fcr die Antwort reserviert bleibt,<\/li>\n\n\n\n<li>wie Chatverlauf und Dokumentkontext kombiniert werden,<\/li>\n\n\n\n<li>was bei widerspr\u00fcchlichen Quellen passiert.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Fragen werden sp\u00e4ter in der Serie relevant.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">10. Generation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Erst jetzt kommt der Teil, den man normalerweise unmittelbar mit einem LLM verbindet:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Generation.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Sprachmodell erh\u00e4lt beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Systemanweisung\n+\nFrage\n+\nretrievten Kontext\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">und erzeugt daraus die Antwort.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Schematisch:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>             \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n              \u2502    Wissenskorpus   \u2502\n              \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                        \u2502\n                        \u2502 Retrieval\n                        \u25bc\nBenutzerfrage \u2500\u2500\u2192 relevante Passagen\n                        \u2502\n                        \u2502 Augmentation\n                        \u25bc\n                 Prompt + Kontext\n                        \u2502\n                        \u2502 Generation\n                        \u25bc\n                      LLM\n                        \u2502\n                        \u25bc\n                     Antwort\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist die elementare RAG-Pipeline.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alles, was sp\u00e4ter noch hinzukommt \u2013 Hybrid Search, Reranking, Query Rewrite, Cross-Encoder, Multi-Hop, GraphRAG oder Agentic RAG \u2013 erweitert letztlich diese Grundidee.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">11. Warum nicht einfach das ganze Dokument in den Prompt?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei kleinen Dokumenten kann genau das funktionieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man gibt das komplette Dokument zusammen mit der Frage an das Modell.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei gr\u00f6sseren Wissensbest\u00e4nden entstehen jedoch Probleme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kontextgr\u00f6sse<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tausende Dokumente passen nicht sinnvoll in einen einzelnen Request.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kosten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mehr Input-Tokens bedeuten mehr Rechenaufwand und bei kommerziellen APIs h\u00e4ufig h\u00f6here Kosten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Latenz<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sehr grosse Prompts ben\u00f6tigen mehr Verarbeitung.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Relevanz<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Modell ben\u00f6tigt f\u00fcr eine konkrete Frage h\u00e4ufig nur einen kleinen Ausschnitt des gesamten Korpus.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rauschen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mehr Kontext bedeutet nicht automatisch bessere Antworten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Irrelevante Informationen k\u00f6nnen die eigentliche relevante Passage \u00fcberlagern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lost in the Middle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bei sehr langen Kontexten k\u00f6nnen relevante Informationen je nach Modell und Promptposition unterschiedlich stark ber\u00fccksichtigt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG versucht deshalb, vor der Generation eine Auswahl zu treffen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">12. RAG ist keine Datenbank<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eine weitere wichtige Abgrenzung:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>RAG selbst ist keine Datenbank.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG bezeichnet ein Verfahren beziehungsweise ein Muster.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein RAG-System kann unterschiedliche Speicher verwenden:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>klassische Suchindizes,<\/li>\n\n\n\n<li>Vektordatenbanken,<\/li>\n\n\n\n<li>relationale Datenbanken,<\/li>\n\n\n\n<li>Graphdatenbanken,<\/li>\n\n\n\n<li>Dokumentenspeicher,<\/li>\n\n\n\n<li>Kombinationen davon.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Auch eine Vektordatenbank ist nicht gleichbedeutend mit RAG.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie kann Bestandteil eines RAG-Systems sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG beschreibt jedoch die gr\u00f6ssere Kette:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wissen\n  \u2193\nSuche\n  \u2193\nKontext\n  \u2193\nGenerierung\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\">13. RAG ist nicht gleich Vektorsuche<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist eine der h\u00e4ufigsten begrifflichen Verk\u00fcrzungen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oft wird RAG ungef\u00e4hr so erkl\u00e4rt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokumente\n   \u2193\nEmbeddings\n   \u2193\nVector Database\n   \u2193\nLLM\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das beschreibt eine verbreitete Umsetzung, aber nicht die Definition von RAG.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Retrieval kann beispielsweise erfolgen \u00fcber:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>klassische Keyword-Suche,<\/li>\n\n\n\n<li>BM25,<\/li>\n\n\n\n<li>Dense Vector Search,<\/li>\n\n\n\n<li>Sparse Retrieval,<\/li>\n\n\n\n<li>Hybrid Search,<\/li>\n\n\n\n<li>strukturierte Datenbankabfragen,<\/li>\n\n\n\n<li>Graphabfragen,<\/li>\n\n\n\n<li>Kombinationen mehrerer Verfahren.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ein RAG-System ben\u00f6tigt also nicht definitionsgem\u00e4ss eine Vektordatenbank.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es ben\u00f6tigt <strong>Retrieval<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wie dieses Retrieval realisiert wird, ist eine separate Frage.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">14. Was ist ein Korpus?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die Gesamtheit des durchsuchbaren Wissens bezeichnet man h\u00e4ufig als <strong>Korpus<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Korpus\n\u251c\u2500\u2500 Personalreglement.pdf\n\u251c\u2500\u2500 Ferienrichtlinie.docx\n\u251c\u2500\u2500 Spesenreglement.pdf\n\u251c\u2500\u2500 IT-Handbuch.md\n\u2514\u2500\u2500 Sicherheitsrichtlinie.html\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Korpus kann homogen sein, muss es aber nicht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In realen Systemen treffen h\u00e4ufig unterschiedliche Formate, Schreibstile, Sprachen und Qualit\u00e4tsstufen aufeinander.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist relevant, weil Retrieval nicht auf abstraktem \u201eWissen\u201c arbeitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es arbeitet auf konkreten Daten, die zun\u00e4chst verarbeitet 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\">15. Vom Dokument zum durchsuchbaren Wissen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bevor gesucht werden kann, m\u00fcssen Dokumente normalerweise vorbereitet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Vorgang wird h\u00e4ufig als <strong>Ingestion<\/strong> bezeichnet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sehr vereinfacht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokumente\n    \u2193\nParsing\n    \u2193\nText\n    \u2193\nChunking\n    \u2193\nindexierbare Einheiten\n    \u2193\nIndex\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je nach Retrieval-Verfahren k\u00f6nnen zus\u00e4tzlich Embeddings oder andere Repr\u00e4sentationen erzeugt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wichtig ist zun\u00e4chst nur die Trennung:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ingestion bereitet Wissen f\u00fcr die Suche vor.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Retrieval durchsucht dieses vorbereitete Wissen.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">16. Ingestion und Query sind zwei verschiedene Vorg\u00e4nge<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Trennung ist fundamental.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ingestion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Ingestion geschieht typischerweise dann, wenn Wissen aufgenommen oder ver\u00e4ndert wird.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PDF\n \u2193\nText extrahieren\n \u2193\nstrukturieren\n \u2193\nzerlegen\n \u2193\nrepr\u00e4sentieren\n \u2193\nindexieren\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Query<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Query-Pfad beginnt mit einer konkreten Benutzerfrage.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Frage\n \u2193\nSuchanfrage\n \u2193\nRetrieval\n \u2193\nrelevanter Kontext\n \u2193\nLLM\n \u2193\nAntwort\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Zusammen:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>             INGESTION\n\nDokumente\n   \u2193\nParsing\n   \u2193\nChunking\n   \u2193\nIndexierung\n   \u2193\nWissensindex\n      \u25b2\n      \u2502\n      \u2502 Retrieval\n      \u2502\nBenutzerfrage\n      \u2193\nSuchanfrage\n      \u2193\nrelevanter Kontext\n      \u2193\nLLM\n      \u2193\nAntwort\n\n                QUERY\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Unterscheidung wird in sp\u00e4teren Teilen entscheidend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein anderes Chunking-Verfahren betrifft beispielsweise die Ingestion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine andere Retrieval-Strategie betrifft zun\u00e4chst den Query-Pfad.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">17. Was ist ein Chunk?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein <strong>Chunk<\/strong> ist eine kleinere Texteinheit, in die ein gr\u00f6sseres Dokument f\u00fcr Verarbeitung und Retrieval zerlegt wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen, ein Handbuch enth\u00e4lt 300 Seiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die 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 lange dauert die Probezeit?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">m\u00f6chte man normalerweise nicht alle 300 Seiten an das Modell \u00fcbergeben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stattdessen wird das Dokument in kleinere Einheiten zerlegt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokument\n\u2502\n\u251c\u2500\u2500 Chunk 1\n\u251c\u2500\u2500 Chunk 2\n\u251c\u2500\u2500 Chunk 3\n\u251c\u2500\u2500 Chunk 4\n\u251c\u2500\u2500 ...\n\u2514\u2500\u2500 Chunk 217\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Retrieval sucht anschliessend nach relevanten Chunks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking ist deshalb nicht bloss eine technische Vorverarbeitung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es beeinflusst direkt, <strong>welche Information \u00fcberhaupt als Treffer gefunden werden kann<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ist ein Chunk zu klein, kann notwendiger Zusammenhang verloren gehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ist er zu gross, enth\u00e4lt er m\u00f6glicherweise viel irrelevanten Text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chunking erh\u00e4lt deshalb einen eigenen Teil dieser Serie.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">18. Retrieval arbeitet h\u00e4ufig auf Chunks, nicht auf ganzen Dokumenten<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Das f\u00fchrt zu einer wichtigen begrifflichen Unterscheidung:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Dokument<\/strong> und <strong>Chunk<\/strong> sind nicht dasselbe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Dokument kann beispielsweise sein:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Personalreglement.pdf\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Daraus entstehen vielleicht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk 1: Geltungsbereich\nChunk 2: Arbeitszeit\nChunk 3: Probezeit\nChunk 4: Ferien\nChunk 5: K\u00fcndigung\n...\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Suche kann Chunk 3 und Chunk 5 finden, obwohl beide aus demselben Dokument stammen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit l\u00e4sst sich wesentlich gezielter Kontext bereitstellen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Allerdings entsteht dadurch ein neues Problem:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein einzelner Chunk besitzt m\u00f6glicherweise nicht genug Kontext, um vollst\u00e4ndig verstanden zu werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Genau daraus entstanden verschiedene fortgeschrittene Chunking- und Retrieval-Verfahren wie Parent-Child Retrieval oder 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\">19. Grounding<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein zentraler Begriff bei RAG ist <strong>Grounding<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Antwort ist \u201egrounded\u201c, wenn ihre Aussagen auf den bereitgestellten Quellen beziehungsweise dem bereitgestellten Kontext beruhen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vereinfacht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Quelle:\nW\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage.\n\nAntwort:\nW\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Aussage l\u00e4sst sich direkt aus der Quelle ableiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Problematischer w\u00e4re:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Quelle:\nW\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage.\n\nAntwort:\nW\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage.\nDiese Regelung gilt in allen Schweizer Unternehmen.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der erste Satz ist durch die Quelle gedeckt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der zweite m\u00f6glicherweise nicht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Antwort enth\u00e4lt also gleichzeitig grounded und nicht grounded Aussagen.<\/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\">Eine Antwort ist nicht automatisch grounded, nur weil irgendwo eine richtige Quelle angezeigt wird.<\/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\">20. Grounding und Korrektheit sind nicht dasselbe<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Unterscheidung ist wichtig.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Aussage kann <strong>grounded, aber falsch<\/strong> sein, wenn die zugrunde liegende Quelle falsch oder veraltet ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Aussage kann <strong>korrekt, aber nicht grounded<\/strong> sein, wenn das Modell sie aus seinem Allgemeinwissen erg\u00e4nzt, obwohl sie nicht in den bereitgestellten Quellen steht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Quelle enth\u00e4lt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Bern ist Sitz der Bundesbeh\u00f6rden.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Modell erg\u00e4nzt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Bern hat rund 145'000 Einwohner.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die zweite Aussage k\u00f6nnte faktisch korrekt sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie ist aber nicht durch die gegebene Quelle belegt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In einem streng quellengebundenen System w\u00e4re sie deshalb unerw\u00fcnscht.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">21. Faithfulness<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eng mit Grounding verbunden ist <strong>Faithfulness<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Begriff beschreibt vereinfacht, wie treu eine generierte Antwort gegen\u00fcber dem bereitgestellten Kontext ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Antwort mit hoher Faithfulness behauptet nichts Wesentliches, das sich nicht aus den Quellen ableiten l\u00e4sst.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist eine andere Dimension als die reine Antwortqualit\u00e4t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man kann beispielsweise eine sprachlich hervorragende, hilfreiche und sogar faktisch richtige Antwort erzeugen, die dennoch nicht faithful gegen\u00fcber dem bereitgestellten Kontext ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr RAG-Evaluation m\u00fcssen solche Dimensionen deshalb getrennt betrachtet werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">22. Citations und Quellenangaben<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Viele RAG-Systeme geben zus\u00e4tzlich <strong>Citations<\/strong> beziehungsweise Quellenreferenzen aus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>W\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist sieben Tage. &#91;1]\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">mit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;1] Personalreglement, Abschnitt 3.2, Seite 7\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Quellenangabe verbessert die Nachvollziehbarkeit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie l\u00f6st Grounding aber nicht automatisch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das System muss sicherstellen, dass:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>die Quelle tats\u00e4chlich existiert,<\/li>\n\n\n\n<li>die zitierte Passage die Aussage tats\u00e4chlich unterst\u00fctzt,<\/li>\n\n\n\n<li>das Modell keine Quellenreferenzen erfindet,<\/li>\n\n\n\n<li>die Quelle zur konkreten Aussage geh\u00f6rt.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb sind <strong>Citation<\/strong> und <strong>Grounding<\/strong> nicht synonym.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Citation ist eine Referenz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Grounding beschreibt die inhaltliche Bindung einer Aussage an die Quelle.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">23. Answerability<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein weiterer wichtiger Begriff ist <strong>Answerability<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die zentrale Frage 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\">Enth\u00e4lt der gefundene Kontext \u00fcberhaupt gen\u00fcgend Informationen, um die Benutzerfrage zuverl\u00e4ssig zu beantworten?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist eine andere Frage als:<\/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\">Haben wir irgendwelche Treffer gefunden?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Suchsystem kann f\u00fcnf Chunks zur\u00fcckgeben, obwohl keiner davon die Antwort enth\u00e4lt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Frage:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wie hoch ist die K\u00fcndigungsfrist w\u00e4hrend der Probezeit?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Gefundene Chunks behandeln:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Definition der Probezeit\nFerien w\u00e4hrend der Probezeit\nLohnfortzahlung w\u00e4hrend der Probezeit\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Retrieval hat thematisch verwandte Informationen gefunden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die konkrete K\u00fcndigungsfrist fehlt aber.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein robustes RAG-System sollte deshalb nicht aus<\/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\">\u201eIch habe Treffer.\u201c<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">ableiten:<\/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\">\u201eAlso kann ich antworten.\u201c<\/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\">24. Warum \u201ekein Treffer\u201c ein valides Ergebnis ist<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei klassischen Chatbots besteht eine starke Versuchung, immer eine Antwort zu erzeugen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei wissensgebundenen Systemen ist das gef\u00e4hrlich.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn die Quellen keine Antwort hergeben, kann:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dazu enthalten die verf\u00fcgbaren Quellen keine ausreichenden Informationen.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">die qualitativ bessere Antwort sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das f\u00fchrt zu einem grundlegenden Prinzip:<\/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>Nicht zu antworten ist Bestandteil eines guten RAG-Systems.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Retrieval dient nicht nur dazu, Informationen zu finden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es muss auch m\u00f6glich sein festzustellen, dass keine ausreichend zuverl\u00e4ssigen Informationen gefunden wurden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">25. RAG und Aktualit\u00e4t<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Einer der grossen Vorteile von RAG besteht darin, dass Wissen ausserhalb des Sprachmodells gehalten werden kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen, eine Richtlinie \u00e4ndert sich:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Version 2025:\nK\u00fcndigungsfrist = 7 Tage\n\nVersion 2026:\nK\u00fcndigungsfrist = 14 Tage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einem RAG-System muss deshalb nicht zwingend ein neues Sprachmodell trainiert werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stattdessen wird der Wissensbestand aktualisiert und neu indexiert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das trennt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sprachf\u00e4higkeit\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">von:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Fachwissen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Sprachmodell liefert Sprachverst\u00e4ndnis und Generierung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Wissensbestand liefert die aktuellen Informationen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Trennung ist einer der wesentlichen Gr\u00fcnde, weshalb RAG f\u00fcr Unternehmenswissen interessant ist.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">26. RAG versus Fine-Tuning<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">RAG und <strong>Fine-Tuning<\/strong> werden h\u00e4ufig als konkurrierende L\u00f6sungen betrachtet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist zu einfach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beim Fine-Tuning werden Modellparameter durch weiteres Training ver\u00e4ndert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei RAG bleibt das Wissen ausserhalb der Modellgewichte und wird zur Laufzeit abgerufen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vereinfacht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Fine-Tuning\n\nDaten\n \u2193\nTraining\n \u2193\nModellgewichte\n \u2193\nAntwort\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">gegen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RAG\n\nDaten\n \u2193\nIndex\n \u2193\nRetrieval\n \u2193\nKontext\n \u2193\nModell\n \u2193\nAntwort\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Fine-Tuning kann sinnvoll sein f\u00fcr:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bestimmtes Antwortverhalten,<\/li>\n\n\n\n<li>Formatierung,<\/li>\n\n\n\n<li>Stil,<\/li>\n\n\n\n<li>spezialisierte Aufgaben,<\/li>\n\n\n\n<li>bestimmte Muster.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">RAG eignet sich besonders f\u00fcr Wissen, das:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>h\u00e4ufig aktualisiert wird,<\/li>\n\n\n\n<li>umfangreich ist,<\/li>\n\n\n\n<li>quellengebunden sein soll,<\/li>\n\n\n\n<li>organisationsspezifisch ist.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Fine-Tuning und RAG k\u00f6nnen zudem kombiniert werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie l\u00f6sen nicht exakt dasselbe Problem.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">27. RAG versus Tool Calling<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Auch <strong>Tool Calling<\/strong> ist nicht dasselbe wie RAG.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beim Tool Calling kann ein Modell eine Funktion oder ein externes Werkzeug aufrufen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>get_current_weather(\"Olten\")\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oder:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>calculate_mortgage(...)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Tool liefert ein Ergebnis zur\u00fcck, das das Modell weiterverarbeitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG dagegen besch\u00e4ftigt sich prim\u00e4r mit dem Abruf relevanter Informationen f\u00fcr die Generierung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beide Konzepte k\u00f6nnen kombiniert werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Agent k\u00f6nnte beispielsweise:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>eine Wissenssuche ausf\u00fchren,<\/li>\n\n\n\n<li>eine Datenbank abfragen,<\/li>\n\n\n\n<li>eine Berechnung durchf\u00fchren,<\/li>\n\n\n\n<li>daraus eine Antwort erstellen.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Dann ist RAG ein Bestandteil eines gr\u00f6sseren Systems.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">28. RAG versus Agent<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein <strong>Agent<\/strong> bezeichnet \u00fcblicherweise ein System, bei dem ein Modell Entscheidungen \u00fcber weitere Aktionen oder Werkzeuge treffen kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Frage\n \u2193\nLLM entscheidet\n \u251c\u2500\u2500 Dokumente durchsuchen\n \u251c\u2500\u2500 Websuche\n \u251c\u2500\u2500 Datenbank abfragen\n \u251c\u2500\u2500 Berechnung durchf\u00fchren\n \u2514\u2500\u2500 erneut suchen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein klassisches RAG-System kann dagegen vollst\u00e4ndig deterministisch orchestriert sein:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Frage\n \u2193\nRetrieval\n \u2193\nKontext\n \u2193\nGeneration\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">RAG ist deshalb nicht automatisch agentisch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Umgekehrt kann ein Agent RAG als Werkzeug verwenden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">29. Naive RAG<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die einfachste Form wird h\u00e4ufig als <strong>Naive RAG<\/strong> bezeichnet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typischer Ablauf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokumente\n \u2193\nChunking\n \u2193\nEmbeddings\n \u2193\nVector Store\n\nFrage\n \u2193\nQuery Embedding\n \u2193\nTop-k \u00e4hnliche Chunks\n \u2193\nPrompt\n \u2193\nLLM\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dieses Muster ist hervorragend, um RAG zu lernen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr komplexe Wissensbest\u00e4nde treten jedoch schnell Grenzen auf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>falsche Chunks werden gefunden,<\/li>\n\n\n\n<li>exakte Begriffe werden \u00fcbersehen,<\/li>\n\n\n\n<li>\u00e4hnliche Dokumente werden verwechselt,<\/li>\n\n\n\n<li>notwendiger Kontext liegt \u00fcber mehrere Chunks verteilt,<\/li>\n\n\n\n<li>die Frage ist ohne Chatverlauf unverst\u00e4ndlich,<\/li>\n\n\n\n<li>zu viele irrelevante Treffer gelangen in den Prompt.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Daraus entstanden fortgeschrittenere RAG-Verfahren.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">30. Advanced und Modular RAG<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Unter Begriffen wie <strong>Advanced RAG<\/strong> oder <strong>Modular RAG<\/strong> werden Erweiterungen der einfachen Pipeline zusammengefasst.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Frage\n \u2193\nQuery Rewrite\n \u2193\nHybrid Retrieval\n \u2193\nReranking\n \u2193\nContext Selection\n \u2193\nGeneration\n \u2193\nGrounding-Pr\u00fcfung\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Andere Systeme f\u00fchren mehrere Suchschritte durch oder lassen ein Modell entscheiden, welche Suchstrategie ben\u00f6tigt wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wichtig ist hier zun\u00e4chst nur:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>RAG ist kein einzelner Algorithmus.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es ist ein Muster, innerhalb dessen sehr unterschiedliche Retrieval- und Generierungsverfahren kombiniert werden k\u00f6nnen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">31. Die eigentliche Schwierigkeit liegt vor der Antwort<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einem ersten RAG-Prototyp konzentriert man sich h\u00e4ufig auf das Antwortmodell.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In produktiven Szenarien verschiebt sich die Aufmerksamkeit schnell.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die schwierigen Fragen lauten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wurde das Dokument korrekt verarbeitet?\n\nWurde die relevante Information sinnvoll gechunkt?\n\nKann die Suchmethode die Passage finden?\n\nWurde die Benutzerfrage richtig interpretiert?\n\nIst der richtige Treffer unter den Top-k?\n\nWurde der beste Treffer nach oben gerankt?\n\nIst gen\u00fcgend Kontext vorhanden?\n\nEnth\u00e4lt der Kontext widerspr\u00fcchliche Informationen?\n\nDarf anhand dieses Kontexts \u00fcberhaupt geantwortet werden?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Erst danach kommt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Wie formuliert das LLM die Antwort?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das f\u00fchrt zu einer der wichtigsten mentalen Verschiebungen beim Verst\u00e4ndnis von RAG:<\/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>RAG ist mindestens ebenso sehr ein Information-Retrieval-Problem wie ein LLM-Problem.<\/strong><\/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\">32. Eine vollst\u00e4ndige mentale Landkarte<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ein modernes RAG-System l\u00e4sst sich zun\u00e4chst auf diese Landkarte reduzieren:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>                   WISSEN\n                      \u2502\n                      \u25bc\n                 Dokumente\n                      \u2502\n                      \u25bc\n                   Parsing\n                      \u2502\n                      \u25bc\n                  Chunking\n                      \u2502\n                      \u25bc\n                 Indexierung\n                      \u2502\n                      \u25bc\n                    Index\n                      \u25b2\n                      \u2502\n                 Retrieval\n                      \u2502\n                      \u2502\nBenutzerfrage \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n      \u2502\n      \u25bc\nQuery Processing\n      \u2502\n      \u25bc\nRetrieval\n      \u2502\n      \u25bc\nReranking\n      \u2502\n      \u25bc\nContext Selection\n      \u2502\n      \u25bc\nAugmentation\n      \u2502\n      \u25bc\nLLM Generation\n      \u2502\n      \u25bc\nGrounding \/ Citations\n      \u2502\n      \u25bc\nAntwort\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht jedes RAG-System besitzt jeden dieser Schritte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Landkarte zeigt aber, wo die sp\u00e4teren Begriffe einzuordnen sind.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">33. Die drei Qualit\u00e4tsprobleme eines RAG-Systems<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr das weitere Verst\u00e4ndnis hilft eine grobe Dreiteilung.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 1: Retrieval<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Haben wir die richtige Information gefunden?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn nicht, liegt das Problem beispielsweise bei:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Parsing,<\/li>\n\n\n\n<li>Chunking,<\/li>\n\n\n\n<li>Indexierung,<\/li>\n\n\n\n<li>Query-Verarbeitung,<\/li>\n\n\n\n<li>Retrieval,<\/li>\n\n\n\n<li>Ranking.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 2: Context<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Haben wir dem Modell die richtigen Informationen sinnvoll bereitgestellt?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Probleme k\u00f6nnen entstehen durch:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>zu viele Chunks,<\/li>\n\n\n\n<li>zu wenig Kontext,<\/li>\n\n\n\n<li>falsche Reihenfolge,<\/li>\n\n\n\n<li>abgeschnittene Passagen,<\/li>\n\n\n\n<li>Tokenlimits,<\/li>\n\n\n\n<li>widerspr\u00fcchliche Quellen.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 3: Generation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Hat das Modell aus dem vorhandenen Kontext die richtige Antwort erzeugt?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hier entstehen beispielsweise:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Halluzinationen,<\/li>\n\n\n\n<li>falsche Schlussfolgerungen,<\/li>\n\n\n\n<li>unbelegte Erg\u00e4nzungen,<\/li>\n\n\n\n<li>falsche Zahlen,<\/li>\n\n\n\n<li>fehlerhafte Quellenreferenzen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Ebenen sollte man beim Debugging niemals vermischen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine falsche Antwort bedeutet nicht automatisch, dass das LLM schlecht ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vielleicht hat es schlicht den falschen Kontext erhalten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">34. Die wichtigste Debugging-Frage<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn ein RAG-System falsch antwortet, lautet die erste Frage 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\">Warum hat das Modell das gesagt?<\/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\"><strong>Welchen Kontext hat das Modell tats\u00e4chlich erhalten?<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Danach l\u00e4sst sich der Fehler eingrenzen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Richtige Quelle nicht gefunden\n        \u2193\nRetrieval-Problem\n\nRichtige Quelle gefunden, aber nicht ausgew\u00e4hlt\n        \u2193\nRanking-\/Context-Problem\n\nRichtiger Kontext im Prompt, falsche Aussage\n        \u2193\nGeneration-\/Grounding-Problem\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Trennung spart enorm viel Zeit.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">35. RAG als Suchsystem mit Sprachinterface<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Eine n\u00fctzliche mentale Vereinfachung 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 RAG-System ist ein Suchsystem, dessen Suchergebnisse von einem Sprachmodell verarbeitet werden.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist absichtlich etwas reduktionistisch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es verhindert aber einen h\u00e4ufigen Denkfehler:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das LLM ist nicht die Quelle des externen Wissens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Wissensbestand ist die Quelle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Retrieval entscheidet, welcher Teil dieses Wissens verf\u00fcgbar wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das LLM interpretiert und formuliert daraus eine Antwort.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit ergibt sich:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Korpus\n  \u2193\nRetrieval\n  \u2193\nEvidenz\n  \u2193\nLLM\n  \u2193\nsprachliche Antwort\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der Begriff <strong>Evidenz<\/strong> ist hier besonders hilfreich.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die gefundenen Passagen sind nicht einfach \u201emehr Prompt\u201c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie sind die Belege, auf deren Grundlage das Modell antworten soll.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">36. Ein vollst\u00e4ndiges Beispiel<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen, ein Wissensbestand enth\u00e4lt 2&#8217;000 interne Dokumente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Benutzer fragt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Welche K\u00fcndigungsfrist gilt w\u00e4hrend der Probezeit?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein RAG-System k\u00f6nnte konzeptionell folgende Schritte durchf\u00fchren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 1: Frage entgegennehmen<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Welche K\u00fcndigungsfrist gilt w\u00e4hrend der Probezeit?\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 2: Retrieval<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Das System sucht relevante Passagen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Treffer A:\nW\u00e4hrend der Probezeit kann das Arbeitsverh\u00e4ltnis\nmit einer Frist von sieben Kalendertagen gek\u00fcndigt werden.\n\nTreffer B:\nDie Probezeit betr\u00e4gt drei Monate.\n\nTreffer C:\nNach Ablauf der Probezeit gelten die ordentlichen\nK\u00fcndigungsfristen.\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 3: Auswahl<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Treffer A besitzt die h\u00f6chste direkte Relevanz.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 4: Augmentation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Das Modell erh\u00e4lt beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Beantworte die Frage ausschliesslich anhand\nder bereitgestellten Quellen.\n\nQuelle 1:\nW\u00e4hrend der Probezeit kann das Arbeitsverh\u00e4ltnis\nmit einer Frist von sieben Kalendertagen gek\u00fcndigt werden.\n\nFrage:\nWelche K\u00fcndigungsfrist gilt w\u00e4hrend der Probezeit?\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 5: Generation<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>W\u00e4hrend der Probezeit betr\u00e4gt die K\u00fcndigungsfrist\nsieben Kalendertage. &#91;1]\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 6: Grounding<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Aussage l\u00e4sst sich direkt aus Quelle 1 ableiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist der Idealzustand.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">37. Was alles schiefgehen kann<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Dasselbe Beispiel zeigt die verschiedenen Fehlerklassen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Parsing-Fehler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die relevante PDF-Seite wurde nicht korrekt extrahiert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ergebnis:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Information existiert f\u00fcr das Retrieval faktisch nicht.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Chunking-Fehler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Satz wurde ung\u00fcnstig getrennt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Chunk A:\nW\u00e4hrend der Probezeit kann das Arbeitsverh\u00e4ltnis\n\nChunk B:\nmit einer Frist von sieben Kalendertagen gek\u00fcndigt werden.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Bedeutung wurde auseinandergerissen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Retrieval-Fehler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ein semantisch \u00e4hnlicher Absatz \u00fcber die Dauer der Probezeit wird gefunden, der K\u00fcndigungsabsatz aber nicht.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ranking-Fehler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der richtige Treffer existiert, landet aber auf Rang 17, w\u00e4hrend nur die Top 5 verwendet werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Context-Fehler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zu viele irrelevante Treffer verdr\u00e4ngen die relevante Passage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Generation-Fehler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der korrekte Kontext sagt sieben Tage, das Modell antwortet dennoch mit 14 Tagen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Grounding-Fehler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Das Modell erg\u00e4nzt weitere Aussagen, die in keiner Quelle stehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Beispiel zeigt, weshalb \u201eRAG funktioniert nicht\u201c als Diagnose praktisch wertlos ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man muss wissen, <strong>welche Stufe nicht funktioniert<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">38. Die Begriffe dieses Teils<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die wichtigsten Begriffe lassen sich jetzt sauber einordnen.<\/p>\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>LLM<\/strong><\/td><td>Sprachmodell zur Verarbeitung und Generierung von Sprache<\/td><\/tr><tr><td><strong>Parametrisches Wissen<\/strong><\/td><td>Wissen, das im Modell beziehungsweise seinen Gewichten repr\u00e4sentiert ist<\/td><\/tr><tr><td><strong>Kontext<\/strong><\/td><td>Informationen, die dem Modell im aktuellen Request bereitgestellt werden<\/td><\/tr><tr><td><strong>Token<\/strong><\/td><td>Verarbeitungseinheit eines Sprachmodells<\/td><\/tr><tr><td><strong>Kontextfenster<\/strong><\/td><td>Maximale Menge an Kontext, die ein Modell in einem Request verarbeiten kann<\/td><\/tr><tr><td><strong>RAG<\/strong><\/td><td>Kombination aus Retrieval, Augmentation und Generation<\/td><\/tr><tr><td><strong>Retrieval<\/strong><\/td><td>Auffinden relevanter Informationen<\/td><\/tr><tr><td><strong>Information Retrieval<\/strong><\/td><td>Fachgebiet hinter Suche und Ranking<\/td><\/tr><tr><td><strong>Augmentation<\/strong><\/td><td>Erg\u00e4nzung des Modellkontexts um gefundene Informationen<\/td><\/tr><tr><td><strong>Generation<\/strong><\/td><td>Erzeugung der Antwort durch das Sprachmodell<\/td><\/tr><tr><td><strong>Korpus<\/strong><\/td><td>Gesamtheit des durchsuchbaren Wissens<\/td><\/tr><tr><td><strong>Ingestion<\/strong><\/td><td>Aufbereitung und Indexierung des Wissens<\/td><\/tr><tr><td><strong>Query<\/strong><\/td><td>Such- beziehungsweise Benutzeranfrage<\/td><\/tr><tr><td><strong>Dokument<\/strong><\/td><td>Gr\u00f6ssere Wissenseinheit, etwa PDF oder Webseite<\/td><\/tr><tr><td><strong>Chunk<\/strong><\/td><td>Kleinere indexierbare Einheit eines Dokuments<\/td><\/tr><tr><td><strong>Index<\/strong><\/td><td>Struktur, die effizientes Retrieval erm\u00f6glicht<\/td><\/tr><tr><td><strong>Halluzination<\/strong><\/td><td>Plausible, aber unbelegte oder falsche Modellgenerierung<\/td><\/tr><tr><td><strong>Grounding<\/strong><\/td><td>Bindung einer Aussage an bereitgestellte Evidenz<\/td><\/tr><tr><td><strong>Faithfulness<\/strong><\/td><td>Treue der Antwort gegen\u00fcber dem bereitgestellten Kontext<\/td><\/tr><tr><td><strong>Citation<\/strong><\/td><td>Referenz auf eine Quelle<\/td><\/tr><tr><td><strong>Answerability<\/strong><\/td><td>Frage, ob der vorhandene Kontext eine belastbare Antwort erm\u00f6glicht<\/td><\/tr><tr><td><strong>Naive RAG<\/strong><\/td><td>Einfache Retrieve-and-Generate-Pipeline<\/td><\/tr><tr><td><strong>Advanced RAG<\/strong><\/td><td>RAG mit zus\u00e4tzlichen Retrieval-, Ranking- und Pr\u00fcfverfahren<\/td><\/tr><tr><td><strong>Fine-Tuning<\/strong><\/td><td>Anpassung der Modellgewichte durch weiteres Training<\/td><\/tr><tr><td><strong>Tool Calling<\/strong><\/td><td>Aufruf externer Funktionen oder Werkzeuge durch ein Modell<\/td><\/tr><tr><td><strong>Agent<\/strong><\/td><td>System, das Aktionen beziehungsweise Werkzeuge dynamisch ausw\u00e4hlen kann<\/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\">39. Was man nach Teil 1 verstanden haben sollte<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">RAG ist kein Synonym f\u00fcr eine Vektordatenbank.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG ist kein Synonym f\u00fcr Embeddings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG ist kein Fine-Tuning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG ist nicht automatisch ein Agent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG garantiert keine korrekten Antworten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RAG ist ein Muster, bei dem externe Informationen <strong>retrieved<\/strong>, dem Modell als Kontext <strong>bereitgestellt<\/strong> und anschliessend f\u00fcr die <strong>Generation<\/strong> verwendet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die elementare Pipeline lautet:<\/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\">F\u00fcr reale Wissensbest\u00e4nde kommt davor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dokumente\n    \u2193\nIngestion\n    \u2193\nIndex\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit ergibt sich das Gesamtbild:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>            INGESTION\n\nDokumente\n    \u2193\nParsing\n    \u2193\nChunking\n    \u2193\nIndexierung\n    \u2193\n   Index\n    \u2502\n    \u2502\n    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n                           \u2502\n                           \u25bc\n                         QUERY\n\n                    Benutzerfrage\n                           \u2193\n                       Retrieval\n                           \u2193\n                    relevante Evidenz\n                           \u2193\n                     Augmentation\n                           \u2193\n                      Generation\n                           \u2193\n                       Grounding\n                           \u2193\n                        Antwort\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wer dieses Modell verstanden hat, besitzt das Grundger\u00fcst f\u00fcr praktisch alle weiteren RAG-Begriffe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Denn die sp\u00e4teren Techniken beantworten im Wesentlichen immer eine dieser Fragen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wie bereiten wir Wissen besser auf?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wie finden wir bessere Informationen?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wie w\u00e4hlen wir aus den Treffern den richtigen Kontext?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wie verhindern wir, dass das Modell \u00fcber diesen Kontext hinausgeht?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wie messen wir, ob das Ganze tats\u00e4chlich funktioniert?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Genau dort beginnt die technische Tiefe.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\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, Grounding und die grundlegende RAG-Pipeline.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 2 \u2013 Dokumente und Chunking<\/strong><br>Parsing, OCR, Dokumentstrukturen, Chunks, Overlap, Chunk-Gr\u00f6sse und die unterschiedlichen Chunking-Strategien.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 3 \u2013 Embeddings und Vektorsuche<\/strong><br>Dense Vectors, semantische \u00c4hnlichkeit, Cosine Similarity, ANN, HNSW und Vector Stores.<\/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 Retrieval, Dense Retrieval, Hybrid Search und Reciprocal Rank Fusion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 5 \u2013 Reranking und Retrieval-Strategien<\/strong><br>Top-k, Bi-Encoder, Cross-Encoder, MMR, Query Rewrite, Multi-Query, HyDE und weitere Retrieval-Verfahren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 6 \u2013 Kontext, Grounding und Antworten<\/strong><br>Kontextfenster, Token-Budget, Lost in the Middle, Answerability, Faithfulness, Citations und Grounding.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teil 7 \u2013 Advanced RAG<\/strong><br>Naive RAG, Advanced und 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 sowie RAG im Verh\u00e4ltnis zu Fine-Tuning, Tool Calling und Agenten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Retrieval-Augmented Generation, kurz RAG, geh\u00f6rt inzwischen zu den zentralen Konzepten beim Einsatz von Large Language Models mit eigenem Wissen. Die Grundidee klingt zun\u00e4chst erstaunlich einfach: Bevor ein Sprachmodell eine Frage beantwortet, werden relevante Informationen gesucht und dem Modell als Kontext mitgegeben. Damit ist RAG im Kern bereits beschrieben. Die eigentliche Komplexit\u00e4t beginnt jedoch unmittelbar danach. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":359,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41,61],"tags":[192,193,73,194],"class_list":["post-342","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cost-aware-ai-systems","category-retrieval-augmented-generation","tag-rag","tag-rag-part-1","tag-reference","tag-series"],"_links":{"self":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts\/342","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=342"}],"version-history":[{"count":1,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts\/342\/revisions"}],"predecessor-version":[{"id":343,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts\/342\/revisions\/343"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/media\/359"}],"wp:attachment":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}