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.
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.
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.
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
Your contact person
Dr. Sebastian Petry
Domain Lead Data Science & AI
Wer ist b.telligent?
Du willst den IoT Core durch eine Multi-Cloud-Lösung ersetzen und die Vorteile weiterer IoT-Services von Azure oder Amazon Web Services nutzen? Dann melde Dich bei uns und wir unterstützen Dich bei der Umsetzung mit unserer Expertise und dem b.telligent Partnernetzwerk.
Neuronale Netze werden erfolgreich auf so ziemlich jeden Datentyp angewandt: Bilder, Audio, Texte, Videos, Graphen usw. Nur wenn es um Tabellendaten geht, sind baumbasierte Ensembles wie Random Forests und Gradient Boosted Trees immer noch sehr viel verbreiteter. Wenn man diese erfolgreichen Klassiker durch neuronale Netze ersetzen will, dürfte Ensemble Learning immer noch eine Schlüsselidee sein. Dieser Blogbeitrag erklärt, warum das so ist. Dazu gibt’s ein Notebook mit den praktischen Details.
Azure AI Search, Microsofts serverloses Angebot für das R in RAG, hat seine eigene Skalierungslogik. Sie verbirgt viel von der Komplexität serverbasierter Lösungen, erfordert aber spezifische Kenntnisse.
Polars, der in Rust geschriebene Pandas-Herausforderer, sorgt für erhebliche Beschleunigung nicht nur in der Ausführung des Codes, sondern auch in der Entwicklung. Pandas krankt seit jeher an einer API, die an vielen Stellen „historisch gewachsen“ ist. Ganz anders Polars: Eine API, die von Anfang an auf logische Konsistenz ausgelegt ist und deren Stringenz mit jedem Release sorgfältig gepflegt wird (im Zweifelsfall auch unter Verlusten an Rückwärtskompatibilität), sorgt für eine erheblich schnellere Entwicklung. An vielen Stellen, wo man bisher Pandas eingesetzt hat, kann man es problem los durch Polars ersetzen: In Ibis-Analytics-Projekten, und natürlich einfach für die tägliche Datenaufbereitung aller Art. Gut macht sich die überlegene Performance auch in interaktiven Umfeldern wie PowerBI .