Sind die Anfragen der KI Knowledge Base wieder nicht verlässlich?
Produktionsreife “Chat-with-your-Data”-Applikationen, basierend auf RAG (=Retrieval Augmented Generation) Technologien sind eine harte Nuss. Was schnell in einem Proof of Concept sehr gut funktioniert, ist in der Praxis meistens nicht brauchbar. Gerade die Optimierung von Black Box KI-Systemen, wie RAG, ist alles andere als einfach.
In dieser Artikelserie gehe ich auf die relevantesten Herausforderungen und Optimierungshebel aus technischer Sicht ein, zur Sicherstellung einer verlässlichen und qualitativen “Chat-with-your-Data”-Applikation.
Heute im Programm: Datenqualität, Komplexität und Parsing.
Herausforderungen: Datenqualität und Dateikomplexität
Informationen müssen aus unterschiedlichsten Dateiformaten extrahiert und aufbereitet werden, sodass ein Sprachmodell in der Lage ist, diese auch zu verstehen.
In der Praxis stößt man auf lückenhafte Datensätze, komplexe Dateiformate und unzureichende Parsingtechnologien.
Nach dem Prinzip: „Garbage In, Garbage Out“ sollte die Erwartungshaltung an die Performance von RAG in erster Linie an der Qualität der Daten gekoppelt sein. Aber Achtung! Datenqualität sollte sich dabei nicht zur generalisierten, schlechten Ausrede für alles entwickeln. Auch das Verständnis für komplexe Datenstrukturen und die Auswahl der geeigneten Parsingtechnologien sind ebenso wichtig, um eine solide Grundlage für die RAG Pipeline zu schaffen.
Datenqualität
Der Begriff “Datenqualität” umfasst die Sicherstellung, dass Daten richtig, aktuell und konsistent sind. Da RAG (Retrieval-Augmented Generation) lediglich Informationen abruft und an ein Sprachmodell weitergibt, kann dieses Verfahren nicht zwischen verschiedenen Stufen der Datenqualität unterscheiden.
- Richtigkeit: Informationen müssen konsistent und korrekt sein, um widersprüchliche Angaben zu vermeiden, die das Modell verwirren könnten.
- Aktualität: Die Daten sollten möglichst aktuell sein. Veraltete Informationen können dazu führen, dass das Modell falsche Aussagen macht.
- Konsistenz: Duplikate sollten vermieden werden, da mehrfach vorkommende Informationen ein falsches Bias in der Antwortgenerierung erzeugen könnten.
Komplexe Dateien
Manche Dateien, die für uns Menschen einfach zu verstehen sind, stellen für ein Sprachmodell (LLM) Herausforderungen dar.
Beispielsweise: Ein PDF ist für Menschen vielleicht leicht verständlich, aber im maschinellen Kontekt vergleichsweise schwer zu interpretieren. Aus maschineller Sicht ist der PDF Standard wie ein Buch organisiert, bei dem jede Seite, Schriftart und Grafik als eigenes Objekt gespeichert und durch ein Inhaltsverzeichnis verknüpft ist. Die Reihenfolge dieser Objekte, insbesondere des Textes, ist nicht immer sequentiell, da die Darstellung durch Positionierungsanweisungen im PDF-Code gesteuert wird. (Beispiel: Schreibe das Wort „Buch“ an Position X in Schriftart Y, Zeichne eine rote Linie auf Position Z).
Dadurch geht oft das Verhältnis der Objekte (sei es eine Textzeile, ein Bild, etc.) zueinander verloren. Im Gegensatz dazu ist eine Textdatei (.txt) wesentlich einfacher für eine Maschine zu verarbeiten, da die Inhalte in einer klaren Reihenfolge vorliegen. Wenn ein PDF komplexe Elemente wie Bilder oder Tabellen enthält, sind zusätzliche Schritte in der Datenverarbeitung erforderlich.
Je komplexer das Dateiformat, desto höher der potentielle Informationsverlust beim Parsen-Vorgang. Das bedeutet im Umkehrschluss: RAG liefert bei einer Anfrage zu wenig Information und somit ist das Textmodell kaum in der Lage, eine präzise Antwort zu generieren.
In unseren Projekten unterscheiden wir zwischen folgenden Komplexitätsstufen:
- Gering: Sequentiell strukturierte Textdateien ohne Formatierungen oder visuelle Elemente. Beispiele sind einfache Textdateien (.txt) oder sehr einfache PDFs ohne Bilder oder Tabellen.
- Mittel: Dateien mit simplen Layoutformatierungen und einfachen visuellen Elementen. Beispiele hierfür sind Word-Dokumente (.docx), Webseiten-Markup Dateien (.html) oder PDFs, die gelegentlich Bilder und grundlegende Formatierungen aufweisen. Weitere Beispiele sind Bild- oder Audiodateien, die durch OCR- oder Speech-to-Text-Verfahren verarbeitet werden müssen.
- Hoch: Dokumente mit umfangreichen Formatierungen, zahlreichen Bildern, Tabellen und möglicherweise auch eingebetteten Grafiken oder Diagrammen. Beispiele sind technische Berichte, wissenschaftliche Arbeiten oder komplexe Präsentationen.
- Extrem: Vielseitige Dateien, die eine Kombination aus Text, komplexen Tabellen, umfangreichen Grafiken, eingebetteten Multimedia-Inhalten und interaktiven Elementen enthalten. Beispiele sind umfangreiche E-Books, interaktive PDF-Formulare oder multimediale Präsentationen.
Intelligentes Dokument Parsing
Parsing steht für das Zerlegen komplexer Formate oder Strukturen in ihre einzelnen Bestandteile. In einem Proof of Concept greift man normalerweise auf simplere, „out-of-the-box“ Parsing-Libraries wie beispielsweise PyPDF zurück. Das reicht meistens für Dokumente geringer Komplexität aus. Sobald die Komplexität jedoch steigt, stoßen diese Libraries an ihre Grenzen, weil sie nicht für komplexere Layoutstrukturen konzipiert sind. Trotz des gleichen Formats (.pdf), ist ein PDF nicht immer gleich ein PDF. Der Parser sollte in der Lage sein, die Struktur des Dokuments auch zu verstehen: Ein Steuerbescheid hat inhaltlich ein anderes Layout als ein Patientenbogen, was spezifische Anpassungen im Parsing erfordert. Deshalb reicht ein einheitliches Parsingverfahren für Dateien vom gleichen Typ meistens nicht aus, weil die unterschiedlichen Strukturen berücksichtigt werden müssen. Ein klassischer Parser beherrscht die technische Extraktion, also das korrekte Auslesen von Objekten. Ein intelligenter Parser versteht die Beziehung der extrahierten Objekte zueinander und kann diese auch korrekt interpretieren.
Wir empfehlen die Nutzung von spezialisierten externen Diensten zur Verarbeitung komplexer Dateiformate. In unseren Projekten setzen wir sowohl externe als auch lokal gehostete (Open-Source) Bibliotheken ein. Externe Dienste bieten jedoch umfangreichere Funktionen und eine höhere Qualitätssicherung, auch wenn sie kostenpflichtig sind.
Warum externe Dienste?
- Umfangreiche Funktionen: Nutzen Sie die fortschrittlichen Tools und Techniken, die externe Dienste bieten.
- Qualitätssicherung: Profitieren Sie von der hohen Zuverlässigkeit und Qualität dieser Dienste.
- Nahtlose Integration: Insbesondere im Enterprise-Kontext sind vertraute Cloud-Provider wie Azure oder AWS von Vorteil, da sie nahtlos in bestehende Cloud-basierte IT-Infrastrukturen integriert werden können. Diese Provider decken Sicherheits- und Compliance-Anforderungen bereits out-of-the-box ab.
Unsere Favoriten bei der Implementierung von Enterprise “chat-with-your-data” Applikationen: (Stand: Mai 2024)
- LlamaParse — LlamaIndex: Veröffentlicht von den Entwicklern von LlamaIndex. Unterstützt aktuell nur PDF-Dateien. Ist sehr mächtig darin, unstrukturierte PDF-Dateien und tabulare Informationen zu interpretieren. Zudem ist die Integration sehr einfach.
- Azure AI Document Intelligence: Ein Azure AI-Dienst, der KI anwendet, um Text, Schlüssel-Wert-Paare, Tabellen und Layout-Strukturen aus Dokumenten zu extrahieren. Azure bietet ein SDK an um eigene Workflows für die Dokumentenverarbeitung zu erstellen.
- Amazon Textract: Ein AWS-Service zur automatischen Extraktion von gedrucktem Text, Handschrift, Layoutelementen und Daten aus Dokumenten.
- Bonus FireCrawl: Ein API-Dienst zum Crawlen und Parsen von Webseiten. Firecrawl öffnet eine Homepage, durchsucht alle Unterseiten (auch ohne Sitemap), und konvertiert diese anschließend in ein geeignetes Format für LLMs.
Zusammenfassung
- Proof of Concept ≠ Produktion: Informationen aus verschiedenen Dateiformaten müssen extrahiert und für Sprachmodelle verständlich gemacht werden, wobei in der Praxis lückenhafte Datensätze und komplexe Dateiformate auftreten.
- Pflege einer effektiven Data-Quality Strategie: Daten müssen konsistent, aktuell und korrekt sein, um widersprüchliche Angaben und Duplikate zu vermeiden, die die Modellleistung negativ beeinflussen.
- Menschliches Verständnis ≠ Maschinelles Verständnis: Die Verarbeitung extrem komplexer Dateiformate kann zu Informationsverlust führen und die Antwortgenauigkeit einer Chat Applikation beeinträchtigen.
- Den Nagel mit dem richtigen Hammer treffen: Einfache Parsing-Libraries stoßen bei komplexen Dokumenten an ihre Grenzen; spezialisierte Parser sind notwendig, um die Layouts und Beziehungen in den Dokumenten korrekt zu interpretieren