Azure Document Intelligence

Aus Helper
Version vom 16. Oktober 2024, 08:41 Uhr von Stefan (Diskussion | Beiträge) (→‎Projekte verwalten)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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.

Es wird empfohlen, für jedes Projekt einen eigenen Untercontainer anzulegen. Wenn wir später ein Projekt für die Extraktion erstellen, muss auf einen dieser Container verwiesen werden. Alle Daten in einem Container sind dann für das Extraktionsprojekt sichtbar. Bzw. die Ordner in dem Container können über die Pfadangabe zugewiesen werden.

Um einen neuen Conotainer für ein Projekt anzulegen, klicke im Browser auf den Menupunkt "Blob containers" und dann in der Menuleiste auf "Add container". Gibt dem container eine wiedererkannbare Bezeichnung für dein aktuelles Projekt.



Ein solcher Container ist so zu sagen das Laufwerk, in dem wir die späteren Trainingsdaten zum Projekt 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.

Um einen Ordner in dem Container zu erstellen, klicke auf "Add directory" in der Menuleiste. Die Bezeichnung des Ordner sollte zur wiedererkennung idealerweise den Dokumententyp oder dem Modelnamen, welches mit diesen Dokumenten dann trainiert wird, erhalten.


Der eben erstellte Container "projekt123", stellvertretend für einen Projektcontainer mit zwei Unterordner für die Dokumente.



Datenhaltung

Es empfiehlt sich je Projekt / Kunde einen eigenen Container anzulegen. In dem jeweiligen Container 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 "Container" und "Folder path". Dort gibst du den Namen des Projektspezifischen Containers und des Dokumenten Ordners an. Der Folder Pfad kann später noch geändert werden, der Container nicht mehr!

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, analysiert und das OCR ausgeführt, die Felder definiert und die erkannten Textbausteine in den Dokumenten den jeweiligen Feldern zugeordnet.
Models - Übersicht der vorhandenen und bereits trainierten Modelle. Die Modelle können hier gelöscht oder dupliziert werden. Der Stand eines ggf. noch laufenden Trainings wird hier angezeigt.
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.

Bsp. Pfad: flora/model_01
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

TIPP: Kopiere im Storage Browser die Datei fields.json, welche nach dem erstellen der Felder erzeugt wird, in einen weiteren Model Ordner um die einmal eingerichteten Felder für das nächste Model das zu erstellen willst wieder zur Verfügung zu haben. Dies spart dir die Zeit, die Felder erneut anlegen zu müssen.

Auf der rechten UI Seite werden die Felder verwaltet. Nebst dem erstellen von neuen Felder über "Add a field", können diese dort über das Kontextmenu (Aufruf über die 3 Punkte ganz rechts beim Feld) 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.


Abgeschlossene Zuweisung

Beispiel für ein fertig gestelltes Dokument:


Model Trainieren

Aktuell kann über das WebUI kein bestehendes Model mit neuen Daten weiter trainiert werden. Es wird immer ein neues Model erstellt. Ein Modelname kann nur einmal verwendet werden. Modelle können nachträglich nicht mehr umbenannt werden, jedoch schnell dupliziert, wobei ein neuer Name vergeben werden muss.

Sobald alle Dokumente bearbeitet wurden kann mit dem Training des Models begonnen werden. Klicke dafür auf die Taste "Train" am rechten oberen Fensterbereich.

Gib dazu den Modelnamen ein. Üblicherweise derjenige welcher für diesen Dokumentetyp beschlossen wurde und später in die Konfiguration des Arbeitsschrittes übernommen wird. Eine kurze Beschreibung kann für weitere Details angegeben werden.

Wähle als Build Mode den vorgeschlagenen "Neural" Modus und klicke dann auf Train.

Das Training kann mehrere Minuten dauern. Den Fortschritt findest du unter dem Menu Models.


Testen

Nachdem ein Model trainiert wurde, sollte es getestet werden um die Zuverlässigkeit der Extraktion zu bewerten.

Lade dazu eines oder mehrere Dokumente über die Drag&Drop Fläche hoch. Wähle das passende Test Model aus der Dropdown Auswahl hinter "Test model".

Lasse danach die Analsye über ein markiertes oder über alle hochgeladenen Dokumente laufen. Auf der rechten Seite werden die Felder mit den Resultaten angezeigt. Im Dokument werden die erkannten Bereicher wiederum mit dem entsprechenden Feldfarben umrandet dargestellt.


Wenn die Resultat ungenügend sind, sollten dem Trainingsdatensatz weitere Dokumente hinzugefügt und mit Labels versehen werden, damit das Model erneut trainiert werden kann.

Danach ist das Model bereit für die Datenverarbeitung des Arbeitsschrittes.