26. Mai 2023 von Marc Mezger
Eine kurze Einführung in die automatische Dokumentenverarbeitung mit Large Language Models
In der heutigen Informationsgesellschaft sind Unternehmen und Organisationen ständig mit der Herausforderung konfrontiert, große Mengen an Dokumenten und Daten effizient zu verwalten und zu verarbeiten. Large Language Models (LLMs) bieten eine innovative Lösung, um diese Aufgabe zu bewältigen. Die Einsatzmöglichkeiten von LLMs wie Luminous von Aleph Alpha reichen von der automatischen Extraktion von Informationen aus Dokumenten bis hin zur Zusammenfassung von Texten und der Erkennung von Mustern in unstrukturierten Daten. Durch die Nutzung von künstlicher Intelligenz (KI) und des maschinellen Lernens sind LLMs in der Lage, menschenähnliches Textverständnis und menschenähnliche Textverarbeitung zu erreichen. Diese Fähigkeit ermöglicht es, nicht nur Zeit und Ressourcen zu sparen, sondern auch menschliche Fehler zu reduzieren und die Genauigkeit der Ergebnisse zu erhöhen. Die Verwendung von LLMs für die Dokumentenverarbeitung bietet somit erhebliche Vorteile in Bezug auf Effizienz, Genauigkeit und Skalierbarkeit und stellt eine zukunftsweisende Technologie dar, die Organisationen dabei unterstützt, den stetig wachsenden Informationsfluss erfolgreich zu bewältigen.
Problematik
In der modernen Arbeitsumgebung treten Dokumente häufig in diversen Formaten auf, wie etwa Bildern, Scans und PDFs. Die Verarbeitung dieser Dokumente stellt eine bedeutende Herausforderung dar, da jedes Format eigene Komplexitäten aufweist.
Preprocessing
Bei der Vorverarbeitung von Input-Dokumenten ist es wichtig, die unterschiedlichen Formate zu berücksichtigen. Bei maschinenlesbaren PDFs kann der Text zusammen mit exakten Koordinaten extrahiert werden. Beispielsweise bedeutet die gleiche Position einer Information in zwei Dokumenten nicht zwangsläufig, dass es sich um dieselbe Information handelt. Auch Tabellen in PDFs können auf unterschiedliche Weise dargestellt werden und sind daher schwer zu erkennen. Die Verarbeitung von Scans oder Bildern gestaltet sich noch schwieriger, da der Text nicht direkt aus dem Bild extrahiert werden kann. OCR-Technologien zielen darauf ab, Text in Bilddateien oder gescannten Dokumenten automatisch zu erkennen und in digitale, bearbeitbare Textformate umzuwandeln.
Eine alternative Möglichkeit besteht im Einsatz von multimodalen Modellen. Diese KI-Systeme verarbeiten und integrieren simultan Informationen aus verschiedenen Modalitäten, wie Text und Bildern. Durch die Kombination und das Verständnis unterschiedlicher Informationsquellen ermöglichen sie eine umfassendere Analyse und Interpretation von Daten. Beispiele für solche Systeme sind Aleph Alphas Magma oder GPT-4. Allerdings sind diese Modelle nicht auf Text spezialisiert, weshalb der Einsatz eines OCR-Systems sinnvoll sein kann, da es speziell auf die Erkennung von Texten – egal ob handschriftlich oder maschinell geschrieben – optimiert ist.
Prompting
Die erfolgreiche Implementierung von Sprachmodellen zur Informationsgewinnung erfordert sorgfältige Planung und Optimierung. Ein wichtiger Faktor dabei ist die Gestaltung des Eingabe-Prompts. Sprachmodelle, die für Informationsgewinnungszwecke verwendet werden, sind oft nicht so sehr an Menschen ausgerichtet wie Chat-Modelle. Daher kann es hilfreich sein, den Prompt, also die Eingabe an das Modell, so zu gestalten, dass er der speziellen „Sprache“ des Modells entspricht. Zum Beispiel könnte eine Systemnachricht lauten: „You are a bot that is an expert for extracting information. But you only speak JSON.“
Ein möglicher Prompt könnte dann folgendermaßen formuliert sein: „Please extract me the following information from the text: [,price‘, ,amount‘, ,name of customer‘, ,address of customer‘].“ Die effektivste Herangehensweise zur Optimierung der Prompt-Gestaltung sollte iterativ erfolgen, wobei verschiedene Varianten getestet und angepasst werden, um die bestmöglichen Ergebnisse zu erzielen.
Ein weiterer wichtiger Aspekt ist die Bereinigung und Optimierung des Textes, der dem Modell zugeführt wird. Da fast jedes Zeichen in einem Sprachmodell als Token betrachtet wird, können übermäßige Leerzeichen und Zeilenumbrüche unnötige Kosten verursachen.
Eine weitere Optimierung sind Few Shots. Dabei handelt es sich einfach formuliert darum, dass man dem Modell Beispiele gibt, die ihm helfen, die Aufgabe besser zu verstehen. Das heißt, im Szenario der Dokumentenverarbeitung würde man dem Modell zusätzlich zu den Anweisungen ein Beispiel, z. B. eine Rechnung und die zu extrahierenden Daten, mitgeben.
Im Folgenden werden die Vor- und Nachteile sowie mögliche Probleme und Lösungen für verschiedene Ansätze der Extraktion von Informationen beschrieben.
Extraktion von einzelnen oder mehreren Keywords
Vorteil:
- Mit präzisen Abfragen können gezielte Informationen genau ermittelt werden.
Mögliche Probleme:
- Es kann schwierig sein, das Modell dazu zu bringen, nichts zu sagen, wenn keine Informationen vorhanden sind.
- Gefahr von Halluzinationen, bei denen das Modell falsche oder irrelevante Informationen generiert.
Lösung: Explain von Aleph Alpha
Nachteil:
- Ineffizient und teuer, da für jedes Attribut ein Durchlauf mit redundantem Input.
Extraktion von vielen Keywords in JSON
Vorteil:
- Das Sprachmodell kann mehrere Informationen gleichzeitig extrahieren.
Probleme:
- Halluzinationen.
Lösung: Explain von Aleph Alpha
Extraktion von vielen Keywords oder Tabellen als Tabellen
Vorteil:
- Das Sprachmodell kann viele Informationen auf einmal in tabellarischer Form extrahieren.
Probleme:
- Halluzinationen.
Lösung: Explain von Aleph Alpha
Nachteil:
- Die Nachbearbeitung kann etwas komplizierter sein, zum Beispiel, wenn Regex (reguläre Ausdrücke) zur Verarbeitung der extrahierten Daten verwendet werden müssen.
Insgesamt hängt die Wahl der Methode zur Extraktion von Keywords und Informationen aus Texten von den spezifischen Anforderungen und Ressourcen ab. Durch das Testen und Vergleichen verschiedener Ansätze könnt ihr die beste Methode für eure Anwendung finden und optimieren.
Fazit zur Extraktion von einzelnen oder mehreren Keywords
Die Empfehlung ist aber Extraktion von vielen Begriffen als JSON oder als Tabelle, da man so die Kosten pro Seite meist bei circa ein bis zwei Cent oder noch billiger halten kann.
Aleph Alpha Luminous Explain
Explain ist eine neue Funktion von Aleph Alpha, die darauf abzielt, das Problem der Halluzinationen von Large Language Models (LLMs) zu lösen. LLMs neigen dazu, Informationen zu erfinden oder zu lügen, wenn sie nicht genau wissen, wie sie auf eine Anfrage antworten sollen. Explain bietet eine Lösung für dieses Problem, indem es den Benutzenden die Möglichkeit gibt, zu erkennen, ob die vom LLM generierte Information aus dem Text stammt oder nicht.
Evaluierung und Iteration
Um den Prompt effizient optimieren zu können, ist es ratsam, über ein kleines, diverses Dataset zu verfügen, das aus 10 bis 30 Dokumenten besteht. Natürlich integriert in eine kleine Pipeline, dies ermöglicht eine schnelle Iteration und erste Tests, wodurch Probleme leichter identifiziert und der Prompt ohne großen Zeitaufwand angepasst werden kann. Sobald die Evaluation auf dem kleineren Datensatz zufriedenstellende Ergebnisse liefert, empfiehlt es sich, den Test auf einen größeren Datensatz (50+) zu skalieren, um die Leistung des Modells unter realistischeren Bedingungen zu überprüfen. Es ist wichtig zu betonen, dass häufig von der Anpassung der Modelle an eine Domäne oder einem Finetuning gesprochen wird.
In der Praxis ist dies jedoch oft nicht erforderlich, da über Instruktionen und Beispiele dem Modell der Kontext und die Domäne nähergebracht werden können, ohne ein Finetuning durchführen zu müssen. Ein Finetuning kann problematisch sein, da es in der Regel zwischen 10.000 und 250.000 Euro kostet und vom Anbieter der Large Language Models (LLMs) gehostet werden muss, was zusätzliche Inferenzkosten bedeutet. Dies ist sowohl hinsichtlich der Skalierbarkeit als auch der Kosten weniger vorteilhaft. Daher sollte die Optimierung von Prompts durch Instruktionen und Beispiele als effizientere und kostengünstigere Alternative in Betracht gezogen werden.
Um die Ergebnisse zu evaluieren, bieten sich die Standard-Metriken an:
- Accuracy misst das Verhältnis der korrekt vorhergesagten Ergebnisse zur Gesamtzahl der Vorhersagen.
- Precision ist das Verhältnis der wahren positiven Ergebnisse zur Summe der wahren positiven und falsch positiven Ergebnisse, während Recall das Verhältnis der wahren positiven Ergebnisse zur Summe der wahren positiven und falsch negativen Ergebnisse ist. Diese Metriken sind besonders nützlich, wenn die Klassen in einem Datensatz unausgewogen sind oder die Kosten für falsche Vorhersagen unterschiedlich sind.
Auch spezielle Metriken für Texte sind zu empfehlen, wie etwa die Levenshtein-Distanz. Die Levenshtein-Distanz ist eine Metrik zur Messung der Ähnlichkeit zwischen zwei Zeichenketten. Sie gibt die minimale Anzahl von einzelnen Zeichenänderungen (Einfügen, Löschen oder Ersetzen) an, die erforderlich sind, um eine Zeichenkette in die andere zu verwandeln. Es ist zudem wichtig, eine gründliche Evaluation durchzuführen, um den optimalen Prompt und das passende Modell hinsichtlich der Kosten zu ermitteln. Jeder Token, also jedes Wort im Input, verursacht Kosten, und in der Regel sind größere und leistungsfähigere Modelle teurer. Um alle relevanten Auswertungen und Metriken effektiv im Auge zu behalten und fundierte Entscheidungen treffen zu können, ist ein professionelles Experiment-Tracking unerlässlich.
Beispiel-Repository
Ein Beispiel-Repository wurde erstellt, um zu demonstrieren, wie einfach die Dokumentenverarbeitung mit Aleph Alphas Luminous-Modellen durchgeführt werden kann. Mehr dazu erfahrt ihr unter https://github.com/mfmezger/document_processing.
Fazit
Die Verwendung von Prompts in größeren Sprachmodellen bietet eine effizientere und flexiblere Lösung im Vergleich zum Training kleinerer Modelle. Einer der Hauptgründe dafür ist das geringere Risiko des Overfittings bei größeren Modellen, da sie in der Regel über eine umfangreichere Wissensbasis und eine höhere Generalisierungsfähigkeit verfügen. Kleinere Modelle können dagegen anfälliger für Overfitting sein, wenn sie auf begrenzten oder spezifischen Datensätzen trainiert werden. Größere Sprachmodelle sind zudem leichter anpassbar, da sie auf einer breiteren Datenbasis gelernt haben und somit besser in der Lage sind, sich an verschiedene Kontexte und Anwendungsfälle anzupassen. Dies ermöglicht eine effizientere Nutzung der Modelle, ohne dass der Trainingsprozess jedes Mal von Grund auf neu durchlaufen werden muss, wenn sich die Anforderungen ändern. Ein weiterer Vorteil der Verwendung von Prompts in größeren Sprachmodellen besteht darin, dass sie besser für den Einsatz in kritischen Bereichen geeignet sind. Da die Modelle nicht direkt auf potenziell sensiblen oder vertraulichen Informationen wie geheimem Wissen oder Gesundheitsdaten trainiert werden, besteht ein geringeres Risiko, dass solche Informationen unbeabsichtigt preisgegeben oder missbraucht werden.
Im Gegensatz dazu könnten kleinere Modelle, die auf solchen Daten trainiert wurden, unerwünschte Informationen offenlegen oder nicht in der Lage sein, angemessen mit sensiblen Inhalten umzugehen. Insgesamt bietet die Verwendung von Prompts in größeren Sprachmodellen eine Reihe von Vorteilen hinsichtlich Effizienz, Anpassungsfähigkeit und Sicherheit, insbesondere in kritischen Anwendungsbereichen. Die Reduzierung des Overfitting-Risikos, die Flexibilität bei sich ändernden Anforderungen und der Schutz sensibler Daten machen diese Modelle zu einer bevorzugten Wahl für eine Vielzahl von Anwendungsfällen und Branchen.