Benutzerdefinierter Extraktor mit generativer KI
Mit dem Training und der Extraktion mit generativer KI haben Sie folgende Möglichkeiten:
- Mit Zero-Shot- und Few-Shot-Technologien können Sie ein leistungsstarkes Modell mit wenig bis gar keinen Trainingsdaten erstellen, indem Sie das Foundation Model verwenden.
- Mit der Feinabstimmung können Sie die Genauigkeit weiter verbessern, wenn Sie mehr und mehr Trainingsdaten zur Verfügung stellen.
Methoden zum Training von generativer KI
Die von Ihnen gewählte Trainingsmethode hängt davon ab, wie viele Dokumente Ihnen zur Verfügung stehen und wie viel Zeit Sie für das Training Ihres Modells aufwenden können. Es gibt drei Möglichkeiten, ein Modell für generative KI zu trainieren:
Trainingsmethode | Zero-Shot | Few-Shot | Optimierung |
---|---|---|---|
Genauigkeit | Mittel | Mittelhoch | Hoch |
Aufwand | Niedrig | Niedrig | Mittel |
Empfohlene Anzahl von Trainingsdokumenten | 0 | 5 bis 10 | 10 bis 50 oder mehr |
Benutzerdefinierte Modellversionen für Extrahierer
Die folgenden Modelle sind für benutzerdefinierte Extraktoren verfügbar. Informationen zum Ändern von Modellversionen finden Sie unter Prozessorversionen verwalten.
Version 1.0 und 1.3 unterstützen Konfidenzwerte, Versionen 1.1 und 1.2 hingegen nicht.
Modellversion | Beschreibung | Stabile Version | ML-Verarbeitung in den USA und der EU | Feinabstimmung in den USA/EU | Releasedatum |
---|---|---|---|---|---|
pretrained-foundation-model-v1.0-2023-08-22 |
Produktionsreife Lösung, die auf Dokumenten-Anwendungsfälle spezialisiert ist und auf speziellen Vision- und Foundation-Modellen basiert. |
Ja | Nein | Nur in den USA (GA) | 9. Januar 2024 |
pretrained-foundation-model-v1.1-2024-03-12 |
Release-Kandidat mit dem LLM Gemini 1.0 Pro und neu entwickelten Technologien, einschließlich spezieller Sprach- und Visionsmodelle. Diese und spätere Versionen enthalten erweiterte OCR-Funktionen wie die Kästchenerkennung. Empfohlen, wenn Sie die erhöhten Tokenlimits verwenden oder mit neueren Modellen experimentieren möchten. |
Nein | Ja | USA, EU (Vorabversion) | 3. Mai 2024 |
pretrained-foundation-model-v1.2-2024-05-10 |
Produktionsreife Version, die auf dem LLM Gemini 1.5 Pro und neu entwickelten Technologien basiert, einschließlich spezieller Sprach- und Visionsmodelle. Empfohlen für die beste Qualität, die größten unterstützten Tokenlimits, die beste Qualität bei der Identifizierung von Entitäten oder das Testen neuerer Modelle. |
Ja | Ja | USA, EU (Vorabversion) | 27. Mai 2024 |
pretrained-foundation-model-v1.3-2024-08-31 |
Produktionsreife Version mit dem Gemini 1.5 Flash-LLM. Empfohlen für Nutzer, die die niedrigste Latenz wünschen. | Ja | Ja | USA, EU (Vorabversion) | 23. August 2024 |
Weitere Informationen zum Ändern der Prozessorversion in Ihrem Projekt finden Sie unter Prozessorversionen verwalten.
Vorbereitung
Aktivieren Sie die Abrechnung und die Document AI APIs, falls Sie dies noch nicht getan haben.
Generatives KI-Modell erstellen und bewerten
Erstellen Sie einen Prozessor und definieren Sie die Felder, die Sie gemäß den Best Practices extrahieren möchten. Das ist wichtig, da sich dies auf die Qualität der Extraktion auswirkt.
- Gehen Sie zu Workbench > Benutzerdefinierter Extractor > Prozessor erstellen > Namen zuweisen.
- Klicken Sie auf Jetzt starten > Neues Feld erstellen.
Dokumente importieren
- Importieren Sie Dokumente mit automatischem Labeling und weisen Sie sie dem Trainings- und Testset zu.
- Für Zero-Shot-Lernen ist nur das Schema erforderlich. Zur Bewertung der Genauigkeit des Modells ist nur ein Test-Set erforderlich.
- Für den Modus „Wenig Daten“ empfehlen wir fünf Trainingsdokumente.
- Die Anzahl der erforderlichen Testdokumente hängt vom Anwendungsfall ab. Im Allgemeinen gilt: Je mehr Testdokumente, desto besser.
- Bestätigen oder bearbeiten Sie die Labels im Dokument.
Modell trainieren:
- Wählen Sie Build und dann Neue Version erstellen aus.
- Geben Sie einen Namen ein und wählen Sie Erstellen aus.
Bewertung:
- Klicken Sie auf Bewerten und testen, wählen Sie die Version aus, die Sie gerade trainiert haben, und dann Vollständige Bewertung ansehen.
- Jetzt sehen Sie Messwerte wie F1, Genauigkeit und Trefferquote für das gesamte Dokument und jedes Feld.
- Entscheiden Sie, ob die Leistung Ihre Produktionsziele erfüllt. Falls nicht, bewerten Sie die Trainings- und Testsätze noch einmal.
So legen Sie eine neue Version als Standard fest:
- Gehen Sie zu Versionen verwalten.
- Maximieren Sie die Optionen und wählen Sie dann Als Standard festlegen aus.
Ihr Modell wird jetzt bereitgestellt. Für an diesen Prozessor gesendete Dokumente wird Ihre benutzerdefinierte Version verwendet. Sie können die Modellleistung bewerten, um zu prüfen, ob es noch einmal trainiert werden muss.
Referenz für die Bewertung
Die Bewertungs-Engine kann sowohl eine genaue Übereinstimmung als auch eine sich annähernde Übereinstimmung durchführen. Bei einer genauen Übereinstimmung muss der extrahierte Wert genau mit der Ground Truth übereinstimmen. Andernfalls wird er als Fehlschlag gezählt.
Ergebnisse der Fuzzy-Übereinstimmung, die geringfügige Unterschiede aufweisen, z. B. in der Groß- und Kleinschreibung, werden trotzdem als Übereinstimmung gezählt. Das kann auf dem Bildschirm Bewertung geändert werden.
Optimierung
Bei der Feinabstimmung werden Hunderte oder Tausende von Dokumenten für das Training verwendet.
Erstellen Sie einen Prozessor und definieren Sie die Felder, die Sie gemäß den Best Practices extrahieren möchten. Das ist wichtig, da sich dies auf die Qualität der Extraktion auswirkt.
Importieren Sie Dokumente mit automatischem Labeling und weisen Sie sie dem Trainings- und Testset zu.
Bestätigen oder bearbeiten Sie die Labels im Dokument.
Modell trainieren.
- Wählen Sie den Tab Erstellen und dann Neue Version erstellen aus.
Testen Sie die Standardtrainingsparameter oder -werte. Wenn die Ergebnisse nicht zufriedenstellend sind, können Sie die folgenden erweiterten Optionen ausprobieren:
Trainingsschritte (zwischen 100 und 400): Hiermit wird festgelegt, wie oft die Gewichte während der Optimierung auf einem Datensatz optimiert werden.
- Ein zu niedriger Wert bedeutet ein Risiko, dass das Training vor der Konvergenz endet (Unteranpassung).
- Ist der Wert zu hoch, sieht das Modell möglicherweise während des Trainings mehrmals denselben Datensatz, was zu einer Überanpassung führen kann.
- Weniger Schritte führen zu einer kürzeren Trainingsdauer. Höhere Werte können bei Dokumenten mit wenig Vorlagenvariation hilfreich sein (und niedrigere Werte bei Dokumenten mit mehr Variation).
Lernratenmultiplikator (zwischen 0,1 und 10): Damit wird gesteuert, wie schnell die Modellparameter anhand der Trainingsdaten optimiert werden. Sie entspricht ungefähr der Größe der einzelnen Trainingsschritte.
- Niedrige Raten bedeuten kleine Änderungen an den Modellgewichten bei jedem Trainingsschritt. Ist der Wert zu niedrig, konvergiert das Modell möglicherweise nicht zu einer stabilen Lösung.
- Hohe Raten deuten auf große Änderungen hin. Zu hohe Raten können bedeuten, dass das Modell die optimale Lösung überspringt und stattdessen zu einer suboptimalen Lösung konvergiert.
- Die Trainingsdauer wird nicht durch die Auswahl der Lernrate beeinflusst.
Geben Sie einen Namen ein, wählen Sie die erforderliche Basisprozessorversion aus und klicken Sie auf Erstellen.
Bewertung: Klicken Sie auf Bewerten und testen, wählen Sie die Version aus, die Sie gerade trainiert haben, und dann Vollständige Bewertung ansehen.
- Jetzt sehen Sie Messwerte wie F1, Genauigkeit und Trefferquote für das gesamte Dokument und jedes Feld.
- Entscheiden Sie, ob die Leistung Ihre Produktionsziele erfüllt. Falls nicht, sind möglicherweise weitere Schulungsdokumente erforderlich.
So legen Sie eine neue Version als Standard fest:
- Gehen Sie zu Versionen verwalten.
- Maximieren Sie die Optionen und wählen Sie Als Standard festlegen aus.
Ihr Modell wird jetzt bereitgestellt und Dokumente, die an diesen Prozessor gesendet werden, verwenden jetzt Ihre benutzerdefinierte Version. Sie möchten die Modellleistung bewerten, um zu prüfen, ob es noch einmal trainiert werden muss.
Automatisches Labeling mit dem Basismodell
Mit dem Basismodell lassen sich Felder für eine Vielzahl von Dokumenttypen präzise extrahieren. Sie können jedoch auch zusätzliche Trainingsdaten bereitstellen, um die Genauigkeit des Modells für bestimmte Dokumentstrukturen zu verbessern.
Document AI verwendet die von Ihnen definierten Labelnamen und vorherigen Anmerkungen, um Dokumenten in großem Umfang mithilfe des automatischen Labels schneller und einfacher Labels hinzuzufügen.
- Wenn Sie einen benutzerdefinierten Prozessor erstellt haben, rufen Sie den Tab Jetzt starten auf.
- Wählen Sie Neues Feld erstellen aus.
Geben Sie dem Label einen aussagekräftigen, eindeutigen Namen. Dadurch werden die Genauigkeit und Leistung des Foundation-Modells verbessert.
Um die Genauigkeit und Leistung der Extraktion zu verbessern, fügen Sie eine Beschreibung für die Arten von Entitäten hinzu, die erfasst werden sollen. Sie können beispielsweise zusätzlichen Kontext, Statistiken und Vorwissen für jede Entität angeben.
Rufen Sie den Tab Build auf und wählen Sie Dokumente importieren aus.
Wählen Sie den Pfad der Dokumente und den Satz aus, in den die Dokumente importiert werden sollen. Aktivieren Sie die Option für das automatische Labeling und wählen Sie das Basismodell aus.
Wählen Sie auf dem Tab Erstellen die Option Dataset verwalten aus.
Wählen Sie eines der importierten Dokumente aus.
Die Vorhersagen des Modells sind jetzt lila hervorgehoben.
- Prüfen Sie jedes vom Modell vorhergesagte Label und achten Sie darauf, dass es korrekt ist.
Fügen Sie fehlende Felder hinzu.
Wenn Sie das Dokument überprüft haben, wählen Sie Als „Mit Label versehen“ markieren aus. Das Dokument kann jetzt vom Modell verwendet werden.
Das Dokument muss sich im Test- oder Trainings-Dataset befinden.
Dreistufige Verschachtelung
Der benutzerdefinierte Extrahierer bietet jetzt drei Verschachtelungsebenen. Diese Funktion ermöglicht eine bessere Extraktion komplexer Tabellen.
Sie können den Modelltyp mit den folgenden API-Aufrufen ermitteln:
Die Antwort ist ein ProcessorVersion
, das in der v1beta3-Vorabversion das Feld modelType
enthält.
Vorgang und Beispiel
Wir verwenden dieses Beispiel:
Wählen Sie Jetzt starten aus und erstellen Sie ein Feld:
- Erstellen Sie die oberste Ebene.
- In diesem Beispiel wird
officer_appointments
verwendet. - Wählen Sie Dies ist ein übergeordnetes Label aus.
- Wählen Sie Vorkommen aus:
Optional multiple
.
Wählen Sie Untergeordnetes Feld hinzufügen aus. Das Label der zweiten Ebene kann jetzt erstellt werden:
- Erstellen Sie für diese Ebene das Label
officer
. - Wählen Sie Dies ist ein übergeordnetes Label aus.
- Wählen Sie Vorkommen aus:
Optional multiple
.
- Erstellen Sie für diese Ebene das Label
Wählen Sie auf der zweiten Ebene
officer
die Option Untergeordnetes Feld hinzufügen aus. Erstellen Sie untergeordnete Labels für die dritte Verschachtelungsebene.Wenn Ihr Schema festgelegt ist, können Sie mithilfe der automatischen Labelerstellung Vorhersagen für Dokumente mit drei Verschachtelungsebenen erhalten.
Dataset-Konfiguration
Zum Trainieren, Aktualisieren oder Bewerten einer Prozessorversion ist ein Dokumenten-Dataset erforderlich. Document AI-Prozessoren lernen genau wie Menschen anhand von Beispielen. Der Datensatz trägt zur Stabilität des Prozessors bei.Trainings-Dataset
Trainieren Sie einen Datensatz mit Ihren Dokumenten, um das Modell und seine Genauigkeit zu verbessern. Das Modell besteht aus Dokumenten mit Ground-Truth-Daten.- Für die Feinabstimmung benötigen Sie mindestens 10 Dokumente, um ein neues Modell mit Version
pretrained-foundation-model-v1.0-2023-08-22
zu trainieren, 16 für Versionpretrained-foundation-model-v1.1-2024-03-12
und 1 Dokument fürpretrained-foundation-model-v1.2-2024-05-10
undpretrained-foundation-model-v1.3-2024-08-31
. - Für Few-Shot-Modelle werden fünf Dokumente empfohlen.
- Für Zero-Shot-Lernen ist nur ein Schema erforderlich.
Test-Dataset
Anhand des Test-Datasets generiert das Modell einen F1-Wert (Genauigkeit). Sie besteht aus Dokumenten mit Ground Truth. Um zu sehen, wie oft das Modell richtig liegt, werden die Vorhersagen des Modells (aus dem Modell extrahierte Felder) mit den richtigen Antworten verglichen. Der Testdatensatz sollte mindestens 10 Dokumente für die Feinabstimmung von Versionpretrained-foundation-model-v1.0-2023-08-22
, 16 Dokumente für Version pretrained-foundation-model-v1.1-2024-03-12
und 1 Dokument für pretrained-foundation-model-v1.2-2024-05-10
und pretrained-foundation-model-v1.3-2024-08-31
enthalten.
Benutzerdefinierter Extrahierer mit Hotelbeschreibungen
Mithilfe von Property-Beschreibungen können Sie ein Modell trainieren, indem Sie die beschrifteten Felder beschreiben. Sie können für jede Entität zusätzlichen Kontext und Statistiken angeben. So kann das Modell durch Abgleich von Feldern, die der von Ihnen angegebenen Beschreibung entsprechen, trainiert werden und die Genauigkeit der Extraktion verbessern. Unterkunftsbeschreibungen können sowohl für übergeordnete als auch für untergeordnete Entitäten angegeben werden.
Gute Beispiele für Property-Beschreibungen sind Standortinformationen und Textmuster der Property-Werte, die dazu beitragen, potenzielle Quellen von Unklarheiten im Dokument zu beseitigen. Anhand klarer und präziser Property-Beschreibungen werden dem Modell Regeln zugewiesen, die für zuverlässigere und konsistentere Extraktionen sorgen, unabhängig von der spezifischen Dokumentstruktur oder Inhaltsvariationen.
Dokumentschema für einen Abwickler aktualisieren
Weitere Informationen zum Festlegen der Property-Beschreibungen finden Sie unter Dokumentschema aktualisieren.
Verarbeitungsanfrage mit Hotelbeschreibungen senden
Wenn für das Dokumentschema bereits Beschreibungen festgelegt sind, können Sie eine Verarbeitungsanfrage senden. Folgen Sie dazu der Anleitung unter Verarbeitungsanfrage senden.
Prozessor mithilfe von Property-Beschreibungen optimieren
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Standort des Prozessors, z. B.:
us
– USAeu
– Europäische Union
- PROJECT_ID: Die Projekt-ID Ihres Google Cloud -Abos.
- PROCESSOR_ID: Die ID des benutzerdefinierten Prozessors.
- DISPLAY_NAME: Anzeigename für den Prozessor.
- PRETRAINED_PROCESSOR_VERSION: die Prozessorversion. Weitere Informationen finden Sie unter Prozessorversion auswählen. Beispiel:
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- TRAIN_STEPS: Trainingsschritte für die Modelloptimierung.
- LEARN_RATE_MULTIPLIER: Lernratenmultiplikator für die Modelloptimierung.
- DOCUMENT_SCHEMA: Schema für den Prozessor. Weitere Informationen finden Sie unter Darstellung von DocumentSchema.
HTTP-Methode und URL:
POST https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process
JSON-Text der Anfrage:
{ "rawDocument": { "parent": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID", "processor_version": { "name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/DISPLAY_NAME", "display_name": "DISPLAY_NAME", "model_type": "MODEL_TYPE_GENERATIVE", }, "base_processor_version": "projects/PROJECT_ID/locations/us/processors/PROCESSOR_ID/processorVersions/PRETRAINED_PROCESSOR_VERSION", "foundation_model_tuning_options": { "train_steps": TRAIN_STEPS, "learning_rate_multiplier": LEARN_RATE_MULTIPLIER, } "document_schema": DOCUMENT_SCHEMA } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process" | Select-Object -Expand Content
Nächste Schritte
Spezialprozessor weiter trainieren