Document AI Workbench – Benutzerdefinierter Dokumentextraktor

1. Einführung

Document AI ist eine Lösung zur Dokumentverarbeitung, die unstrukturierte Daten wie Dokumente und E‑Mails leichter verständlich, analysierbar und nutzbar macht.

Document AI Workbench ermöglicht es Ihnen, mithilfe eigener Trainingsdaten individuelle Modelle zu erstellen und so die Genauigkeit bei der Dokumentenverarbeitung deutlich zu verbessern.

In diesem Lab erstellen Sie einen benutzerdefinierten Prozessor zur Dokumentextraktion, importieren ein Dataset, versehen Beispieldokumente mit Labels und trainieren den Prozessor.

Das in diesem Lab verwendete Dokument-Dataset stammt von einem Fake W-2 (US Tax Form)-Dataset auf Kaggle mit einer CC0: Public Domain-Lizenz.

Voraussetzungen

Dieses Codelab baut auf Inhalten auf, die in anderen Document AI-Codelabs vorgestellt werden.

Wir empfehlen Ihnen, die folgenden Codelabs zu absolvieren, bevor Sie fortfahren.

Lerninhalte

  • Erstellen Sie einen benutzerdefinierten Dokumentextraktor-Prozessor.
  • Document AI-Trainingsdaten mit dem Annotationstool labeln
  • Trainieren Sie eine neue Modellversion.
  • Bewerten Sie die Genauigkeit der neuen Modellversion.

Voraussetzungen

2. Einrichtung

In diesem Codelab wird davon ausgegangen, dass Sie die im Einführungs-Codelab aufgeführten Einrichtungsschritte für Document AI ausgeführt haben.

Führen Sie die folgenden Schritte aus, bevor Sie fortfahren:

3. Prozessor erstellen

Sie müssen zuerst einen benutzerdefinierten Dokumentextraktor-Prozessor erstellen, den Sie für dieses Lab verwenden können.

  1. Rufen Sie in der Console die Seite Document AI-Übersicht auf.

DocAIOverviewConsole

  1. Klicken Sie auf Benutzerdefinierten Prozessor erstellen und wählen Sie Benutzerdefinierter Dokumentextraktor aus.

docai-custom-codelab-02

  1. Geben Sie dem Prozessor den Namen codelab-custom-extractor (oder einen anderen Namen, den Sie sich merken können) und wählen Sie die nächstgelegene Region aus der Liste aus.

docai-custom-codelab-03

  1. Klicken Sie auf Erstellen, um den Prozessor zu erstellen. Anschließend sollte die Seite „Prozessorübersicht“ angezeigt werden.

docai-custom-codelab-04

4. Dataset erstellen

Zum Trainieren unseres Prozessors müssen wir ein Dataset mit Trainings- und Testdaten erstellen, damit der Prozessor die Entitäten ermitteln kann, die wir extrahieren möchten.

  1. Klicken Sie auf der Seite „Prozessorübersicht“ auf Dataset konfigurieren.

docai-custom-codelab-04

  1. Sie sollten sich jetzt auf der Seite Dataset konfigurieren befinden. Wenn Sie einen eigenen Bucket zum Speichern der Trainingsdokumente und Labels angeben möchten, klicken Sie auf Erweiterte Optionen anzeigen. Klicken Sie andernfalls einfach auf Weiter.

docai-custom-codelab-05

  1. Warten Sie, bis das Dataset erstellt wurde. Sie sollten dann zur Seite Training weitergeleitet werden.

docai-custom-codelab-07

5. Testdokument importieren

Als Nächstes importieren wir eine Beispiel-W2-PDF-Datei in unser Dataset.

  1. Klicken Sie auf Dokumente importieren.

docai-custom-codelab-08

  1. Wir haben ein Beispiel-PDF für Sie, das Sie in diesem Lab verwenden können. Kopieren Sie den folgenden Link und fügen Sie ihn in das Feld Quellpfad ein. Lassen Sie die „Datenaufteilung“ vorerst auf „Nicht zugewiesen“. Lassen Sie alle anderen Kästchen deaktiviert. Klicken Sie auf Importieren.
cloud-samples-data/documentai/codelabs/custom/extractor/pdfs

docai-custom-codelab-09

  1. Warten Sie, bis das Dokument importiert wurde. Das sollte weniger als eine Minute dauern.
  2. Nach Abschluss des Imports sollte das Dokument auf der Seite Trainieren angezeigt werden.

docai-custom-codelab-10

6. Labels erstellen

Da wir einen neuen Prozessortyp erstellen, müssen wir benutzerdefinierte Labels erstellen, um Document AI mitzuteilen, welche Felder wir extrahieren möchten.

  1. Klicken Sie links unten auf Schema bearbeiten.

docai-custom-codelab-11

  1. Sie sollten sich jetzt in der Schema Management Console befinden.

docai-custom-codelab-12

  1. Erstellen Sie mit der Schaltfläche Label erstellen die folgenden Labels.

Name

Datentyp

Vorkommen

CONTROL_NUMBER

Zahl

Mehrmals erforderlich

EMPL_SSN

Nur Text

Mehrmals erforderlich

EMPLR_ID_NUMBER

Nur Text

Mehrmals erforderlich

EMPLR_NAME_ADDRESS

Adresse

Mehrmals erforderlich

FEDERAL_INCOME_TAX_WH

Geld

Mehrmals erforderlich

SS_TAX_WH

Geld

Mehrmals erforderlich

SS_WAGES

Geld

Mehrmals erforderlich

WAGES_TIPS_OTHER_COMP

Geld

Mehrmals erforderlich

  1. Die Console sollte nach Abschluss so aussehen. Klicken Sie abschließend auf Speichern.

docai-custom-codelab-13

  1. Klicken Sie auf den Zurückpfeil, um zur Seite Training zurückzukehren. Die erstellten Labels werden unten links angezeigt.

docai-custom-codelab-14

7. Testdokument mit einem Label versehen

Als Nächstes identifizieren wir Textelemente und Labels für die Entitäten, die wir extrahieren möchten. Diese Labels werden verwendet, um unser Modell zu trainieren, diese spezifische Dokumentstruktur zu parsen und die richtigen Typen zu identifizieren.

  1. Doppelklicken Sie auf das Dokument, das wir zuvor importiert haben, um die Labeling-Konsole aufzurufen. Die Anzeige sollte ungefähr so aussehen.

docai-custom-codelab-15

  1. Klicken Sie auf das Tool „Bounding Box“, markieren Sie den Text „1173038“ und weisen Sie ihm das Label CONTROL_NUMBER zu. Mit dem Textfilter können Sie nach Labelnamen suchen.

docai-custom-codelab-16

  1. Füllen Sie die anderen Instanzen von CONTROL_NUMBER aus. So sollte es nach der Kennzeichnung aussehen.

docai-custom-codelab-17

  1. Markieren Sie alle Instanzen der folgenden Textwerte und weisen Sie die entsprechenden Labels zu.

Labelname

Text

EMPLR_ID_NUMBER

24-3188810

FEDERAL_INCOME_TAX_WH

19127.2

SS_TAX_WH

5093,71

SS_WAGES

66584.46

WAGES_TIPS_OTHER_COMP

56081,18

EMPL_SSN

714-32-2105

EMPLR_NAME_ADDRESS

Adams, Chase and Gilbert Inc 972 Gonzalez Dam South Katherine NC 95869-5178

  1. Das mit einem Label versehene Dokument sollte am Ende so aussehen. Sie können diese Labels anpassen, indem Sie im Dokument auf das Rechteck oder im Menü auf der linken Seite auf den Labelnamen bzw. ‑wert klicken. Klicken Sie auf Als „Mit Label versehen“ markieren, wenn Sie mit dem Labeling fertig sind, und kehren Sie dann zur Dataset-Verwaltungskonsole zurück.

docai-custom-codelab-20

8. Dokument dem Trainings-Datensatz zuweisen

Sie sollten sich jetzt wieder in der Dataset-Verwaltungskonsole befinden. Die Anzahl der Dokumente mit und ohne Label sowie die Anzahl der Instanzen pro Label haben sich geändert.

docai-custom-codelab-21

  1. Wir müssen dieses Dokument entweder dem Trainings- oder dem Testset zuweisen. Klicken Sie auf das Dokument, dann auf Set zuweisen und dann auf Training.

docai-custom-codelab-22

  1. Die Zahlen für die Datenaufteilung haben sich geändert.

docai-custom-codelab-23

9. Daten mit Labels importieren

Benutzerdefinierte Document AI-Prozessoren benötigen sowohl im Trainings- als auch im Testset mindestens 10 Dokumente sowie jeweils 10 Instanzen jedes Labels pro Set.

Für eine optimale Leistung empfehlen wir, mindestens 50 Dokumente pro Set mit 50 Instanzen pro Label zu erstellen. Eine größere Menge an Trainingsdaten führt in der Regel zu einer höheren Genauigkeit.

Es würde lange dauern, alle Dokumente manuell zu labeln. Daher haben wir einige vorab gelabelte Dokumente, die Sie für dieses Lab importieren können.

Sie können mit Labels versehene Dokumentdateien im Format Document.json importieren. Das können Ergebnisse aus dem Aufrufen eines Prozessors und dem Überprüfen der Richtigkeit mit Human in the Loop (HITL) sein.

beiseite negativ

HINWEIS:Beim Importieren vorab gelabelter Daten wird dringend empfohlen, Anmerkungen manuell zu überprüfen, bevor ein Modell trainiert wird.

  1. Klicken Sie auf Dokumente importieren.

docai-custom-codelab-24

  1. Kopieren Sie den folgenden Cloud Storage-Pfad und weisen Sie ihn dem Training-Set zu.
cloud-samples-data/documentai/codelabs/custom/extractor/training
  1. Klicken Sie auf Weiteren Ordner hinzufügen. Kopieren Sie dann den folgenden Cloud Storage-Pfad und weisen Sie ihn dem Test-Set zu.
cloud-samples-data/documentai/codelabs/custom/extractor/test

docai-custom-codelab-25

  1. Klicken Sie auf Importieren und warten Sie, bis die Dokumente importiert wurden. Dies dauert länger als beim letzten Mal, da mehr Dokumente verarbeitet werden müssen. Das sollte etwa 6 Minuten dauern. Sie können diese Seite verlassen und später zurückkehren.

docai-custom-codelab-26

  1. Anschließend sollten die Dokumente auf der Seite Training angezeigt werden.

docai-custom-codelab-27

10. Modell trainieren

Jetzt können wir mit dem Training unseres benutzerdefinierten Dokumentextraktors beginnen.

  1. Klicken Sie auf Neue Version trainieren.

docai-custom-codelab-28

  1. Geben Sie der Version einen Namen, den Sie sich merken können, z. B. codelab-custom-1. Wählen Sie als „Trainingsmethode“ die Option „Von Grund auf trainieren“ aus.

docai-custom-codelab-29

  1. Optional: Sie können auch Labelstatistiken ansehen auswählen, um Messwerte zu den Labels in Ihrem Dataset aufzurufen.

docai-custom-codelab-30

  1. Klicken Sie auf Training starten, um mit dem Training zu beginnen. Sie werden zur Seite „Datasets verwalten“ weitergeleitet. Rechts auf der Seite sehen Sie den Trainingsstatus. Das Training dauert einige Stunden. Sie können diese Seite in der Zwischenzeit verlassen und später wieder zurückkehren.

docai-custom-codelab-31

  1. Wenn Sie auf den Versionsnamen klicken, werden Sie zur Seite Versionen verwalten weitergeleitet. Dort sehen Sie die Versions-ID und den aktuellen Status des Trainingsjobs.

docai-custom-codelab-32

11. Neue Modellversion testen

Sobald der Trainingsjob abgeschlossen ist (in meinen Tests hat das etwa eine Stunde gedauert), können Sie die neue Modellversion testen und für Vorhersagen verwenden.

  1. Rufen Sie die Seite Versionen verwalten auf. Hier sehen Sie den aktuellen Status und den F1-Score.

docai-custom-codelab-33

  1. Wir müssen diese Modellversion bereitstellen, bevor sie verwendet werden kann. Klicken Sie rechts auf das Dreipunkt-Menü und wählen Sie Version bereitstellen aus.

docai-custom-codelab-34

  1. Wählen Sie im Pop-up-Fenster Bereitstellen aus und warten Sie, bis die Version bereitgestellt wurde. Das dauert einige Minuten. Nach der Bereitstellung können Sie diese Version auch als Standardversion festlegen.

docai-custom-codelab-35

  1. Wechseln Sie nach Abschluss der Bereitstellung zum Tab Bewerten. Auf dieser Seite finden Sie Bewertungsmesswerte wie F1-Wert, Genauigkeit und Trefferquote für das gesamte Dokument sowie für einzelne Labels. Weitere Informationen zu diesen Messwerten finden Sie in der AutoML-Dokumentation.

docai-custom-codelab-36

  1. Laden Sie die unten verlinkte PDF-Datei herunter. Dies ist ein Beispiel für ein W2-Formular, das nicht im Trainings- oder Test-Dataset enthalten war.

  1. Klicken Sie auf Testdokument hochladen und wählen Sie die PDF-Datei aus.
  2. Die extrahierten Einheiten sollten in etwa so aussehen.

docai-custom-codelab-37

12. Optional: neu importierte Dokumente automatisch mit Labels versehen

Nachdem Sie eine trainierte Prozessorversion bereitgestellt haben, können Sie mithilfe der automatischen Labelerstellung beim Importieren neuer Dokumente Zeit bei der Labelerstellung sparen.

  1. Klicken Sie auf der Seite Trainieren auf Dokumente importieren.
  2. Kopieren Sie den folgenden -Pfad und fügen Sie ihn ein. Dieses Verzeichnis enthält fünf unbeschriftete W2-PDFs. Wählen Sie in der Drop-down-Liste Datenaufteilung die Option Training aus.
    cloud-samples-data/documentai/Custom/W2/AutoLabel
    
  3. Klicken Sie im Bereich Automatisches Labeling das Kästchen Mit automatischem Labeling importieren an.
  4. Wählen Sie eine vorhandene Prozessorversion aus, um den Dokumenten Labels hinzuzufügen.
  • Beispiel: 2af620b2fd4d1fcf
  1. Klicken Sie auf Importieren und warten Sie, bis die Dokumente importiert wurden. Sie können diese Seite in der Zwischenzeit verlassen und später wieder zurückkehren.
  • Anschließend werden die Dokumente auf der Seite Trainieren im Bereich Automatisch mit Label versehen angezeigt.
  1. Automatisch mit Labels versehene Dokumente können nicht für Trainings- oder Testzwecke verwendet werden, ohne sie als „Mit Label versehen“ zu markieren. Rufen Sie den Bereich Automatisch mit Label versehen auf, um die automatisch gekennzeichneten Dokumente anzusehen.
  2. Wählen Sie das erste Dokument aus, um die Labeling-Konsole aufzurufen.
  3. Prüfen Sie, ob die Labels, Begrenzungsrahmen und Werte korrekt sind. Kennzeichnen Sie alle Werte, die weggelassen wurden, mit einem Label.
  4. Wenn Sie fertig sind, wählen Sie Als „Mit Label versehen“ markieren aus.
  5. Wiederholen Sie die Labelüberprüfung für jedes Dokument mit automatischem Label und kehren Sie dann zur Seite Trainieren zurück, um die Daten für das Training zu verwenden.

13. Fazit

Gute Arbeit. Sie haben mit Document AI einen benutzerdefinierten Prozessor zur Dokumentextraktion trainiert. Sie können diesen Prozessor jetzt verwenden, um Dokumente in diesem Format zu parsen, genau wie bei jedem anderen spezialisierten Prozessor.

Im Codelab zu spezialisierten Prozessoren finden Sie Informationen dazu, wie die Verarbeitungsantwort verarbeitet wird.

Clean-up

So vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:

  • Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.
  • Wählen Sie in der Projektliste Ihr Projekt aus und klicken Sie auf „Löschen“.
  • Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf „Beenden“, um das Projekt zu löschen.

Ressourcen

Lizenz

Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.