This blog post is also available in English
- Teil 1: Retrieval-Augmented Generation – Wenn Weltwissen auf Spezialwissen trifft*
- Teil 2 (dieser Artikel)
Damit Retrieval-Augmented Generation umgesetzt werden kann, müssen wir zuallererst ausgewählte Daten vorbereiten und in ein Format bringen, und sie dann im richtigen Format dem LLM zur Verfügung stellen. Document Ingestion ist ein zentraler Schritt im Retrieval-Augmented Generation (RAG) Prozess, da er die Basis für den Zugriff auf externe Datenquellen bildet. Die Qualität der Antworten, die ein RAG-System liefern kann, hängt maßgeblich davon ab, wie sorgfältig der Schritt der Document Ingestion umgesetzt wird. In diesem Kapitel gehen wir darauf ein, wie Dokumente für die spätere Verwendung aufbereitet werden, welche Herausforderungen dabei zu bewältigen sind und warum das sogenannte „Chunking” eine entscheidende Rolle spielt.
Was ist Document Ingestion?
Document Ingestion ist der Prozess des Sammelns, Aufbereitens und Speicherns von Dokumenten, sodass sie für ein Retrieval-System verfügbar gemacht werden können. Diese Dokumente können sehr unterschiedliche Formate und Inhalte haben, darunter PDFs, Webseiten, Datenbankeinträge, technische Dokumentation, Forschungsberichte oder FAQs. Das Ziel der Document Ingestion ist es, diese verschiedenen Informationsquellen in eine strukturierte, durchsuchbare Form zu bringen, die das Retrieval-System effizient und präzise durchsuchen kann.
##ä Warum ist Document Ingestion so wichtig?
Die Qualität der Antworten, die ein RAG-System generiert, hängt zu einem erheblichen Teil davon ab, wie gut die zugrunde liegenden Dokumente aufbereitet und strukturiert sind. Eine schlecht durchgeführte Vorbereitung der Dokumente führt dazu, dass wichtige Informationen fehlen oder das Retrieval-System schwer relevante Inhalte findet. Daher muss die Document Ingestion sorgfältig geplant und an die Art und Struktur der vorhandenen Dokumente angepasst werden.
Beispiel: Um Fragen möglichst präzise zu beantworten, teilen wir ein Buch je nach Informationsverteilung unterschiedlich auf: Entweder seitenweise, wenn die relevanten Inhalte kompakt sind, oder kapitelweise, wenn sich Informationen über mehrere Seiten erstrecken.
Eine zentrale Herausforderung ist dabei die Heterogenität der Dokumente. Verschiedene Dokumentarten können unterschiedliche Strukturen und Inhalte aufweisen. Ein wissenschaftlicher Artikel ist beispielsweise in Absätze, Überschriften und Zitate gegliedert, während eine technische Dokumentation möglicherweise aus Tabellen, Code-Snippets und ausführlichen Schritt-für-Schritt-Anleitungen besteht. Eine pauschale Verarbeitung aller Dokumente nach dem gleichen Schema wäre daher nicht zielführend. Hier kommt das „Chunking” ins Spiel.
Chunking: Die richtige Granularität für den Erfolg
Der Begriff „Chunking” bezieht sich auf den Prozess, bei dem Dokumente in kleinere, inhaltlich kohärente Abschnitte (Chunks) zerlegt werden. Die Größe und Struktur dieser Chunks ist von entscheidender Bedeutung, da sie die Einheit bilden, auf die das Retrieval-System später zugreift. Die Herausforderung besteht darin, die optimale Granularität der Chunks zu finden, die dem Retrieval-System genug Kontext liefert, ohne zu große Informationsblöcke zu durchsuchen.
- Warum ist Chunking so wichtig? Die Genauigkeit der späteren Antworten hängt stark davon ab, wie relevant und präzise die Chunks sind, die bei einer Anfrage zurückgegeben werden. Zerlegen wir die Dokumente in zu große Chunks, besteht die Gefahr, dass irrelevante Informationen mitgeliefert werden. Das verwässert die generierte Antwort. Zerlegen wir sie in zu kleine Chunks, fehlt der nötige Kontext für eine präzise Antwort.
- Anpassung an die Dokumentstruktur: Ein entscheidender Aspekt beim Chunking ist die Anpassung an die Struktur des jeweiligen Dokumententyps. Bei einem wissenschaftlichen Artikel könnten Chunks beispielsweise einzelne Absätze oder thematische Sektionen sein. Bei einer technischen Dokumentation könnten Chunks die einzelnen Schritte einer Anleitung oder die Beschreibungen spezifischer Funktionen sein. Das bedeutet, dass es keinen universellen „One-size-fits-all”-Ansatz für das Chunking gibt. Stattdessen müssen wir es individuell an den Dokumententyp und die geplanten Anwendungsfälle anpassen.
- Dynamisches Chunking: In einigen Fällen kann es sinnvoll sein, ein dynamisches Chunking zu implementieren, bei dem die Granularität der Chunks je nach Kontext und Aufgabe variiert. Hierbei kann eine initiale Klassifikation der Dokumenttypen und -strukturen helfen, um die Document Ingestion automatisch zu steuern. Ein solches flexibles Vorgehen erhöht die Präzision des Retrievals, indem es den Kontext besser berücksichtigt. Beispielsweise könnte die gleiche Ingestion-Pipeline ein PDF in Seiten und HTML-Dateien in Absätze zerschneiden. Die Chunks aus verschiedenen Dokumenten werden also auf spezifische Weisen verarbeitet, damit sie im Produktivbetrieb bereit liegen.
Die richtige Strukturierung: Mehr als nur Text
Ein weiterer kritischer Aspekt der Document Ingestion ist die richtige Strukturierung der Inhalte. Nicht alle Informationen in einem Dokument sind gleich wichtig oder gleich relevant. Überschriften, Stichpunkte, Tabellen und Hervorhebungen liefern oft wichtige Hinweise auf den inhaltlichen Schwerpunkt eines Chunks. Daher ist es wichtig, während der Document Ingestion Metadaten und strukturelle Informationen zu extrahieren und zu erhalten.
- Metadaten: Informationen wie Dokumenttitel, Autor:in, Erstellungsdatum, Seitenangabe aus dem Originaldokument und Schlüsselwörter liefern dem Retrieval-System wertvolle Hinweise, welche Chunks für eine bestimmte Anfrage besonders relevant sind.
- Inhaltsindexierung: Neben der Zerlegung in Chunks ist die Indexierung der Inhalte ein essenzieller Schritt. Dabei wird jedem Chunk eine eindeutige Identifikation sowie relevante Schlagwörter und Kontexteigenschaften zugeordnet. Dieser Index ermöglicht dem Retrieval-System eine schnelle und zielgenaue Suche nach den relevantesten Inhalten. Beispielsweise eine URI, oder eine Seitenzahl.
Herausforderungen und Best Practices
- Heterogene Datenquellen: Eine der größten Herausforderungen ist der Umgang mit einer Vielzahl unterschiedlicher Dokumenttypen und -formate. PDF-Dateien, HTML-Seiten, CSV-Dateien, Datenbankeinträge – all diese Formate erfordern unterschiedliche Verarbeitungsstrategien. Daher sollten im Document-Ingestion-Prozess geeignete Konvertierungstools und Parser zum Einsatz kommen, die die Daten in eine einheitliche, durchsuchbare Form bringen, oder passende Datenbanken verwendet werden, um die verschiedenen Formate bestmöglich durchsuchbar zu gestalten.
- Qualitätskontrolle: Da die Qualität der Chunks direkt die Qualität der generierten Antworten beeinflusst, ist eine regelmäßige Überprüfung der Document Ingestion unerlässlich. Es ist empfehlenswert, einen automatisierten Prozess zur Validierung und Qualitätskontrolle einzurichten, der sicherstellt, dass die Document Ingestion konsistent und korrekt arbeitet.
- Langfristige Wartung: Document Ingestion ist kein einmaliger Prozess. Da sich Informationen ständig ändern und neue Dokumente hinzukommen, muss sie kontinuierlich überwacht und angepasst werden. Automatisierte Aktualisierungs- und Überwachungsmechanismen stellen sicher, dass die Datenbank immer auf dem neuesten Stand ist und somit das RAG-System stets auf aktuelle, relevante Informationen zugreifen kann.
Fazit: Die Grundlage für qualitativ hochwertige Antworten
Die Document Ingestion ist ein grundlegender und komplexer Schritt im RAG-Prozess, der einen entscheidenden Einfluss auf die Qualität der Antworten hat. Durch die sorgfältige Strukturierung und Aufbereitung von Dokumenten, angepasst an deren individuelle Beschaffenheit, wird die Grundlage für ein effizientes und präzises Retrieval gelegt. Insbesondere das Chunking ist ein kritischer Faktor: Es beeinflusst, wie viel Kontext dem Retrieval-System zur Verfügung steht und wie zielgenau die Informationen extrahiert werden können.
Eine gut durchdachte Document Ingestion sorgt dafür, dass das RAG-System aus einer breiten und vielfältigen Informationsbasis schöpfen kann und so zuverlässige, präzise und kontextualisierte Antworten liefert. Die Qualität der Document Ingestion ist daher ein zentraler Baustein für den Erfolg einer RAG-Architektur und sollte mit höchster Sorgfalt und Expertise umgesetzt werden.
Dieser Artikel ist ein Auszug aus unserem kostenfreien Primer zu Retrieval-Augmented Generation. Ein Kurzeinstieg für Softwarearchitekt:innen und -entwickler:innen.