Azure Document Intelligence
Beschreibung
Document Intelligence ist ein AI basierter cognigitive service von Microsoft Azure.
Der Dienst besteht zumindest aus einem Document intelligence Objekt und einem zugehörigen Speicherkonto.
Wenn ein neues Projekt in Document intelligence Studio (kurz: DIS) angelegt wird, muss dafür ein Speicherkonto genannt werden. Das Speicherkonto wird benötigt, um die Trainingsdateien für die AI Modelle zur Verfügung zu stellen.
Die Feldkonfiguration für die extraktion und das Training eines zugehörigen Models werden im WebUI des DIS gehandhabt. Die Handhabung der Daten sehen wir uns im Kapitel Speicherlaufwerke genauer an.
DIS bietet verschiedene vorkonfigurierte Modelle, diese sind für uns an dieser Stelle erstmal nicht relevant.
Um eigene Modelle zu erstellen und zu trainieren, verwenden wir die "Custom extraction", bzw. die "custom classification" falls die Dokumente erst separiert werden müssen.
Azure Ressourcen
Auf der Portalseite von Azure finden sich die Ressourcen welche der Ressourcengruppe BSB_AI-Services zugehörig sind. Aktuell ist dort ein Document intelligence Dienst und ein Speicherkonto zu finden.
Verschiedene Projekte können problemlos auf den selben Ressource ausgeführt werden. Das DIS WebUI ist eine davon losgelöste Plattform, welche darunter laufenden Projekte an ein Benutzerkonto bindet. Die Projekte selbst werden jedoch beim erstellen dauerhaft mit den hier gezeigten Ressourcen verknüpft.
Cognitive Service - Document Intelligence
Die Resource des vorläufig ersten Document intelligence Objektes heisst "BSBDocInt". Es gibt dort keine weiteren Einstellungen, welche durch den Benutzer vorgenommen werden sollten.
Die Detailseite der Resource ermöglicht die Anzeige der Zugriffsschlüssel und des Endpunktes für die Konfiguration des Helper Arbeitsschrittes.
Die Endpunkte setzen sich grunsätzlich aus dem Namen der Resource und der Endung cognitiveservices.azure.com zusammen. E.g.: https://bsbdocint.cognitiveservices.azure.com
Speicherlaufwerke
Das Speicherkonto "databsb" ist als günstiger Blob Storage und vorerst nur mit Key Access ohne Benutzerkonten oder Dateifreigaben ausgelegt.
Es wird ausschliesslich für die Ablage der Trainigsdaten von Projekten verwendet, welche über das WebUI des DIS erstellt und verwaltet werden.
Die Verwaltung des speichers kann aktuell nur über das Azure Portal ausgeführt werden. Hier können die Projekt, bzw. Modelspezifischen Ordner angelegt und bearbeitet werden.
Der Zugriff auf das Laufwerk wird über den Storage Browser geregelt. Dazu wird die Storage Resource im Portal durch klicken auf die bsbdata Resource geöffnet. Im darauf erscheinenden UI im linken Menubereich die Option "Storage Browser" auswählen. Danach um Untermenü rechts davon die Option "Blob containers" auswählen. Dies ist der Hauptcontainer des Speicherkontos.
Darin befindet sich ein Container mit dem Namen "trainingdata". Dies ist so zu sagen das Laufwerk, in dem wir die Trainingsdaten ablegen. Bzw. wo wir die Projektorder für die Daten erstellen. In einem Projekt kann der Unterordner für die Daten dann laufend geändert werden.
Übersicht der Storage Browsers
Der Blob container trainingdata
Datenhaltung
Es empfiehlt sich je Projekt einen eigenen Ordner im container "trainingdata" anzulegen. In dem jeweiligen Projektordner werden dann nach Bedarf weitere Unterordner für jedes zu Trainierende Model angelegt.
Die Trainingsdaten können bereits hier in die entsprechenden Ordner hochgeladen, oder später bei der Trainingskonfiguration im DIS UI.
Je nach Konfigurationsfortschritt eines Projektes über das DIS WebUI, werden neben den Dokumenten weitere Dateien angelegt. Dies sind Dateien für das OCR und die eingefügten Labels.
Die vollstängige Labelbeschreibung wird in der Datei fields.json abgelegt. Diese Datei kann einfach in andere Projektunterordner kopiert werden, falls die Felder dort identisch heissen werden.
Für die OCR Daten, welche bei der "Run layout" Funktion im DIS generiert werden, entsteht eine dem Dateinamen des zugehörigen Dokumentes identische Datei mit der zusätzlichen Endung .ocr.json.
Für die Labelzuordnung wird nochmals eine Datei mit dem gleichen Dateinamen wie das Dokument mit der endung .labels.json erstellt.
Bsp. für eine Datei mit dem Namen "MeinDokument.pdf":
MeinDokument.pdf MeinDokument.pdf.ocr.json MeinDokument.pdf.labels.json fields.json
Bsp. Datenstruktur für einen Projektordner Flora und dessen Unterordner für die Modelle:
Document Intelligence Studio
Über diese Plattform werden die Dokumente analysiert, die Feldkonfigurationen gemacht und die AI Modelle trainiert.
Scrolle auf der Einstiegseite nach unten zu den Custom model um zu den UI's für die extraktion oder die klassifikation zu gelangen.
Cutsom modelle erstellen
Öffne die gewünschte Seite für die custom modelle über einen der beiden Links unter custom models. Hier werden dir die vorhanden Projekte, welche mit deinem Login Konto verknüpft sind angezeigt.
Projekte verwalten
Unter "My Projects" sind alle Projekte, welche von dir selbst erstellt wurden, oder welche du über die entsprechende Funktion zuvor importiert hast, sichtbar.
Neues Projekt erstellen
Um ein neues Projekt zu erstellen, klicke auf "Create a project". Du wirst durch vier Seiten geleitet, mit den Tasten unten navigierst du durch diese bis zum Abschluss.
1. Gib dem Projekt einen Sinnvollen Namen und füge ggf. eine kurze Beschreibung hinzu
2. Richte die Document intelligence Resource ein. Übernimm dazu die Einstellungen aus der Grafik.
3. Richte die Datenquelle für das Training ein. Übernimm auch hier wieder die Einstellung aus der Grafik, bis auf den Parameter "Folder path" ganz unten. Dort gibst du den Namen des Projektspezifischen Ordners an. Der Pfad kann später noch geändert werden.
4. Erstelle das Project über die Taste "Create Project", nachdem du die Einstellungen nochmals überprüft hast.
Nach kurzer Zeit wird das Projekt nun in deiner Liste mit Projekten erscheinen und kann entweder geteilt werden, oder zur weitere Konfiguration durch klicken auf den Link geöffnet werden.
Vorhandene Projekte teilen
Damit ein anderer Benutzer Zugriff auf ein von dir erstelltes Projekt erhält, muss das Projekt geteilt werden. Wähle dazu das zu teilende Projekt und drücke auf den "share" link im Menü über den Projekten.
Es wird ein Zugriffstoken erstellt, welches an alle Benutzer die Zugriff auf das Projekt erhalten sollen übermittelt werden muss.
Über die "import" link im Menü über den Projekten, kann dieses Token zum importieren von Projekten dann eingetragen werden. Danach sollte das Projekt auf für weitere Benutzer sichtbar werden. Da die Daten des Projektes auf den gleichen Ressource liegen, wirken sich jegliche Änderungen anderer Benutzer auf das ganze Projekt aus.
Modelle einrichten und trainieren
Klicke auf ein vorhandenes Projekt, um die Konfiguration der Daten und das training der Modelle zu öffnen.
Da Menu zur linken Seite hat vier Punkte:
Label Data - Hier werden die Dokumente hochgeladen, das OCR ausgeführt, die Felder definiert und die Textbausteine in den Dokumenten den Feldern zugeordnet. Models - Übersicht der vorhandenen und bereits trainierten Modelle. Die Modelle können hier gelöscht oder dupliziert werden. Test - Hier werden die Modelle getestet, indem Dokumente hochgeladen und durch ein Model laufen gelassen werden. Settings - Ändern der Projektbeschreibung und ändern des Speicherordners für die aktuellen Daten welche unter Label Data angezeigt und verwendet werden.
Um ein Model zu trainieren sollten mindestens 5 unterschiedliche Beispiele von einer bestimmten Vorlage mit Labels versehen werden.
Für die Zuordnung des Dokumenteninhaltes stehen Felder oder Tabellen zur Verfügung. In der Regel wird mit Feldern gearbeitet.
Settings
Als erstes sollte unter dem Menu Settings die Einstellung des Folder path überprüft und ggf. angepasst werden. Insbesondere dann, wenn mehrere Modelle für ein Projekt zum Einsatz kommen und mit unterschiedlichen Datensätzen trainiert werden soll.
Der erste Teil des Pfades zeigt den Projektspezifischen Ordner, der zweite Teil in der Regel den Ornder mit den Modeldaten. Den Ordner gleich zu benennen wie das Model vereinfacht die Wiedererkennung und Zuordnung.
Label Data
Lade hier direkt deine Dokumente über die Drag&Drop Fläche hoch, falls du diese nicht bereits über den Storage Browser in den zugehörigen Ordner gelegt hast.
Neu hinzugefügte Dokumente haben noch keine farbliche Markierung vor dem Dateinamen und müssen über die Taste "Run layout" den Dokumenteanalyse Prozess durchlaufen. Dabei können sowohl einzlene Dokumente oder gleich alle nicht analysierten Dokumente verarbeitete werden.
Dokumente welche bereits analysiert wurden, jedoch noch keine Feldzuordnung besitzen, sind mit einem Orangen Punkt gekennzeichnet. Im Text sind alle vom OCR ermittelten Textstellen nun gelblich markiert.
Dokumente welche bereits eine Feldzurordnung besitzen, sind mit einem grünen Punkt gekennzeichnet. Im Text sind alle zugeordneten Felder entsprechend der Farbe welche dem Feld vergeben wurde zusätzlich markiert.
Felder erstellen
Auf der rechten UI Seite werden die Felder verwaltet. Nebst dem erstellen von neuen Felder, können diese dort gelöscht, umbenannt oder der Datentyp des Feldes geändert werden. Die Vergabe der Farbe geschieht automatisch und kann nicht geändert werden. Neue Felder können auch fortlaufend bei der Auswahl von relevanten Textstellen in der Dokumentedarstellung erstellt werden.
Felder zuweisen
Wird mit der Maus auf einen gelben Textbereich im Dokument geklickt, wird dieser grün markiert und es erscheint ein Kontektmenu welches die bestehenden Felder anzeigt, mit der Option ein neues Feld durch Eingabe eines Feldnamens zu erstellen. Es lassen sich wiederholt weitere Textstellen mit der Maus markieren und dem gleichen Feld zuweisen. Sobald ein Feld zugewiesen wurde, werden die Textstellen mit einem farbigen Rahmen entsprechend der Feldfarbe gekennzeichnet.
Fehlzuweisungen von Text lassen sich nur auf der rechten Seite bei der Felderübersicht mit dem X am rechten Rand wieder löschen. Dabei werden alle bereits gemachten Zuweisungen wieder entfernt.