- Erste Schritte
- Framework-Komponenten
- Übersicht zur Dokumentklassifizierung
- „Klassifizierer konfigurieren“-Assistent von Classify Document Scope
- Schlüsselwortbasierte Classifier (Keyword Based Classifier)
- Intelligenter Schlüsselwortklassifizierer
- FlexiCapture Classifier
- Machine Learning Classifier
- Dokumentklassifizierung – verwandte Aktivitäten
- ML-Pakete
- Pipelines
- Data Manager
- OCR-Dienste
- Document Understanding – in der Automation Suite bereitgestellt
- Document Understanding – im eigenständigen AI Center bereitgestellt
- Deep Learning
- Training von leistungsstarken Modellen
- Lizenzierung
- Referenzen
- UiPath.Abbyy.Activities
- UiPath.AbbyyEmbedded.Activities
- UiPath.DocumentUnderstanding.ML.Activities
- UiPath.DocumentUnderstanding.OCR.LocalServer.Activities
- UiPath.IntelligentOCR.Aktivitäten (UiPath.IntelligentOCR.Activities)
- UiPath.OCR.Activities
- UiPath.OCR.Contracts
- UiPath.DocumentProcessing.Contracts
- UiPath.Omnipage.Activities
- UiPath.PDF.Aktivitäten (UiPath.PDF.Activities)
Die Leistungsfähigkeit von Machine Learning-Modellen besteht darin, dass sie durch Trainingsdaten und nicht durch explizite Logik im Computercode definiert werden. Das bedeutet, dass bei der Vorbereitung von Datasets eine besondere Vorsicht geboten ist, da ein Modell nur so gut ist wie das Dataset, mit dem es trainiert wurde. Während also UiPath Studio für RPA-Workflows zuständig ist, dient der Data Manager für Machine Learning. Beide erfordern für einen effektiven Einsatz ein gewisses Maß an Erfahrung.
Was kann ein ML-Modell zur Datenextraktion tun?
Ein ML-Modell kann Daten aus einem einzelnen Dokumenttyp extrahieren, obwohl es mitunter in mehreren verschiedenen Sprachen verfasst ist. Es ist wichtig, dass jedes Feld (Gesamtbetrag, Datum usw.) stets dieselbe Bedeutung hat. Wenn es für einen Menschen nicht eindeutig ist, wird es auch das ML-Modell unklar sein.
Manchmal ist nicht alles so eindeutig. Ist z. B. eine Betriebskostenabrechnung eine von vielen Rechnungsarten? Oder sind es zwei verschiedene Dokumenttypen, die zwei verschiedene ML-Modelle erfordern? Wenn die Felder, die Sie extrahieren müssen, identisch sind (d. h. sie haben die gleiche Bedeutung), können Sie sie als einzelnen Dokumenttyp behandeln. Wenn Sie jedoch aus unterschiedlichen Gründen (unterschiedliche Geschäftsprozesse) unterschiedliche Felder extrahieren müssen, ist das ein Hinweis darauf, dass Sie sie möglicherweise als zwei verschiedene Dokumenttypen behandeln und daher zwei verschiedene Modelle trainieren sollten.
Wenn Sie sich unsicher sind, beginnen Sie mit dem Training als ein Modell. Halten Sie die Dokumente jedoch in verschiedenen Data Manager-Batches getrennt (siehe „Filter“ oben in der Mitte der Data Manager-Ansicht), sodass Sie sie bei Bedarf später einfach trennen können. Auf diese Weise geht der Beschriftungs-Fortschritt nicht verloren. Bei ML-Modellen gilt: je mehr Daten, desto besser. Ein einzelnes Modell mit ausreichend Daten ist also ein guter Anfang.
Trainings- und Auswertungs-Datasets
Der Data Manager kann verwendet werden, um zwei Arten von Datasets zu erstellen: Trainings-Datasets und Auswertungs-Datasets. Beide sind für die Erstellung eines leistungsstarken ML-Modells unerlässlich. Sie müssen Zeit und Aufwand für die Erstellung und Pflege von beiden budgetieren. Sie bekommen kein leistungsstarkes ML-Modell ohne ein Auswertungs-Dataset, das für den Datenverkehr des Produktionsdokuments repräsentativ ist.
Jeder -Typ wird auf eine andere Weise beschriftet:
-
Trainings-Datasets basieren nur auf den Begrenzungsfeldern der Wörter auf der Seite, die die verschiedenen Informationen darstellen, die Sie extrahieren müssen.
Bei der Beschriftung eines Trainingssatzes konzentrieren Sie sich nur auf die Seite selbst und die Wortfelder.
-
Auswertungs-Datasets nutzen nur die Werte der Felder, die in der Seitenleiste (für reguläre Felder) oder in der oberen Leiste (für Spaltenfelder) angezeigt werden.
Bei der Beschriftung eines Auswertungssatzes konzentrieren Sie sich auf die Werte unter den Feldnamen in der Seitenleiste oder in der oberen Leiste. Das bedeutet nicht, dass Sie sie manuell eingeben müssen, was anfällig für Fehler ist. Daher wird weiterhin empfohlen, sie durch Anklicken der Felder auf der Seite zu beschriften. Stellen Sie jedoch sicher, dass die Werte korrekt sind.
Ausführliche Informationen zur Durchführung der richtigen Auswertungen finden Sie unten.
Komponenten der Datenextraktion
Die Datenextraktion basiert auf den folgenden Komponenten:
-
Optical Character Recognition (OCR)
-
Erkennen von Wörtern und Zeilen
Die Gruppierung von Zeichen zu Wörtern und Wörter zu Textzeilen von links nach rechts
-
Vorhersage des Machine Learning-Modells für jedes Wort/Feld auf der Seite
-
Bereinigung, Analyse und Formatierung der Textabschnitte
Zum Beispiel Gruppieren von Wörtern auf mehreren Zeilen in eine Adresse, Formatieren eines Datums in das Standardformat yyyy-mm-dd
-
Anwenden eines Algorithmus zur Auswahl, welcher Wert zurückgegeben wird
Für die Fälle, in denen das Dokument 2 oder mehr Seiten hat und einige Felder auf mehreren Seiten vorkommen
Erstellen eines leistungsstarken ML-Modells
Um das beste Ergebnis in Bezug auf die Automatisierungsrate zu erzielen (prozentuale Verringerung der manuellen Arbeitszeit in Monaten pro Jahr, die für die Verarbeitung Ihres Dokumentflusses erforderlich sind), müssen Sie die folgenden Schritte sorgfältig ausführen:
1. Ein OCR-Modul wählen
Dies beeinflusst sowohl die OCR als auch die Erkennung von Wörtern und Zeilen (was teilweise von der OCR abhängt) und natürlich alles darauf Folgende.
Um eine OCR-Engine auszuwählen, müssen Sie unterschiedliche Data Manager-Sitzungen erstellen, verschiedene OCR-Engines konfigurieren und versuchen, dieselben Dateien in jede von ihnen zu importieren, um Unterschiede zu untersuchen. Sie sollten sich auf die Bereiche konzentrieren, die Sie extrahieren möchten. Wenn Sie beispielsweise Firmennamen extrahieren müssen, die Teil von Logos auf Rechnungen sind, interessiert Sie vielleicht, welche OCR-Engine mit dem Text in Logos besser umgehen kann.
Ihre Standardoption sollte UiPath Dokument OCR sein, da es kostenlos in Document Understanding-Lizenzen enthalten ist. In Fällen, in denen jedoch einige nicht unterstützte Sprachen erforderlich sind oder einige sehr schwer lesbare Dokumente beteiligt sind, könnten sich die Google Cloud (nur Cloud) oder Microsoft Read (Cloud oder lokal) als hilfreich erweisen, da sie eine bessere Sprachunterstützung haben. Diese Engines kosten etwas (allerdings nicht viel), es wird jedoch dringend empfohlen, die besten verfügbaren OCR zu verwenden, wenn eine höhere Genauigkeit bei einigen kritischen Datenfeldern für Ihren Geschäftsprozess erforderlich ist – sie können sich später als überaus nützlich erweisen, da alle Folgeprozesse davon abhängen.
Please be aware that the Digitize Document activity has the ForceApplyOCR setting set to False by default, which means when operating on .pdf documents by default the OCR engine is not used at all, the text is extracted directly from the .pdf document itself in the case of native .pdf documents. However, many native .pdf documents may contain logos or even headers or footers which are not picked up. These may contain the identifying information of the company, such as its name, address, VAT code or payment information, which is highly relevant in business processes. If your process has this situation, then set ForceApplyOCR to True to ensure that all text is detected, though it might slow down your process.
2. Ein Trainings-Dataset erstellen
Machine Learning-Technologie ist vor allem zur Lösung komplexer, vielfältiger Probleme hilfreich. Bei der Schätzung der Größe eines Trainings-Datasets wird zuerst die Anzahl der Felder und deren Typen sowie die Anzahl der Sprachen betrachtet. Ein einzelnes Modell kann mehrere Sprachen verarbeiten, solange sie nicht Chinesisch/Japanisch/Koreanisch sind. In diesen Fällen sind grundsätzlich eigene Trainings-Datasets und Modelle erforderlich.
Es gibt 3 Arten von Feldern:
- Regular fields (date, total amount) For Regular fields, you need at least 20-50 samples per field. So, if you need to extract 10 regular fields, you would need at least 200-500 samples. If you need to extract 20 regular fields, you would need at least 400-1000 samples. The amount of samples you need increases with the number of fields. More fields means you need more samples, about 20-50X more.
- Column fields (item unit price, item quantity) For Column fields, you need at least 50-200 samples per column field, so for 5 column fields, with clean and simple layouts you might get good results with 300 samples, but for highly complex and diverse layouts, it might require over 1000. To cover multiple languages, then you need at least 200-300 samples per language assuming they cover all the different fields. So, for 10 header fields and 4 column fields with 2 languages, 600 samples might be enough (400 for the columns and headers plus 200 for the additional language), but in some cases might require 1200 or more.
- Classification fields (currency) Classification fields generally require at least 10-20 samples from each class.
Die obigen Hinweise gelten für ein Szenario mit hoher Vielfalt (mit Rechnungen oder Bestellungen mit Dutzenden bis Hunderten oder Tausenden von Layouts). Wenn Sie ein Szenario mit geringer Vielfalt behandeln, z. B. ein Steuerformular oder Rechnungen mit sehr wenigen Layouts (unter 5–10), dann wird die Dataset-Größe stärker durch die Anzahl der Layouts bestimmt. In diesem Fall sollten Sie mit 20–30 Seiten pro Layout beginnen und bei Bedarf weitere hinzufügen – insbesondere dann, wenn die Seiten sehr dicht beschrieben sind (d. .h eine große Anzahl von zu extrahierenden Feldern aufweisen). Zum Beispiel kann das Erstellen eines Modells zum Extrahieren von 10 Feldern aus 2 Layouts 60 Seiten erfordern, aber wenn Sie 50 oder 100 Felder aus 2 Layouts extrahieren müssen, dann können Sie mit 100 oder 200 Seiten beginnen und nach Bedarf mehr hinzufügen, um die gewünschte Genauigkeit zu erzielen. In diesem Fall ist die Unterscheidung regulärer Felder/Spaltenfelder weniger wichtig.
Machine Learning wurde für unterschiedliche Szenarien entwickelt. Um Modelle mit unterschiedlichsten Szenarien (1–10 Layouts) zu trainieren, ist eine besondere Vorsicht erforderlich, um überempfindliche Modelle zu vermeiden, die auf geringfügige Änderungen des OCR Textes reagieren. Eine Möglichkeit, dies zu vermeiden, besteht darin, sicherzustellen, dass die Trainingsdokumente eine bewusste Variabilität aufweisen. Dazu werden sie ausgedruckt und mithilfe von Handy-Scanner-Apps gescannt oder fotografiert. Leichte Verzerrungen oder unterschiedliche Auflösungen machen das Modell robuster.
Zudem gehen diese Schätzungen davon aus, dass die meisten Seiten alle oder die meisten Felder enthalten. In Fällen, in denen Sie Dokumente mit mehreren Seiten haben, die meisten Felder aber auf einer einzigen Seite sind, dann entspricht die Anzahl von Seiten der Anzahl der Beispiele dieser einen Seite, auf der die meisten Felder erscheinen.
Die obigen Zahlen sind allgemeine Werte zur Orientierung, keine strikten Anforderungen. Im Allgemeinen können Sie mit einem kleineren Dataset beginnen und dann weiter Daten hinzufügen, bis Sie eine gute Genauigkeit erhalten. Dies ist besonders nützlich, um die RPA mit der Modellerstellung zu parallelisieren. Außerdem kann eine erste Version des Modells verwendet werden, um zusätzliche Daten vorzubeschriften (siehe Ansicht Einstellungen und Schaltfläche Vorhersage im Data Manager), was die Beschriftung zusätzlicher Trainingsdaten beschleunigen kann.
Deep-Learning-Modelle können verallgemeinern
Nicht jedes einzelne Layout muss in einem Trainingssatz dargestellt werden. Tatsächlich ist es möglich, dass die meisten Layouts in unserem Produktions-Dokumentenfluss keine Beispiele in Ihrem Trainingssatz haben oder vielleicht nur 1 oder 2. Das ist wünschenswert, da die Leistungsfähigkeit der KI genutzt werden soll, um die Dokumente zu verstehen und in der Lage zu sein, korrekte Vorhersagen für Dokumente zu treffen, die sie während des Trainings nicht gesehen hat. Eine große Anzahl von Beispielen pro Layout ist nicht obligatorisch, da die meisten Layouts entweder überhaupt nicht oder nur 1- oder 2-mal vorhanden sind und das Modell basierend auf dem Lernen von anderen Layouts weiterhin korrekt vorhersagen kann.
Training über ein sofort einsetzbares Modell
Eine allgemeine Situation ist das Extrahieren von Daten aus Rechnungen, aber Sie haben auch 2 weitere reguläre Felder und 1 weiteres Spaltenfeld, das das out-of-the-box Modell „Invoices“ nicht erkennt. In diesem Fall benötigen Sie einen Trainingssatz mit 50 Beispielen pro neuem regulären Feld und mindestens 100 Beispielen pro neuem Spaltenfeld. 200 Seiten sind also ein guter Anfang. Dies ist normalerweise ein viel kleineres Dataset, als wenn Sie alle Felder von Grund auf trainiert haben.
Diese 200 Seiten müssen vollständig beschriftet werden, einschließlich der neuen Felder, die das out-of-the-box Modell nicht erkennt, und der restlichen Felder, die das out-of-the-box Modell erkennt.
Ungleiche Feldvorkommen
Einige Felder können in jedem Dokument vorkommen (z. B. Datum, Rechnungsnummer), während einige Felder möglicherweise nur auf 10 % der Seiten erscheinen (z. B. Bearbeitungskosten, Versand). In diesen Fällen müssen Sie eine Geschäftsentscheidung treffen. Wenn diese seltenen Felder für Ihre Automatisierung nicht wichtig sind, kann eine kleine Anzahl von Beispielen (10–15) dieses bestimmten Felds reichen, d. h. Seiten, die einen Wert für dieses Feld enthalten. Wenn diese Felder jedoch kritisch sind, müssen Sie sicherstellen, dass Sie in Ihrem Trainingssatz mindestens 30–50 Beispiele dieses Felds angeben, um sicherzustellen, dass die gesamte Vielfalt abgedeckt wird.
Ausgewogene Datasets
Wenn ein Dataset Rechnungen von 100 Anbietern enthält, aber die Hälfte des Datasets nur aus Rechnungen von 1 einzigen Anbieter besteht, dann ist dies ein sehr unaustariertes Dataset. In einem perfekt ausgewogenen Dataset erscheint jeder Anbieter gleich oft. Datasets müssen nicht perfekt austariert sein, aber Sie sollten vermeiden, mehr als 20 % Ihres gesamten Datasets von einem einzigen Anbieter zu kommen. Irgendwann hilft ein Mehr an Daten nicht mehr und wirkt sich möglicherweise sogar auf die Genauigkeit bei anderen Anbietern aus, da das Modell zu sehr für einen Anbieter optimiert wird (overfit).
Repräsentative Datasets
Data should be chosen to cover the diversity of the documents likely to be seen in the production workflow. For example, if you get invoices in English but some of them come from the US, India and Australia, they will likely look different, so you need to make sure you have samples from all three. This is relevant not only for the model training itself, but also for labeling purposes because as you label the documents you might discover that you need to extract new, different fields from some of these regions, like GSTIN code from India, or ABN code from Australia. See more in the Define fields section.
3. Ein Auswertungs-Dataset erstellen
Während bei Trainingssätzen die Seiten und die Anzahl der Seiten die wichtigsten sind, beziehen wir uns bei Auswertungssätzen nur auf Dokumente und die Anzahl der Dokumente. Die Ergebnisse für Versionen 2021.10 und höher werden pro Dokument berechnet.
Auswertungsdatensätze können kleiner sein. Sie können 50–100 Dokumente umfassen (oder sogar nur 30–50 bei geringer Vielfalt) und sie können im Laufe der Zeit auf einige hundert Dokumente wachsen. Es ist wichtig, dass sie für den Produktionsdatenfluss repräsentativ sind. Ein guter Ansatz besteht also darin, zufällig aus den im RPA-Workflow verarbeiteten Dokumenten auszuwählen. Auch wenn einige Anbieter überrepräsentiert werden, ist das in Ordnung. Wenn z. B. ein einzelner Anbieter 20 % Ihres Rechnungsdatenverkehrs ausmacht, ist es in Ordnung, dass dieser Anbieter auch 20 % Ihrer Auswertungssätze ausmacht, sodass die Auswertungsmetriken Ihrer Geschäftsmetrik entsprechen, d. h. der Verringerung der Arbeitszeit in Monaten, die für die manuelle Dokumentenverarbeitung aufgewendet wird.
Beim Importieren von Auswertungsdaten in den Data Manager müssen Sie sicherstellen, dass Sie im Dialogfenster für den Import das Kontrollkästchen Zu einem Auswertungssatz machen aktivieren. Auf diese Weise gewährleisten Sie, dass die Daten beim Training herausgehalten werden. Sie können sie auch einfach für die Ausführung von Auswertungen exportieren, indem Sie die Auswertungssatzoption im Dropdownmenü für Filter im Data Manager verwenden.
Starting with the 21.9 Preview release in Automation Cloud and the 21.10 GA On Premises release, Data Manager has switched to handling multi-page documents rather than each page as a separate entity as was the case previously. This is a major change, especially for Evaluations, which were its main motivation. Evaluations need to be representative of the runtime process, and at runtime multipage documents are processed as a whole, rather than as separate pages. To benefit from this enhancement in ML Packages with version 21.10 or later, you just need to leave the "Backward compatible export" box unchecked in the Export dialog. If you check this box, the dataset will be exported in the old page-by-page way, and evaluation scores will not be as representative of the runtime performance.
4. Felder definieren
Wie Felder definiert werden, muss mit dem/der Zuständigen für das jeweilige Thema besprochen werden. Bei Rechnungen etwa ist der Zuständige für Konten mit Fähigkeiten. Das zu besprechen ist äußerst wichtig. Es muss vor der Beschriftung von Dokumenten erfolgen, um Zeitverschwendung zu vermeiden und erfordert zusammen mindestens 20 zufällig ausgewählte Dokumentenbeispiele. Dafür muss ein Ein-Stunden-Slot reserviert werden, der oft nach ein paar Tagen wiederholt werden muss, wenn die Person, die die Daten vorbereitet, mehrdeutige Situationen oder Randfälle erlebt.
Nicht selten wird am Anfang angenommen, dass 10 Felder extrahiert werden müssen, am Ende sind es aber 15. Einige Beispiele werden in den Unterabschnitten unten beschrieben.
Einige wichtige Konfigurationen, die Sie kennen müssen:
-
Inhaltstyp
This is the most important setting as it determines the postprocessing of the values, especially for dates (detects if the format is US-style or non-US style, and then formats them as yyyy-mm-dd) and for numbers (detects the decimal separator – comma or period). ID numbers clean up anything coming before a colon or hash symbol. String content type performs no cleanup and can be used when you want to do your own parsing in the RPA workflow.
-
Mehrzeiliges Kontrollkästchen
Dies ist zum Analysieren von Zeichenfolgen wie Adressen, die sich auf mehrere Zeilen erstrecken können.
-
Ausgeblendete Felder
Felder, die als ausgeblendet markiert sind, können beschriftet werden, werden aber beim Exportieren von Daten zurückgehalten, sodass das Modell nicht darauf trainiert wird. Dies ist praktisch, wenn die Beschriftung eines Felds ausgeführt wird, wenn es zu selten ist oder wenn es eine geringe Priorität hat.
-
Punktzahl
This is relevant only for Evaluation pipelines, and it affects how the accuracy score is calculated. A field that uses Levenshtein scoring is more permissive: if a single character out of 10 is wrong, the score will be 0.9. However, if scoring is Exact Match it is more strict: a single character wrong will lead to a score of zero. All fields are by default Exact Match. Only String type fields have the option to select Levenshtein scoring.
Beträge auf Betriebskostenabrechnungen
Ein Gesamtbetrag mag aussagekräftig genug erscheinen, aber Betriebskostenabrechnungen enthalten viele Beträge. Manchmal benötigen Sie den zu zahlenden Gesamtbetrag, andere Male benötigen Sie nur den aktuellen Rechnungsbetrag – ohne die Beträge, die aus früheren Rechnungsperioden übertragen wurden. Im letzteren Fall müssen Sie anders beschriften, auch wenn die aktuelle Rechnung und der Gesamtbetrag identisch sein können. Die Betragsarten unterscheiden sich und die Beträge sind oft unterschiedlich.
Jedes Feld stellt eine andere Betragsart dar und muss so klar und genau wie möglich definiert werden, damit keine Verwirrung entsteht. Wenn es für einen Menschen nicht eindeutig ist, wird es auch das ML-Modell unklar sein.
Moreover, the current bill amount can sometimes be composed of a few different amounts, fees, and taxes and may not appear individualized anywhere on the bill. A possible solution to this is to create two fields: a previous-charges field and a total field. These two always appear as distinct explicit values on the utility bill. Then the current bill amount can be obtained as the difference between the two. You might even want to include all 3 fields (previous-charges,total, and current-charges) in order to be able to do some consistency checks in cases where the current bill amount appears explicitly on the document. So you could go from one to three fields in some cases.
Bestellnummern auf Rechnungen
Auftragsnummern können als einzelne Werte für eine Rechnung angezeigt werden, oder sie erscheinen möglicherweise als Teil der Tabelle der Positionen auf einer Rechnung, bei denen jede Position eine andere Auftragsnummer hat. In diesem Fall könnte es sinnvoll sein, zwei verschiedene Felder zu haben: „po-no“ (Auftragsnummer) und „item-po-no“ (Position Auftragsnummer). Wenn jedes Feld visuell und konzeptionell konsistent bleibt, wird das Modell wahrscheinlich viel besser funktionieren. Sie müssen jedoch sicherstellen, dass beide in Ihren Trainings- und Auswertungs-Datasets gut dargestellt sind.
Lieferantenname und Zahlungsadresse auf Rechnungen
Der Name des Unternehmens steht normalerweise oben auf einer Rechnung oder einer Betriebskostenabrechnung, aber manchmal ist er möglicherweise nicht lesbar, da es nur ein Logo gibt und der Name des Unternehmens nicht explizit ausgeschrieben ist. Der Text könnte auch durch einen Stempel, Handschrift oder Falten verdeckt sein. In diesen Fällen könnte der Name, der unten rechts im Abschnitt mit den Zahlungsinformationen auf der Betriebskostenabrechnung steht, beschriftet werden. Dieser Name ist oft derselbe, aber nicht immer, da es sich um ein anderes Konzept handelt. Zahlungen können an eine Muttergesellschaft, eine Beteiligungsgesellschaft oder ein anderweitig verbundenes Unternehmen mit visuellen Unterschieden auf dem Dokument erfolgen. Dies kann zu einer schlechten Modellleistung führen. In diesem Fall sollten Sie 2 Felder erstellen: Anbietername und Zahlungsadressenname. Dann können Sie beide in einer Anbieterdatenbank überprüfen und den passenden verwenden oder den Zahlungsadressennamen nur verwenden, wenn der Anbietername fehlt.
Tabellenzeilen
Es gibt zwei verschiedene Konzepte zu beachten: Tabellenzeilen und Textzeilen. Eine Tabellenzeile enthält alle Werte aller Spaltenfelder, die in dieser Zeile zusammen gehören. Manchmal sind sie alle Teil derselben Textzeile auf einer Dokumentenseite. Manchmal erstrecken sie sich über mehrere Zeilen.
Wenn eine Tabellenzeile aus mehr als einer Textzeile besteht, müssen Sie alle Werte in dieser Tabellenzeile mit dem Hotkey „/“ gruppieren. Dabei wird ein grünes Feld für die gesamte Tabellenzeile angezeigt. Hier ist ein Beispiel für eine Tabelle, in der die ersten 2 Zeilen aus mehreren Textzeilen bestehen und mit dem Hotkey „/“ gruppiert werden müssen, während die dritte Zeile eine einzelne Textzeile ist und nicht gruppiert werden muss.
Hier ein Beispiel für eine Tabelle, in der jede Tabellenzeile aus einer einzelnen Textzeile besteht. Sie müssen diese nicht mit dem Hotkey „/“ gruppieren, da dies implizit durch den Data Manager geschieht.
Elemente aufteilen
Elemente aufteilen ist eine Einstellung, die nur für Spaltenfelder angezeigt wird, und sie hilft dem Modell zu wissen, wann eine Position endet und eine andere beginnt. Als Mensch, der sich ein Dokument anschaut, um zu sagen, wie viele Zeilen es gibt, schauen Sie wahrscheinlich, wie viele Beträge auf der rechten Seite vorhanden sind. Jeder Betrag bezieht sich im Allgemeinen auf eine Position. Dies ist ein Hinweis darauf, dass der line-amount (Zeilenbetrag) eine Spalte ist, in der Sie Elemente aufteilen aktivieren sollten. Andere Spalten können ebenfalls markiert werden, falls die OCR den Zeilenbetrag verfehlt oder das Modell ihn nicht erkennt: Menge und Stückpreis werden in der Regel auch als „Elemente aufteilen“ markiert.
5. Die Felder konfigurieren
Die wichtigste Konfiguration ist der Inhaltstyp, mit Ausnahme von String:
- Nummer
- Datum
- Telefon
- Identifikationsnummer
Diese wirken sich auf die Nachbearbeitung aus, insbesondere auf die Bereinigung, das Parsen und die Formatierung. Die komplexeste ist die Datumsformatierung, aber auch die Zahlenformatierung erfordert die Bestimmung des Trennzeichens für Dezimalstellen und Tausender. Wenn die Analyse fehlschlägt, besteht in einigen Fällen die Option, das Problem dem Support von UiPath zu melden und auf den Inhaltstyp String zurückzuweisen, der kein Parsen vornimmt. In diesem Fall müssten Sie den Wert in Ihrer RPA-Workflowlogik parsen.
Eine weitere relevante Konfiguration ist das mehrzeilige Kontrollkästchen, das hauptsächlich für String-Typfelder relevant ist. Immer wenn ein anderes Feld unerwartete Ergebnisse oder keine Ergebnisse liefert, müssen Sie zuerst versuchen, es in ein mehrzeiliges String-Feld zu ändern, um die unveränderte Ausgabe der Modellvorhersage anzuzeigen.
6. Das Trainings-Dataset beschriften
Beim Beschriften von Trainingsdaten müssen Sie sich auf die Begrenzungsfelder der Wörter im Dokumentbereich des Data Managers konzentrieren. Die geparsten Werte in den Seitenleisten rechts bzw. oben sind nicht wichtig, da sie nicht für das Training verwendet werden.
Whenever a field appears multiple times on a page, as long as they represent the same concept (see the Define fields section above), all of them should be labeled.
Wenn die OCR ein Wort verpasst oder ein paar Zeichen falsch interpretiert, beschriften Sie einfach das Begrenzungsfeld, wenn es eines gibt. Wenn nicht, überspringen Sie es einfach und fahren Sie fort. Es besteht nicht die Möglichkeit, ein Wort im Data Manager hinzuzufügen, da das Wort auch nach dem Ergänzen zur Laufzeit noch fehlen und das Modell nicht unterstützen würde.
As you label remain vigilant about fields that may have multiple or overlapping meanings/concepts, in case you might need to split a field into two separate fields, or fields that you potentially do not explicitly need, but which, if labeled, might help you to do certain validation or self-consistency check logic in the RPA workflow. Typical examples are quantity,unit-price, and line-amount on invoice line items. Line-amount is the product of quantity and unit-price, but this is very useful to check for consistency without the need for confidence levels.
7. Das Auswertungs-Dataset beschriften
Beim Beschriften von Auswertungs-Datasets (auch Test-Datasets genannt) müssen Sie sich auf etwas konzentrieren, das sich geringfügig von der Beschriftung von Trainings-Datasets unterscheidet. Während bei Trainings-Datasets nur die Begrenzungsfelder der Felder zu Dokument-Datasets verwendet werden, sind für die Auswertungs-Datasets nur die Werte der Felder wichtig. Sie können sie bearbeiten, indem Sie auf den Wert in der rechten oder oberen Seitenleiste klicken und ihn bearbeiten. Um zum automatisch geparsten Wert zurückzukehren, klicken Sie auf das Schlosssymbol.
Zur Vereinfachung, schnelleren Verarbeitung und Vermeidung von Tippfehlern empfehlen wir, beim Beschriften auf die Felder im Dokument zu klicken und lediglich Korrekturen manuell vorzunehmen. Die manuelle Eingabe vollständiger Werte ist langsamer und fehleranfälliger.
8. Das Modell trainieren und auswerten
Der Export des gesamten Datasets, einschließlich Trainings- und Test-Batches, ist zulässig, da die Trainingspipelines im AI Center Testdaten ignorieren. Auswertungspipelines führen die Auswertung jedoch für das gesamte Auswertungs-Dataset aus, unabhängig davon, ob es aus Train- oder Testdaten besteht. Der Typ eines bestimmten Dokuments wird direkt unter dem Dateinamen in der oberen Mitte des Fensters Data Manager angezeigt.
Bei der Auswertung eines ML-Modells ist das leistungsstärkste Tool evaluation.xlsx, das im Ordner „artifacts/eval_metrics“ generiert wird. In dieser Excel-Datei können Sie sehen, welche Vorhersagen fehlschlagen und auf welchen Dateien, und Sie können sofort sehen, ob es sich um einen OCR-Fehler oder einen ML-Extraktions- oder Analysefehler handelt und ob er durch einfache Logik im RPA-Workflow behoben werden kann oder ob eine andere OCR Engine, mehr Trainingsdaten, eine bessere Beschriftung bzw. Feldkonfigurationen in Data Manager erforderlich ist.
Diese Excel-Datei ist auch sehr nützlich, um die relevantesten Geschäftsregeln zu identifizieren, die Sie im RPA Workflow anwenden müssen, um häufige Fehler zu erkennen, die zur manuellen Überprüfung an die Validation Station in Action Center weiterzuleiten sind. Geschäftsregeln sind mit Abstand die zuverlässigste Möglichkeit, Fehler zu erkennen.
Für die Fehler, die für Geschäftsregeln nicht erkennbar sind, können Sie auch Konfidenzniveaus verwenden. Die Excel-Datei enthält auch Konfidenzniveaus für jede Vorhersage, sodass Sie Excel-Funktionen wie „Sortieren“ und „Filtern“ verwenden können, um zu bestimmen, was ein guter Konfidenzschwellenwert für Ihr Geschäftsszenario ist.
Insgesamt ist die Excel-Datei „evaluation.xlsx“ eine wichtige Ressource, auf die Sie sich konzentrieren müssen, um die besten Ergebnisse mit Ihrer KI-Automatisierung zu erzielen.
9. Geschäftsregeln definieren und implementieren
In diesem Schritt sollten Sie sich mit Modellfehlern beschäftigen und erfahren, wie sie erkannt werden. Es gibt 2 Hauptwege, um Fehler zu erkennen:
- durch Erzwingen von Geschäftsregeln
- durch Erzwingen eines Mindestkonfidenzschwellenwerts
Die effektivste und zuverlässigste Methode zum Erkennen von Fehlern ist die Definition von Geschäftsregeln. Die Konfidenzniveaus können nie zu 100 % perfekt sein. Es wird immer einen kleinen, aber nicht Null betragenden Prozentanteil korrekter Vorhersagen mit geringer Zuverlässigkeit oder falscher Vorhersagen mit hoher Zuverlässigkeit geben. Darüber hinaus und vielleicht am wichtigsten ist, dass ein fehlendes Feld keine Konfidenz hat, sodass ein Konfidenzschwellenwert nie Fehler erkennen kann, wenn ein Feld überhaupt nicht extrahiert wird. Daher sollten Konfidenzschwellenwerte nur als Ausweichwert, als Sicherheitsnetz verwendet werden, jedoch nie als Hauptweg, um geschäftskritische Fehler zu erkennen.
Beispiele für Geschäftsregeln:
- Nettobetrag plus Steuerbetrag muss dem Gesamtbetrag entsprechen
- Der Gesamtbetrag muss größer oder gleich dem Nettobetrag sein
- Invoice number,Date,Total amount (and potentially other fields) must be present
- Auftragsnummer (falls vorhanden) muss in der entsprechenden Datenbank vorhanden sein
- Rechnungsdatum muss in der Vergangenheit liegen und darf höchstens X Monate alt sein
- Fälligkeitsdatum darf höchstens Y Tage/Monate in der Zukunft liegen
- Für jedes Zeilenelement muss die mit dem Stückpreis multiplizierte Menge dem Zeilenbetrag entsprechen
- Summe der Zeilenbeträge muss gleich dem Nettobetrag oder Gesamtbetrag sein
- usw.
Insbesondere sollten die Konfidenzniveaus von Spaltenfeldern fast nie als Mechanismus zur Fehlererkennung verwendet werden, da sie Dutzende Werte haben können (wie z. B. Zeilenelemente auf Rechnungen oder Auftragsblättern), was das Festlegen eines Mindestschwellenwerts über so viele Werte besonders unzuverlässig machen kann, da die Konfidenz eines Werts mehr als wahrscheinlich gering ausfällt. Dies würde dazu führen, dass die meisten/alle Dokumente unnötigerweise an die menschliche Validierung weitergeleitet werden.
Geschäftsregeln müssen als Teil des RPA Workflows erzwungen werden, und es wäre ideal, wenn Geschäftsregelfehler an den menschlichen Validierer übergeben würden, um ihre Aufmerksamkeit zu lenken und den Prozess zu beschleunigen.
10. Einen Konfidenz-Schwellenwert wählen (optional)
Nachdem die Geschäftsregeln definiert wurden, bleibt manchmal eine kleine Anzahl von Feldern übrig, für die keine Geschäftsregeln vorhanden sind oder für die die Geschäftsregeln wahrscheinlich nicht alle Fehler erkennen werden. Möglicherweise müssen Sie dazu einen Konfidenzschwellenwert als letztes Mittel verwenden.
Das Haupttool zum Festlegen dieses Schwellenwerts ist die Funktion „Auswertungspipeline“ im AI Center und insbesondere die Excel-Kalkulationstabelle, die von der Auswertungspipeline im Ordner Ausgaben > Artefakte > eval_metrics ausgegeben wird.
Diese Kalkulationstabelle enthält eine Spalte für jedes Feld und eine Spalte für das Konfidenzniveau jeder Vorhersage. Sie können eine Spalte namens min_confidence hinzufügen, die das Minimum aller Konfidenzen über alle Felder aufnimmt, die für Ihren Geschäftsprozess wichtig und nicht bereits von Geschäftsregeln abgedeckt sind. Sie möchten z. B. möglicherweise keinen Schwellenwert für die Konfidenzen der Zeilenelemente festlegen, sondern für den Namen des Anbieters, den Gesamtbetrag, das Datum, das Fälligkeitsdatum, die Rechnungsnummer und andere wichtige Felder. Durch Sortieren der Tabelle basierend auf der Spalte min_confidence können Sie sehen, wo die Fehler angezeigt werden, und einen Schwellenwert auf dieser Ebene festlegen, um sicherzustellen, dass nur korrekt extrahierte Dokumente direkt gesendet werden.
11. Training mit Daten aus der Validation Station
Validation Station data can help improve the model predictions, yet, in many cases, it turns out that most errors are not due to the model itself but to the OCR, labelling errors or inconsistencies, or to postprocessing issues (e.g., date or number formatting). So, the first key aspect is that Validation Station data should be used only after the other Data Extraction Components have been verified and optimized to ensure good accuracy, and the only remaining area of improvement is the model prediction itself.
Der zweite Hauptaspekt ist, dass die Validation Station-Daten eine geringere Informationsdichte haben als die in Data Manager beschrifteten Daten. Grundsätzlich ist es dem Validation Station-Benutzer nur wichtig, einmal den richtigen Wert zu erhalten. Wenn eine Rechnung 5 Seiten hat und die Rechnungsnummer auf jeder Seite erscheint, überprüft der Benutzer der Validation Station sie nur auf der ersten Seite. 80 % der Werte bleiben also unbeschriftet. In Data Manager werden alle Werte beschriftet.
Denken Sie schließlich daran, dass Validation Station-Daten dem ursprünglichen manuell beschrifteten Dataset hinzugefügt werden müssen, damit Sie immer über ein einzelnes Trainings-Dataset verfügen, der im Laufe der Zeit an Größe zunimmt. Sie müssen auf dem ML-Paket immer mit der Nebenversion 0 (null) trainieren, der Version, die von UiPath Out of the Box veröffentlicht wurde.
It if often wrongly assumed that the way to use Validation Station data is to iteratively retrain the previous model version, so the current batch is used to train package X.1 to obtain X.2. Then the next batch trains on X.2 to obtain X.3 and so on. This is the wrong way to use the product. Each Validation Station batch needs to be imported into the same Data Manager session as the original manually labeled data making a larger dataset, which must be used to train always on the X.0 ML Package version.
Validation Station-Daten können potenziell ein viel höheres Volumen haben, da sie im Produktionsworkflow verwendet werden. Folglich benötigen Sie eine Richtlinie, wie viele Daten wahrscheinlich nützlich sein werden, da das Modelltraining Zeit und Infrastruktur erfordert. Außerdem möchten Sie nicht, dass das Dataset mit Validation Station-Daten überlastet wird, da dies die Qualität des Modells aufgrund des oben genannten Problems der Informationsdichte beeinträchtigen kann.
Wir empfehlen, maximal 2–3-mal die Seitenanzahl der Data Manager-Daten hinzuzufügen und darüber hinaus nur die Anbieter oder Beispiele zu wählen, bei denen größere Fehler aufgetreten sind. Wenn größere Änderungen an den Produktionsdaten bekannt sind, z. B. eine neue Sprache oder eine neue geografische Region, die in den Geschäftsprozess integriert wird (von den USA nach Europa oder Südasien), dann sollten für diese Sprachen und Regionen in Data Manager repräsentative Daten für die manuelle Beschriftung hinzugefügt werden. Die Validation Station-Daten sind für eine Scope-Erweiterung dieser Größe nicht geeignet.
Hier ist ein Beispielszenario. Sie haben eine gute OCR Engine gewählt und 500 Seiten in Data Manager beschriftet, was zu einer guten Leistung führte. Dann haben Sie das Modell in einem RPA-Workflow für die Produktion bereitgestellt. Validation Station beginnt mit der Generierung von Daten. Sie sollten zufällig bis zu maximal 1000–1500 Seiten von der Validation Station auswählen und sie zusammen mit den ersten 500 Seiten nach Data Manager importieren und Ihr ML-Modell erneut trainieren. Danach sollten Sie eine Auswertungspipeline ausführen, um sicherzustellen, dass das Modell tatsächlich verbessert wurde, und dann sollten Sie das neue Modell in der Produktion bereitstellen.
12. Die Schleife für die automatische Feinabstimmung (Vorschau)
The Auto-Fine-tuning loop is a Preview capability that becomes useful for maintaining a high-performing model which you have already created using the steps described above. To ensure that auto-fine-tuning produces better versions of the model it is critical that you have a good Evaluation dataset and that you use an automatically rescheduled Full Pipeline which runs both Training and Evaluation at the same time. In this way, you can see if the most recent Training produced a more accurate model than the previous one, and if so, you are ready to deploy the new model to the ML Skill invoked by the Robots in your business process.
The Training dataset keeps changing as more data comes in and Data Manager exports periodically as scheduled in the Scheduled Export dialog. The Evaluation runs on the same Evaluation dataset you specify in the pipeline. Evaluation datasets never change automatically, they always need to be curated, labeled and exported manually. You should change your Evaluation set rarely so that accuracy scores can be compared between different Training runs.
DAS AI Center bietet die Möglichkeit, den ML-Skill automatisch zu aktualisieren, wenn eine neue Version eines ML-Pakets erneut trainiert wird. Diese automatische Aktualisierung berücksichtigt jedoch nicht die Punktzahl der vollständigen Pipeline. Daher wird nicht empfohlen, diese Funktion mit Document Understanding Pipelines für automatisches erneutes Training zu verwenden.
As mentioned above in the Create an Evaluation Dataset section, Evaluation Pipeline implementations for ML Packages release 21.10 or later calculate scores on a per-document basis - which reflects accurately the results you see in an RPA workflow. This assumes your dataset was labelled on a per-document basis in Data Manager. You can tell if a multi-page document is labeled on a per-document basis if you can scroll naturally through the pages like in a regular PDF reader. If you need to click next to pass from one page to the next, then each page is considered a separate document.
13. Die Automatisierung bereitstellen
Make sure to use the Document Understanding Process from the Templates section in the Studio start screen in order to apply best practices in Enterprise RPA architecture.
- Was kann ein ML-Modell zur Datenextraktion tun?
- Trainings- und Auswertungs-Datasets
- Komponenten der Datenextraktion
- Erstellen eines leistungsstarken ML-Modells
- 1. Ein OCR-Modul wählen
- 2. Ein Trainings-Dataset erstellen
- 3. Ein Auswertungs-Dataset erstellen
- 4. Felder definieren
- 5. Die Felder konfigurieren
- 6. Das Trainings-Dataset beschriften
- 7. Das Auswertungs-Dataset beschriften
- 8. Das Modell trainieren und auswerten
- 9. Geschäftsregeln definieren und implementieren
- 10. Einen Konfidenz-Schwellenwert wählen (optional)
- 11. Training mit Daten aus der Validation Station
- 12. Die Schleife für die automatische Feinabstimmung (Vorschau)
- 13. Die Automatisierung bereitstellen