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.
Durch das Uptraining über Document AI Workbench können Sie die Genauigkeit bei der Dokumentenverarbeitung verbessern, indem Sie zusätzliche gekennzeichnete Beispiele für spezielle Dokumenttypen bereitstellen und eine neue Modellversion erstellen.
In diesem Lab erstellen Sie einen Rechnungsparser-Prozessor, konfigurieren ihn für das Training, versehen Beispieldokumente mit Labels und trainieren den Prozessor.
Das in diesem Lab verwendete Dokument-Dataset besteht aus zufällig generierten Rechnungen für ein fiktives Rohrleitungsunternehmen.
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.
- Optische Zeichenerkennung (OCR) mit Document AI (Python)
- Formulare mit Document AI parsen (Python)
- Spezialisierte Prozessoren mit Document AI verwenden (Python)
- Document AI-Prozessoren mit Python verwalten
- Document AI: Human-in-the-Loop
Lerninhalte
- Uptraining für einen Invoice Parser-Prozessor konfigurieren
- 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 Rechnungsparser-Prozessor erstellen, den Sie für dieses Lab verwenden können.
- Rufen Sie in der Console die Seite Document AI-Übersicht auf.

- Klicken Sie auf Prozessor erstellen, scrollen Sie nach unten zu Spezialisiert (oder geben Sie Rechnungsparser in die Suchleiste ein) und wählen Sie Rechnungsparser aus.

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

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

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.
Sie müssen einen neuen Bucket in Cloud Storage erstellen, um das Dataset zu speichern. Hinweis: Dies sollte nicht derselbe Bucket sein, in dem Ihre Dokumente derzeit gespeichert sind.
- Öffnen Sie Cloud Shell und führen Sie die folgenden Befehle aus, um einen Bucket zu erstellen. Alternativ können Sie einen neuen Bucket in der Cloud Console erstellen. Speichern Sie diesen Bucket-Namen. Sie benötigen ihn später.
export PROJECT_ID=$(gcloud config get-value project)
gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
- Rufen Sie den Tab Dataset auf und klicken Sie auf Dataset erstellen.

- Fügen Sie den Bucket-Namen aus dem Bucket, den Sie in Schritt 1 erstellt haben, in das Feld Zielpfad ein. (
gs://nicht einschließen)

- Warten Sie, bis das Dataset erstellt wurde. Sie sollten dann zur Seite „Dataset-Verwaltung“ weitergeleitet werden.

5. Testdokument importieren
Als Nächstes importieren wir eine Beispiel-PDF-Datei in unser Dataset.
- Klicken Sie auf Dokumente importieren.

- 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“. Klicken Sie auf Importieren.
cloud-samples-data/documentai/codelabs/uptraining/pdfs

- Warten Sie, bis das Dokument importiert wurde. In meinen Tests hat das weniger als eine Minute gedauert.

- Wenn der Import abgeschlossen ist, sollte das Dokument in der Benutzeroberfläche zur Dataset-Verwaltung angezeigt werden. Klicken Sie darauf, um die Labeling-Konsole aufzurufen.

6. 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.
- Sie sollten sich jetzt in der Labeling Console befinden, die in etwa so aussieht.

- Klicken Sie auf das Tool „Text auswählen“, markieren Sie den Text „McWilliam Piping International Piping Company“ und weisen Sie ihm das Label
supplier_namezu. Mit dem Textfilter können Sie nach Labelnamen suchen.

- Markieren Sie den Text „14368 Pipeline Ave Chino, CA 91710“ und weisen Sie ihm das Label
supplier_addresszu.

- Markiere den Text „10001“ und weise das Label
invoice_idzu.

- Markieren Sie den Text „2020-01-02“ und weisen Sie ihm das Label
due_datezu.

- Wechseln Sie zum Tool „Bounding Box“. Markieren Sie den Text „Knuckle Couplers“ und weisen Sie ihm das Label
line_item/descriptionzu.

- Markiere den Text „9“ und weise das Label
line_item/quantityzu.

- Markieren Sie den Text „74.43“ und weisen Sie ihm das Label
line_item/unit_pricezu.

- Markieren Sie den Text „669.87“ und weisen Sie ihm das Label
line_item/amountzu.

- Wiederholen Sie die vorherigen vier Schritte für die nächsten beiden Positionen. Wenn alles fertig ist, sollte es so aussehen.

- Markieren Sie den Text „1.419,57“ (neben „Zwischensumme“) und weisen Sie ihm das Label
net_amountzu.

- Markieren Sie den Text „113.57“ (neben „Steuer“) und weisen Sie ihm das Label
total_tax_amountzu.

- Markieren Sie den Text „1.533,14“ (neben „Insgesamt“) und weisen Sie ihm das Label
total_amountzu.

- Markieren Sie eines der „$“-Zeichen und weisen Sie das Label
currencyzu.

- 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 Speichern, wenn Sie mit dem Tagging fertig sind.

- Hier finden Sie die vollständige Liste der Labels und Werte.
Labelname | Text |
| McWilliam Piping International Piping Company |
| 14368 Pipeline Ave Chino, CA 91710, USA |
| 10001 |
| 2020-01-02 |
| Janney-Kupplung |
| 9 |
| 74,43 |
| 669,87 |
| PVC-Rohre 12" |
| 7 |
| 15,90 |
| 111,30 |
| Kupferrohr |
| 7 |
| 91,20 |
| 638,40 |
| 1.419,57 |
| 113,57 |
| 1.533,14 |
| € |
7. 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 aktiven Labels haben sich geändert.

- Wir müssen dieses Dokument entweder dem Trainings- oder dem Testset zuweisen. Klicken Sie auf das Dokument.

- Klicken Sie auf Set zuweisen und dann auf Training.

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

8. Daten mit Labels importieren
Das Document AI-Training benötigt im Trainings- und im Test-Dataset mindestens 10 Dokumente sowie jeweils 10 Instanzen jedes Labels in jedem Dataset.
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, 100 Dokumente manuell zu kennzeichnen. Daher haben wir einige Dokumente mit Labels, 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.
- Klicken Sie auf Dokumente importieren.

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

- 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. In meinen Tests hat das etwa 6 Minuten gedauert. Sie können diese Seite in der Zwischenzeit verlassen und später wieder zurückkehren.

- Anschließend sollten die Dokumente auf der Seite „Dataset verwalten“ angezeigt werden.

9. Labels bearbeiten
Die Beispieldokumente, die wir für dieses Beispiel verwenden, enthalten nicht alle Labels, die vom Rechnungsparser unterstützt werden. Die Labels, die wir nicht verwenden, müssen vor dem Training als inaktiv markiert werden. Sie können auch ähnliche Schritte ausführen, um vor dem Uptraining ein benutzerdefiniertes Label hinzuzufügen.
- Klicken Sie links unten auf Labels verwalten.

- Sie sollten sich jetzt in der Label Management Console befinden.

- Verwenden Sie die Kästchen und die Schaltflächen Deaktivieren/Aktivieren, um NUR die folgenden Labels als Aktiviert zu markieren.
currencydue_dateinvoice_idline_item/amountline_item/descriptionline_item/quantityline_item/unit_pricenet_amountsupplier_addresssupplier_nametotal_amounttotal_tax_amount
- Die Console sollte nach Abschluss so aussehen. Klicken Sie abschließend auf Speichern.

- Klicken Sie auf den Zurückpfeil, um zur Dataset-Verwaltungskonsole zurückzukehren. Labels mit 0 Instanzen wurden als „Inaktiv“ markiert.

10. Optional: neu importierte Dokumente automatisch mit Labels versehen
Wenn Sie Dokumente ohne Label für einen Prozessor mit einer vorhandenen Prozessorversion importieren, können Sie mit der automatischen Labelerstellung bei der Labelerstellung Zeit sparen.
- Klicken Sie auf der Seite Trainieren auf Dokumente importieren.
- Kopieren Sie den folgenden -Pfad und fügen Sie ihn ein. Dieses Verzeichnis enthält fünf Rechnungs-PDFs ohne Labels. Wählen Sie in der Drop-down-Liste Datenaufteilung die Option Training aus.
cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled - 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:
pretrained-invoice-v1.3-2022-07-15
- 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. Rufen Sie den Bereich Automatisch mit Label versehen auf, um die automatisch gekennzeichneten Dokumente anzusehen.
- 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.
- Wenn Sie fertig sind, wählen Sie Als „Mit Label versehen“ 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.
11. Modell aktualisieren
Jetzt können wir mit dem Training unseres Rechnungsparsers beginnen.
- Klicken Sie auf Neue Version trainieren.

- Geben Sie der Version einen Namen, den Sie sich merken können, z. B.
codelab-uptraining-test-1. Die Basisversion ist die Modellversion, auf der diese neue Version basiert. Wenn Sie einen neuen Prozessor verwenden, sollte die einzige Option Google Pretrained Next with Uptraining sein.

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

- Klicken Sie auf Training starten, um das Uptraining zu starten. 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.

- 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.

12. 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.
- Rufen Sie die Seite Versionen verwalten auf. Hier sehen Sie den aktuellen Status und den F1-Score.

- 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.

- 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.

- Wechseln Sie nach Abschluss der Bereitstellung zum Tab Bewerten. Klicken Sie dann auf das Drop-down-Menü „Version“ und wählen Sie die neu erstellte Version aus.

- 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 Beispieldokument, das nicht im Trainings- oder Testset enthalten war.
- Klicken Sie auf Testdokument hochladen und wählen Sie die PDF-Datei aus.

- Die extrahierten Einheiten sollten in etwa so aussehen.

13. Fazit
Gute Arbeit. Sie haben mit Document AI einen Rechnungsparser weiter trainiert. Sie können diesen Prozessor jetzt verwenden, um Rechnungen 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
- Document AI Workbench-Dokumentation
- The Future of Documents – YouTube-Playlist
- Document AI-Dokumentation
- Python-Clientbibliothek für Document AI
- Document AI-Beispiele
Lizenz
Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.