1. Einführung
Document AI ist eine Lösung zum Verständnis von Dokumenten, die unstrukturierte Daten wie Dokumente, E-Mails usw. aufnimmt, um die Daten leichter zu verstehen, zu analysieren und zu nutzen.
Mit Document AI Workbench können Sie eine höhere Genauigkeit bei der Dokumentverarbeitung erreichen, indem Sie vollständig benutzerdefinierte Modelle mit Ihren eigenen Trainingsdaten erstellen.
In diesem Lab erstellen Sie einen Prozessor für die benutzerdefinierte Dokumentextraktion, importieren ein Dataset, versehen Beispieldokumente mit Labels und trainieren den Prozessor.
Das in diesem Lab verwendete Dokument-Dataset stammt aus einem Fake W-2 (US Tax Form)-Dataset mit einer CC0: Public Domain-Lizenz auf Kaggle.
Voraussetzungen
Dieses Codelab baut auf Inhalten aus anderen Document AI-Codelabs auf.
Bevor Sie fortfahren, sollten Sie die folgenden Codelabs absolvieren.
- Optische Zeichenerkennung (OCR) mit Document AI (Python)
- Formularanalyse mit Document AI (Python)
- Spezialisierte Prozessoren mit Document AI (Python)
- Document AI-Prozessoren mit Python verwalten
- Document AI: Human in the Loop
- Document AI: Aufbautraining
Aufgaben in diesem Lab
- Erstellen Sie einen benutzerdefinierten Dokumentextraktor-Prozessor.
- Verwenden Sie das Annotationstool, um Document AI-Trainingsdaten mit Labels zu versehen.
- Neue Modellversion trainieren.
- Bewerten Sie die Genauigkeit der neuen Modellversion.
Voraussetzungen
2. Einrichtung
In diesem Codelab wird davon ausgegangen, dass Sie die im Einführenden Codelab aufgeführten Schritte zur Document AI-Einrichtung abgeschlossen haben.
Führen Sie die folgenden Schritte aus, bevor Sie fortfahren:
3. Prozessor erstellen
Für dieses Lab müssen Sie zuerst einen benutzerdefinierten Dokumentextraktorprozessor erstellen.
- Rufen Sie in der Console die Seite Document AI-Übersicht auf.
- Klicken Sie auf Benutzerdefinierten Prozessor erstellen und wählen Sie Benutzerdefinierter Dokumentextraktor aus.
- Geben Sie ihr den Namen
codelab-custom-extractor
oder einen Namen, an den Sie sich erinnern, und wählen Sie aus der Liste die nächstgelegene Region aus.
- Klicken Sie auf Erstellen, um den Prozessor zu erstellen. Anschließend sollte die Seite „Prozessorübersicht“ angezeigt werden.
4. Dataset erstellen
Zum Trainieren des Prozessors müssen wir ein Dataset mit Trainings- und Testdaten erstellen, damit der Prozessor die Entitäten identifizieren kann, die extrahiert werden sollen.
- Klicken Sie auf der Seite „Prozessorübersicht“ auf Dataset konfigurieren.
- 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 Show Advanced Options (Erweiterte Optionen anzeigen). Andernfalls klicken Sie einfach auf Weiter.
- Warten Sie, bis das Dataset erstellt wurde. Anschließend sollten Sie zur Seite Training weitergeleitet werden.
5. Testdokument importieren
Importieren wir nun eine W2-Beispieldatei in unser Dataset.
- Klicken Sie auf Dokumente importieren.
- Wir haben eine Beispiel-PDF für dieses Lab vorbereitet. Kopieren Sie den folgenden Link und fügen Sie ihn in das Feld Quellpfad ein. „Datenaufteilung“ verlassen als „Nicht zugewiesen“ vorerst. Lassen Sie alle anderen Kästchen deaktiviert. Klicken Sie auf Importieren.
cloud-samples-data/documentai/codelabs/custom/extractor/pdfs
- Warten Sie, bis das Dokument importiert wurde. Dies sollte weniger als eine Minute dauern.
- Wenn der Import abgeschlossen ist, sollten Sie das Dokument auf der Seite Training sehen.
6. Labels erstellen
Da wir einen neuen Prozessortyp erstellen, müssen Sie benutzerdefinierte Labels erstellen, damit Document AI weiß, welche Felder extrahiert werden sollen.
- Klicken Sie links unten auf Schema bearbeiten.
- Sie sollten sich jetzt in der Schema-Verwaltungskonsole befinden.
- Erstellen Sie mithilfe der Schaltfläche Label erstellen die folgenden Labels.
Name | Datentyp | Vorkommen |
| Zahl | Mehrmals erforderlich |
| Nur Text | Mehrmals erforderlich |
| Nur Text | Mehrmals erforderlich |
| Adresse | Mehrmals erforderlich |
| Money | Mehrmals erforderlich |
| Money | Mehrmals erforderlich |
| Money | Mehrmals erforderlich |
| Money | Mehrmals erforderlich |
- Die Konsole sollte nach Abschluss folgendermaßen aussehen. Klicken Sie abschließend auf Speichern.
- Klicken Sie auf den Zurückpfeil, um zur Seite Training zurückzukehren. Die von uns erstellten Beschriftungen werden links unten angezeigt.
7. Label für das Testdokument hinzufügen
Als Nächstes identifizieren wir Textelemente und Beschriftungen für die Entitäten, die wir extrahieren möchten. Diese Labels werden verwendet, um unser Modell zu trainieren, um diese spezifische Dokumentstruktur zu parsen und die richtigen Typen zu identifizieren.
- Doppelklicken Sie auf das zuvor importierte Dokument, um die Labeling-Konsole aufzurufen. Die Anzeige sollte ungefähr so aussehen.
- Klicken Sie auf den Begrenzungsrahmen. und markieren Sie den Text „1173038“. und weisen Sie das Label
CONTROL_NUMBER
zu. Mit dem Textfilter können Sie nach Labelnamen suchen.
- Für die andere Instanz von
CONTROL_NUMBER
sollte dieser Vorgang abgeschlossen sein, nachdem er mit einem Label versehen wurde.
- Markieren Sie alle Vorkommen der folgenden Textwerte und weisen Sie ihnen die entsprechenden Labels zu.
Labelname | Text |
| 24-3188810 |
| 19127,2 |
| 5093,71 |
| 66584,46 |
| 56081,18 |
| 714-32-2105 |
| Adams, Chase and Gilbert Inc 972 Gonzalez Dam South Katherine NC 95869-5178 (USA) |
- Das mit einem Label versehene Dokument sollte nach Fertigstellung wie folgt aussehen. Hinweis: Sie können Anpassungen an diesen Labels vornehmen, indem Sie auf den Begrenzungsrahmen im Dokument oder auf den Namen/Wert des Labels im Menü auf der linken Seite klicken. Klicken Sie auf Als Label markieren, wenn Sie mit dem Labeling fertig sind, und kehren Sie dann zur Dataset-Verwaltungskonsole zurück.
8. Dokument dem Trainings-Dataset zuweisen
Sie sollten sich jetzt wieder in der Dataset-Verwaltungskonsole befinden. Beachten Sie, dass sich die Anzahl der Dokumente mit und ohne Label sowie die Anzahl der Instanzen pro Label geändert haben.
- Wir müssen dieses Dokument entweder dem oder „Testen“ festgelegt. Klicken Sie auf das Dokument, dann auf Assign to Set (Zum Festlegen zuweisen), dann auf Training (Training).
- Beachten Sie, dass sich die Zahlen für die Datenaufteilung geändert haben.
9. Vorab mit Labels versehene Daten 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 wird empfohlen, in jedem Satz mindestens 50 Dokumente mit 50 Instanzen jedes Labels zu haben. Eine größere Menge an Trainingsdaten führt in der Regel zu einer höheren Genauigkeit.
Es wird sehr lange dauern, alle Dokumente manuell mit Labels zu versehen. Daher haben wir einige bereits mit Labels versehene Dokumente, die Sie für dieses Lab importieren können.
Sie können Dokumentdateien mit vorinstallierten Labels im Document.json
-Format importieren. Dies kann durch das Aufrufen eines Prozessors und die Überprüfung der Genauigkeit mithilfe von Human in the Loop (HITL) entstehen.
ausschließend
HINWEIS:Beim Importieren von Daten mit zuvor mit Labels versehenen Daten wird dringend empfohlen, Anmerkungen manuell zu prüfen, bevor ein Modell trainiert wird.
- Klicken Sie auf Dokumente importieren.
- Kopieren Sie den folgenden Cloud Storage-Pfad und fügen Sie ihn ein und weisen Sie ihn dem Dataset Training zu.
cloud-samples-data/documentai/codelabs/custom/extractor/training
- Klicken Sie auf Weiteren Ordner hinzufügen. Kopieren Sie dann den folgenden Cloud Storage-Pfad und fügen Sie ihn ein und weisen Sie ihn dem Set Test zu.
cloud-samples-data/documentai/codelabs/custom/extractor/test
- Klicken Sie auf Importieren und warten Sie, bis die Dokumente importiert wurden. Dies dauert länger als beim letzten Mal, da noch mehr Dokumente verarbeitet werden müssen. Dies dauert etwa sechs Minuten. Sie können diese Seite verlassen und später zurückkehren.
- Anschließend sollten die Dokumente auf der Seite Training angezeigt werden.
10. Modell trainieren
Jetzt können wir mit dem Training unseres benutzerdefinierten Dokumentextraktors beginnen.
- Klicken Sie auf Train New Version (Neue Version trainieren).
- Geben Sie der Version einen Namen, an den Sie sich erinnern, z. B.
codelab-custom-1
. Wählen Sie unter „Trainingsmethode“ die Option „Von Grund auf trainieren“ aus.
- (Optional) Sie können auch Labelstatistiken anzeigen auswählen, um Messwerte zu den Labels in Ihrem Dataset anzuzeigen.
- Klicken Sie auf Training starten, um mit dem Training zu beginnen. Sie werden daraufhin automatisch zur Seite für die Dataset-Verwaltung 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.
- Wenn Sie auf den Versionsnamen klicken, werden Sie zur Seite Versionen verwalten weitergeleitet, auf der die Versions-ID und der aktuelle Status des Trainingsjobs angezeigt werden.
11. Neue Modellversion testen
Sobald der Trainingsjob abgeschlossen ist (in meinen Tests hat es etwa eine Stunde gedauert), können Sie jetzt die neue Modellversion testen und für Vorhersagen verwenden.
- Rufen Sie die Seite Versionen verwalten auf. Hier sehen Sie den aktuellen Status und den F1-Wert.
- Wir müssen diese Modellversion bereitstellen, bevor wir sie verwenden können. Klicken Sie rechts auf die vertikalen Punkte und wählen Sie Deploy Version (Version bereitstellen) aus.
- Wählen Sie im Pop-up-Fenster Bereitstellen aus, wenn Sie auf die Bereitstellung der Version warten. Das dauert einige Minuten. Nach der Bereitstellung können Sie diese Version auch als Standardversion festlegen.
- Wechseln Sie nach 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.
- Laden Sie die unten verlinkte PDF-Datei herunter. Dies ist ein W2-Beispiel, das nicht im Trainings- oder Test-Dataset enthalten war.
- Klicken Sie auf Upload Test Document (Testdokument hochladen) und wählen Sie die PDF-Datei aus.
- Die extrahierten Entitäten sollten in etwa so aussehen.
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.
- Klicken Sie auf der Seite Trainieren auf Import Documents (Dokumente importieren).
- 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
- Klicken Sie im Bereich Automatisches Labeling das Kästchen Mit automatischem Labeling importieren an.
- Wählen Sie eine vorhandene Prozessorversion aus, um den Dokumenten Labels hinzuzufügen.
- Beispiel:
2af620b2fd4d1fcf
- 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.
- Automatisch mit Labels versehene Dokumente können nicht für Trainings- oder Testzwecke verwendet werden, ohne sie als „Mit Label versehen“ zu markieren. Im Bereich Automatisch mit Labels versehen können Sie sich die Dokumente mit automatisch hinzugefügten Labels ansehen.
- Wählen Sie das erste Dokument aus, um die Labeling-Konsole aufzurufen.
- Prüfen Sie, ob die Labels, Begrenzungsrahmen und Werte korrekt sind. Kennzeichnen Sie alle Werte, die weggelassen wurden, mit einem Label.
- Wählen Sie abschließend Als gekennzeichnet markieren aus.
- 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
Herzlichen Glückwunsch! Sie haben mit Document AI erfolgreich einen benutzerdefinierten Document Extractor-Prozessor trainiert. Sie können diesen Prozessor jetzt verwenden, um Dokumente in diesem Format genau wie mit jedem spezialisierten Prozessor zu parsen.
Informationen zur Verarbeitung der Verarbeitungsantwort finden Sie im Codelab zu spezialisierten Prozessoren.
Clean-up
So vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
- Rufen Sie in der Cloud Console die Seite Ressourcen verwalten auf.
- Wählen Sie Ihr Projekt in der Projektliste aus und klicken Sie auf „Löschen“.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie dann auf „Beenden“, um das Projekt zu löschen.
Ressourcen
- Dokumentation zu Document AI Workbench
- The Future of Documents – YouTube-Playlist
- Dokumentation zu Document AI
- Document AI-Clientbibliothek für Python
- Document AI-Beispiele
Lizenz
Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.