Snowflake Document AI – Einfache Extraktion und Verarbeitung von Daten unstrukturierter Dokumente

Snowflake Document AI – Einfache Extraktion und Verarbeitung von Daten unstrukturierter Dokumente

Mit Snowflake Document AI können innerhalb der Datenplattform ganz einfach Informationen aus Dokumenten, zum Beispiel Rechnungen oder handgeschriebenen Dokumenten, extrahiert werden. Document AI ist unkompliziert und leicht zu nutzen: entweder via grafische Benutzeroberfläche, via Code in einer Pipeline oder integriert in eine Streamlit-Applikation. In diesem Beitrag erklären wir Dir das Feature, beschreiben, wie die Integration in die Plattform funktioniert, und stellen interessante Anwendungsmöglichkeiten vor.

Inhaltsverzeichnis

Snowflake, die AI Data Cloud

Snowflake ist eine Cloud-Datenplattform mit vielen, breiten Anwendungsmöglichkeiten, von Datenmigration und klassischem Data Warehousing bis zur generativen künstlichen Intelligenz. Als cloudnative Plattform – das heißt, Snowflake wurde explizit für die Cloud entwickelt – bietet Snowflake hohes Optimierungspotenzial für die Ressourcennutzung.

Dies beinhaltet unter anderem

  • eine bedarfsorientierte Skalierung von separaten Rechen- und Speicherinstanzen,
  • das einfache Teilen von Daten über den Snowflake Marketplace
  • sowie die Replikation von Daten über unterschiedliche Cloud-Provider hinweg.

Kompatibel mit den Cloud-Anbietern Google Cloud Platform, Amazon Web Services und Microsoft Azure, ist die Snowflake-Plattform eine robuste und von einzelnen Anbietern unabhängige Datenlösung. Während Snowflake zu Beginn der Entwicklung des 2012 gegründeten Unternehmens zunächst eine moderne Möglichkeit des Data Warehousing und Reportings darstellte, hat sich die Plattform in den vergangenen Jahren in bemerkenswerter Geschwindigkeit zu einer umfangreichen vollumfänglichen Datenplattform entwickelt.

Insbesondere die analytischen Möglichkeiten der Snowflake AI Data Cloud gehen weit über klassische Reporting-Funktionen hinaus.

Snowflake ML

Mit Snowflake ML bietet die Plattform die Möglichkeit, end-to-end maschinelles Lernen zu implementieren. Die Plattform unterstützt beispielsweise Snowflake Notebooks, eine integrierte Entwicklungsumgebung, in der komfortabel Daten analysiert und visualisiert werden können und sowohl mit Python als auch SQL programmiert werden kann. Darüber hinaus bietet Snowflake einen Feature Store, in dem der Modell-Input gespeichert werden kann, und eine Model Registry, in der alle zum Modell gehörenden Artefakte hinterlegt werden können.

Snowflake Cortex AI

Ergänzt wird Snowflake ML durch Snowflake Cortex AI. Unter dem Begriff Cortex AI sammeln sich Funktionen der generativen künstlichen Intelligenz (KI). Diese Funktionen lassen sich einfach auf in Snowflake gespeicherte Tabellen mit SQL oder Python anwenden. Zum Beispiel übersetzt die Funktion Translate mühelos Text in unterschiedliche Sprachen, die Funktion Sentiment klassifiziert die Valenz eines Texts. Grundlage dieser Funktionen sind Large Language Models (LLMs), die direkt in die Plattform integriert sind. Zum aktuellen Zeitpunkt unterstützt Snowflake eine große Breite an proprietären und offenen Modellen.

Snowflake Document AI

LLMs bilden auch die Basis für Snowflake Document AI. Bei Document AI handelt es sich um ein Feature, mit dem Informationen aus Dokumenten extrahiert werden können, um strukturierte Daten aus unstrukturierten Daten zu gewinnen. Die unstrukturierten Daten können aus handgeschriebenen oder maschinell erzeugten Dokumenten bestehen, aber auch Logos und Checkboxen können von der KI verarbeitet werden. Das Feature ist bereits seit Oktober 2024 in den meisten Regionen der Cloud-Provider AWS und Azure „generally available“, das heißt vollständig verfügbar.

Für Document AI nutzt Snowflake Arctic-TILT, ein proprietäres LLM, das speziell für die Verarbeitung von Dokumenten entwickelt wurde. Da das LLM bereits vortrainiert ist, erzielt es auch bei neuen Dokumenttypen, die dem Modell bis dahin unbekannt sind (Zero-Shot Extraction), häufig eine gute Leistung. Reicht diese Leistung nicht aus, kann das LLM in einem Fine-Tuning dediziert auf einen spezifischen Dokumenttyp nachtrainiert werden.

Die Sicherheit der Daten ist insofern gewährleistet, als die für das Training verwendeten Daten die Snowflake-Plattform nicht verlassen müssen. So werden weder das neu trainierte Modell noch die dafür verwendeten Daten mit anderen Snowflake-Kunden geteilt. Ein weiterer Vorteil der Nutzung von Arctic-TILT für Datenextraktion liegt in der Größe des Modells: Mit 0,8 Milliarden Parametern ist das Modell vergleichsweise klein und dementsprechend preiswert im Betrieb. Trotz der geringen Größe überzeugt Arctic-TILT durch eine hervorragende Leistung. Im DocVQA, dem Standardtest für die Beantwortung von Fragen auf Grundlage visueller Dokumente, schlägt es große generische Modelle wie beispielsweise GPT-4.

Flowchart zur Erstellung eines Snowflake Document AI Modells mit den Schritten: Create Model, Define variables, Validate performance, Train the model und Publish the model.
Abbildung 1: Modularer Ablauf der Bereitstellung eines Document-AI-Modells

Die Implementierung eines neuen Anwendungsfalls ist unkompliziert und kann in wenigen Schritten im Snowflake User Interface, Snowsight, umgesetzt werden:

  • Zunächst wird ein neues Snowflake-Objekt, ein sogenannter Model Build, erstellt und eine ausreichend große Recheninstanz gewählt, auf der das Modell ausgeführt wird.
  • Dokumente mit den zu extrahierenden Daten werden via grafische Benutzeroberfläche in die Snowflake-Plattform hochgeladen.
  • In natürlicher Sprache kann man nun Fragen, sogenannte Prompts, zu dem Dokument stellen, die durch das LLM beantwortet werden.
  • Die Genauigkeit der Antwort kann zum einen über einen direkten Vergleich mit dem Inhalt des Dokuments (vergleiche Abbildung 1) bestimmt werden. Zum anderen generiert das LLM für jede Antwort auch einen Konfidenz-Score. Dieser Score ist ein numerischer Wert zwischen 0 und 1 und signalisiert, wie „sicher“ das LLM bei der gegebenen Antwort ist.
  • Stimmt die Antwort nicht, kann sie manuell korrigiert werden. Die korrigierte Antwort fließt anschließend in das (optionale) Finetuning, das per Klick gestartet wird, bevor es veröffentlicht, das heißt zur Nutzung bereitgestellt wird. Ist das Modell auch ohne Finetuning bereits ausreichend korrekt in der Beantwortung der Fragen, kann es direkt ohne weiteres Training veröffentlicht werden.
Screenshot einer Dokumentenanalyse in Snowflake mit einem USPTO-Patentdokument. Die rechte Seite zeigt automatisch extrahierte Informationen wie invention_title, application_number, inventor und weitere Felder.
Abbildung 2: Extraktion von Daten aus unstrukturierten Dokumenten mit natürlicher Sprache in einer grafischen Oberfläche

Automatisierte Datenextraktion in Snowflake

Ein erfolgreich trainiertes Modell bietet den größten Mehrwert, wenn man es in eine produktive Pipeline einbettet, die Dokumente automatisiert verarbeitet, die unstrukturierten Daten dabei extrahiert und als strukturierte Daten zur Analyse und Weiterverarbeitung zur Verfügung stellt. Eine solche Pipeline könnte beispielsweise so aufgesetzt sein:

  • Im ersten Schritt wird eine Stage, ein Snowflake-Objekt zur Speicherung von Dateien, angelegt, über die neue Dokumente in die Snowflake-Plattform geladen werden. Durch den Encryption Parameter kann hier eine Verschlüsselungsmethode für die Dokumente bestimmt werden. Der Directory-Parameter ermöglicht es, Metadaten der geladenen Dokumente zu erfassen.
  • Ein Stream auf der Stage kann genutzt werden, um neu hochgeladene Dokumente zu erkennen.
  • Die Extraktion der Daten aus den Dokumenten und damit die Verschiebung der Information von der Stage in eine Tabelle kann durch ein weiteres Snowflake-Objekt, einen Task, orchestriert werden. Der Task verweist auf den Stream und selektiert aus neu angekommenen Dokumenten die Metadaten und den Dokumentinhalt. Mittels eines einfachen Funktionsaufrufs (Predict) wird das ggf. nachtrainierte LLM genutzt, um die Fragen in Bezug auf den Dokumentinhalt zu beantworten und die extrahierten Ergebnisse zusammen mit dem Konfidenz-Score in einer Tabelle zu speichern. Die Ausführungsgeschwindigkeit und Frequenz kann dabei, wie in Snowflake üblich, über die Wahl eines Virtual Warehouse, das für die Ausführung verwendet wird, sowie den Schedule des Task gesteuert werden.
  • Um die Ergebnisse des Modells sinnvoll verwenden zu können, werden im letzten Schritt die Daten weiterverarbeitet. Da die Predict-Funktion halbstrukturierte Daten zurückgibt, können diese noch mittels der Snowflake-nativen Funktionen für halbstrukturierte Daten komfortabel weiter transformiert und in einer Tabelle materialisiert werden. Mit einem weiteren Task kann auch dieser Schritt automatisiert werden.
  • Zusätzlich kann zur manuellen Validierung in einer grafischen Benutzeroberfläche eine Streamlit-Applikation in die Pipeline integriert werden.

In wenigen Minuten kann der Benutzer auf diesem Wege unkompliziert eine produktive Pipeline bereitstellen, die mit Hilfe des trainierten Modells unstrukturierte Daten in strukturierte verwandelt.

Flowchart einer Extraction Pipeline in Snowflake mit den Schritten: Upload Document, Stream & Task, automatische Speicherung der Ergebnisse in einer Snowflake-Tabelle und manuelle Validierung.
Abbildung 3: Pipeline zur Extraktion von Daten aus Dokumenten mit Document AI in Snowflake

Anwendungen von Snowflake Document AI

Document AI ist einfach zu verwenden und hat keinen domänenspezifischen Fokus. Entsprechend breit ist das Spektrum der Anwendungsmöglichkeiten für den LLM-gestützten Service.

In den meisten Unternehmen müssen Rechnungen in Systeme eingepflegt und überprüft werden. Diese beiden Schritte lassen sich mit Document AI automatisieren und vereinfachen. Mitarbeiter:innen können Rechnungen so an einem Ort verwalten, der durch eine Snowflake Stage erreichbar ist. Mit der Ablage wird dann der oben aufgeführte Prozess angestoßen, der die gewünschten Informationen aus den Belegen extrahiert. Über den Konfidenz-Score können Mitarbeiter:innen sich beim Überprüfen der Belege dann auf wenige Grenzfälle konzentrieren. Ein Interface hierfür lässt sich bequem mittels Streamlit implementieren.

Neben solchen allgemeinen Szenarien lassen sich auch sehr spezifische Anwendungsfälle beschreiben. Beispielsweise könnte die Auswertung klinischer Studien in der Pharmabranche von Snowflake Document AI profitieren, indem es dafür eingesetzt wird, Fakten aus wissenschaftlichen Artikeln zu extrahieren oder Fragebögen von Patienten auszulesen. Insbesondere bei Letzterem können Übertragungsfehler durch die maschinelle Auswertung verhindert werden. Allgemein eignet sich Snowflake Document AI hervorragend für die Verarbeitung jeglicher Art handgeschriebener Fragebögen und Formulare.

Fazit

Diese Anwendungsfälle zeigen, dass Document AI domainübergreifend einen großen Mehrwert bietet, der sich zum einen in der Beschleunigung von Prozessen und der Reduktion von Kosten, aber auch in der Verbesserung der Qualität niederschlägt.

Falls Du ebenfalls vor der Herausforderung stehst, Deine Dokumente in strukturierte Daten zu verwandeln, um damit einen echten Mehrwert für Dein Unternehmen zu generieren, unterstützen wir Dich dabei gerne. Kontaktiere uns für ein erstes Kennenlernen, bei dem wir Deinen Anwendungsfall ganz unverbindlich besprechen.

Du hast Fragen? Kontaktiere uns

Dr. Sebastian Petry

Your contact person

Dr. Sebastian Petry

Domain Lead Data Science & AI

Ähnliche Beiträge

chevron left icon
Vorheriger Beitrag
Nächster Beitrag
chevron right icon

Kein vorheriger Beitrag

Kein nächster Beitrag