- Vue d'ensemble (Overview)
- Processus Document Understanding
- Didacticiels de démarrage rapide
- Composants de l'infrastructure
- Vue d’ensemble de classification de document
- Assistant de configuration des classifieurs de l'activité Classer l'étendue du document (Classify Document Scope)
- Keyword Based Classifier
- Intelligent Keyword Classifier
- FlexiCapture Classifier
- Machine Learning Classifier
- Activités liées à la classification des documents
- Vue d’ensemble de l'entraînement de la classification des documents
- Assistant de configuration des classifieurs (Configure Classifiers Wizard) de l'activité Tester l'étendue des classifieurs (Train Classifier Scope)
- Machine Learning Classifier Trainer
- Activités liées à l'entraînement de la classification des documents
- Vue d’ensemble de l’extraction des données
- Assistant de configuration des extracteurs (Configure Extractors Wizard) de l'activité Étendue de l'extraction de données (Data Extraction Scope)
- Regex Based Extractor
- Form Extractor
- Extracteur de formulaires intelligents
- Extracteur d'apprentissage automatique
- FlexiCapture Extractor
- Activités liées à l'extraction de données
- Consommation de données
- Paquets ML
- Pipelines
- Document Manager
- Services OCR
- Document Understanding déployé dans Automation Suite
- Installer et utiliser
- Première expérience d'exécution
- Déployer UiPathDocumentOCR
- Déployer un paquet ML prêt à l'emploi
- Offres groupées hors ligne 2022.10.0
- Offres groupées hors ligne 2022.10.2
- Bundles 2022.10.4 hors ligne
- Bundles hors ligne 2022.10.6
- Bundles 2022.10.8 hors ligne
- Bundles 2022.10.9 hors ligne
- Bundles 2022.10.10 hors ligne
- Bundles 2022.10.11 hors ligne
- Bundles 2022.10.12 hors ligne
- Bundles 2022.10.13 hors ligne
- Bundles 2022.10.14 hors ligne
- Bundles 2022.10.14+patch1 hors ligne
- Bundles hors ligne 2022.10.15
- Utiliser le gestionnaire de documents
- Utiliser l'infrastructure
- Document Understanding déployé dans une version AI Center autonome
- Apprentissage profond
- Entraînement de modèles hautement performants
- Licences
- Référence (Reference)
- UiPath.Abbyy.Activities
- UiPath.AbbyyEmbedded.Activities
- UiPath.DocumentUnderstanding.ML.Activities
- UiPath.DocumentUnderstanding.OCR.LocalServer.Activities
- UiPath.IntelligentOCR.Activities
- UiPath.OCR.Activities
- UiPath.OCR.Contracts
- UiPath.DocumentProcessing.Contracts
- UiPath.OmniPage.Activities
- UiPath.PDF.Activities
La puissance des modèles d'apprentissage automatique réside dans le fait qu'ils sont définis par des données d'entraînement plutôt que par une logique explicite exprimée en code informatique. Cela signifie qu'une attention particulière est nécessaire lors de la préparation des ensembles de données, car un modèle n'est aussi bon que l'ensemble de données qui a été utilisé pour l'entraîner. En ce sens, ce qu'est UiPath Studio aux workflows RPA, Document Manager l'est aux capacités d'apprentissage automatique. Les deux nécessitent une certaine expérience pour être utilisés efficacement.
Que peut faire un modèle ML d'extraction de données ?
Un modèle ML peut extraire des données d'un seul type de document, bien qu'il puisse couvrir plusieurs langues différentes. Il est essentiel que chaque champ (Montant total, Date, etc.) ait une signification unique et cohérente. Si un humain peut ne pas comprendre la valeur correcte d’un champ, il en va de même pour un modèle ML.
Des situations ambiguës peuvent apparaître. Par exemple, une facture de services publics n'est-elle qu'un autre type de facture ? Ou s'agit-il de deux types de documents différents qui nécessitent deux modèles de ML différents ? Si les champs que vous devez extraire sont les mêmes (c'est-à-dire qu'ils ont la même signification), vous pouvez les traiter comme un seul type de document. Cependant, si vous devez extraire différents champs pour différentes raisons (différents processus métier), cela peut indiquer que vous devez les traiter comme deux types de documents différents et, par conséquent, recourir à entraîner deux modèles différents.
En cas de doute, commencez par entraîner un seul modèle, mais conservez les documents dans différents lots de Document Manager (voir la liste déroulante Filtrer (Filter) au centre de la vue Document Manager) afin de pouvoir les séparer facilement ultérieurement si nécessaire. Vous pouvez facilement séparer les documents ultérieurement si nécessaire, en évitant de perdre le travail d'étiquetage. En ce qui concerne les modèles ML, plus il y a de données, mieux c'est. Commencez par avoir un modèle unique avec de nombreuses données.
Ensemble de données d'entraînement et d'évaluation
Document Manager peut être utilisé pour créer deux types d’ensembles de données :
- ensembles de données d’entraînement
- ensembles de données d’évaluation
Les deux types de jeux de données sont essentiels pour créer un modèle ML hautes performances et nécessitent du temps et des efforts pour les créer et les gérer. Un ensemble de données d’évaluation représentatif du trafic de documents de production est nécessaire pour obtenir un modèle ML hautes performances.
Chaque type de jeu de données est labellisé d'une manière différente :
- Les ensembles de données d'entraînement reposent uniquement sur les cadres de délimitation des mots de la page représentant les différentes informations que vous devez extraire.
- Lorsque vous labellisez un ensemble d'entraînement, concentrez-vous uniquement sur la page elle-même et les zones de mots.
- Les ensembles de données d'évaluation reposent uniquement sur les valeurs des champs qui apparaissent dans la barre latérale (pour les champs normaux) ou dans la barre supérieure (pour les champs de colonne).
- Lors de la labellisation d’un ensemble d’évaluation, concentrez-vous sur les valeurs sous les noms de champ dans la barre latérale ou la barre supérieure. Cela ne signifie pas que vous devez les saisir manuellement. Nous vous recommandons de labelliser en cliquant sur les cases de la page et de vérifier l’exactitude des valeurs.
Vous trouverez ci-dessous plus de détails sur la manière de mener des évaluations appropriées.
Composants d'extraction de données
L'extraction de données repose sur les composants suivants :
- OCR (reconnaissance optique de caractères)
- Création de mots et de lignes
- Regroupement des caractères en mots et des mots en lignes de texte de gauche à droite
- Prédiction du modèle d'apprentissage automatique pour chaque mot/boîte de la page
- Nettoyage, analyse et formatage des plages de texte
- Par exemple, regroupe des mots sur plusieurs lignes dans une adresse, formate une date au format standard jj/mm/aaaa
- Application d'un algorithme pour sélectionner la valeur renvoyée
- Pour les cas où le document comporte 2 pages ou plus et où certains champs apparaissent sur plus d'une page
Créer un modèle de ML hautement performant
Pour obtenir le meilleur résultat en termes de taux d'automatisation (pourcentage de réduction du travail manuel mesuré en mois-personnes par an requis pour traiter votre flux de documents), vous devez suivre attentivement ces étapes :
- Choisir le meilleur moteur OCR pour vos documents
- Cela influence l’OCR, la construction Word and Line (qui dépend en partie de l’OCR) et tout ce qui suit.
- Sélectionner un ensemble de données bien équilibré et représentatif pour l'entraînement
- Sélectionner un ensemble de données représentatif pour l'évaluation
- Définir les champs à extraire
- Configurer les champs
- Labelliser l'ensemble de données d'entraînement
- Labelliser l'ensemble de données d'évaluation
- Former et évaluer le modèle dans AI Center
- Définir et mettre en œuvre les règles métier pour le traitement de la sortie du modèle
- (Facultatif) Choisir le(s) seuil(s) de confiance pour l'extraction
- Entraînement à l'aide des données de la Station de validation
- La boucle de réglage automatique (aperçu) (The Auto-Fine-tuning Loop (Preview))
- Déployer votre automatisation
1. Choisir un moteur OCR
Pour choisir un moteur OCR, vous devez créer différentes sessions Document Manager, configurer différents moteurs OCR et essayer d'importer les mêmes fichiers dans chacun d'eux pour examiner les différences. Concentrez-vous sur les zones que vous souhaitez extraire. Par exemple, si vous devez extraire des noms d'entreprise qui apparaissent dans les logos des factures, vous souhaiterez peut-être voir quel moteur OCR est le plus performant pour le texte des logos.
Your default option should be UiPath Document OCR since it is included with Document Understanding licenses at no charge. However, in cases where some unsupported languages are required, or some very hard-to-read documents are involved, you might want to try Google Cloud (Cloud only) or Microsoft Read (Cloud or On Premises), which have better language coverage. These engines come at a cost, indeed it is low, but if the accuracy is higher on some critical data fields for your business process, it is strongly recommended to use the best OCR available – saving your time later on since everything downstream depends on it.
Sachez que l’activité Numériser le document a le paramètre AppliquerOcrAuxPDF défini sur Auto par défaut, déterminant si le document nécessite l’application de l’algorithme OCR en fonction du document d’entrée. Évitez de manquer l’extraction d’ informations importantes (
2. Créer un ensemble de données d'entraînement (Create a Training dataset)
Machine Learning technology has the main benefit of being able to handle complex problems with high diversity. When estimating the size of a training dataset, one looks first at the number of fields and their types, and the number of languages. A single model can handle multiple languages as long as they are not Chinese/Japanese/Korean. Chinese/Japanese/Korean scenarios generally require separate Training datasets and separate models.
Il existe 3 types de champs :
- Regular fields (date, total amount)
- Pour les champs réguliers, vous avez besoin d'au moins 20 à 50 échantillons par champ. Ainsi, si vous devez extraire 10 champs réguliers, vous aurez besoin d'au moins 200 à 500 échantillons. Si vous devez extraire 20 champs réguliers, vous aurez besoin d'au moins 400 à 1 000 échantillons. La quantité d'échantillons dont vous avez besoin augmente avec le nombre de champs. Plus de champs signifie que vous avez besoin de plus d'échantillons, environ 20 à 50 fois plus.
- Column fields (item unit price, item quantity)
- Pour les champs de colonne, vous avez besoin d'au moins 50 à 200 échantillons de document par champ de colonne. Par conséquent, pour les champs à 5 colonnes, avec des mises en page claires et simples, vous pouvez obtenir de bons résultats avec 300 échantillons de document. Pour les mises en page très complexes et diverses, plus de 1 000 échantillons de documents peuvent être nécessaires. Pour couvrir plusieurs langues, vous avez besoin d'au moins 200 à 300 échantillons par langue, en supposant qu'ils couvrent tous les domaines. Ainsi, pour 10 champs d'en-tête et 4 champs de colonne avec 2 langues, 600 échantillons peuvent suffire (400 pour les colonnes et les en-têtes plus 200 pour la langue supplémentaire), mais dans certains cas, cela peut nécessiter 1 200 ou plus.
- Classification fields (currency)
- Les champs de classification nécessitent généralement au moins 10 à 20 échantillons de chaque classe.
Les directives ci-dessus supposent que vous vous retrouviez dans un scénario présentant une grande diversité, comme des factures ou des bons de commande avec des dizaines, des centaines ou des milliers de mises en page différentes. Cependant, si vous résolvez un scénario de faible diversité comme un formulaire fiscal ou des factures avec très peu de mises en page différentes (moins de 5 à 10), la taille de l'ensemble de données est davantage déterminée par le nombre de mises en page. Dans ce cas, vous devez commencer avec 20 à 30 pages pour chaque mise en page et en ajouter si nécessaire - surtout si les pages sont très denses et présentent un grand nombre de champs à extraire. Par exemple, la création d'un modèle permettant d'extraire 10 champs depuis 2 mises en page peut nécessiter 60 pages, mais si vous devez extraire 50 ou 100 champs depuis 2 mises en page, vous pouvez commencer avec 100 ou 200 pages et en ajouter si nécessaire pour obtenir le niveau de précision souhaité. Dans ce cas, la distinction champs réguliers/champs colonnes est moins importante.
ML technology is designed to handle high diversity scenarios. Using it to train models on low diversity scenarios (1-10 layouts) requires special care to avoid brittle models that are sensitive to slight changes in the OCR text. Avoid this by having some deliberate variability in the training documents, by printing and then scanning or photographing them using mobile phone scanner apps. The slight distortions or changing resolutions make the model more robust.
De plus, ces estimations supposent que la plupart des pages contiennent la totalité ou la plupart des champs. Dans les cas où vous avez des documents avec plusieurs pages mais où la plupart des champs sont sur une seule page, le nombre de pages pertinent est le nombre d'exemples de cette page où la plupart des champs apparaissent.
The numbers above are general guidelines, not strict requirements. In general, you can start with a smaller dataset, and then keep adding data until you get good accuracy. This is especially useful to parallelize the RPA work with the model building. Also, a first version of the model can be used to prelabel additional data (see Settings view and Predict button in Document Manager) which can accelerate labeling additional Training data.
Les modèles de Deep Learning peuvent généraliser
Vous n'avez pas besoin que chaque mise en page soit représentée dans un ensemble d'apprentissage. En fait, la plupart des mises en page de notre flux de documents de production n’ont aucun échantillon dans votre ensemble d’apprentissage, ou un ou deux échantillons de document. C'est souhaitable, car vous souhaitez tirer parti de la puissance de l'IA pour comprendre les documents et être en mesure de réaliser des prédictions correctes pour des documents sur lesquels elle n'a pas été entraînée pendant la formation. Il n'est pas obligatoire de devoir disposer d'un grand nombre d'échantillons par mise en page, car la plupart des mises en page peuvent soit ne pas être présentes du tout, soit n'être présentes qu'une ou deux fois, et le modèle serait toujours capable de réaliser des prédictions correctes en se basant sur l'apprentissage d'autres mises en page.
Entraînement depuis un modèle prêt à l'emploi
Il existe trois principaux types de scénarios lors de la formation d'un modèle ML pour Document Understanding :
- entraîner un nouveau type de document à partir de zéro à l'aide du paquet ML DocumentUnderstanding dans AI Center
- réentraîner depuis un modèle prêt à l'emploi pré-entraîné pour optimiser la précision uniquement
- réentraîner depuis un modèle pré-formé prêt à l'emploi pour optimiser la précision et ajouter de nouveaux champs
Les estimations de la taille de l'ensemble de données pour le premier type de scénario sont décrites dans la première partie de cette section intitulée "Créer un ensemble d'apprentissage".
Pour le deuxième type de scénario, la taille de l'ensemble de données dépend de la façon dont les modèles pré-entraînés fonctionnent déjà sur vos documents. S'ils fonctionnent déjà très bien, vous aurez peut-être besoin de très peu de données, peut-être 50 à 100 pages. S'ils échouent sur un certain nombre de domaines importants, vous aurez peut-être besoin de plus, mais un bon point de départ serait toujours 4 fois plus petit que si vous effectuiez l'entraînement à partir de zéro.
Et enfin, pour le troisième type de scénario, commencez par la taille de l'ensemble de données pour le deuxième scénario ci-dessus, puis augmentez l'ensemble de données en fonction du nombre de nouveaux champs dont vous disposez, en utilisant les mêmes conseils que pour réaliser l'entraînement à partir de zéro : au moins 20 à 50 pages par nouveau champ régulier, ou au moins 50-200 pages par champ de colonne.
Dans tous ces cas, tous les documents doivent être entièrement labellisés, y compris les nouveaux champs, que le modèle prêt à l'emploi ne reconnaît pas, ainsi que l'original des champs, que le modèle prêt à l'emploi le modèle reconnaît.
Occurrences de champ inégales
Certains champs peuvent apparaître sur chaque document (par exemple, date, numéro de facture) tandis que certains champs peuvent apparaître uniquement sur 10 % des pages (par exemple, frais de traitement, remises). Dans ces cas, vous devez prendre une décision d'ordre professionnel. Si ces champs rares ne sont pas essentiels à votre automatisation, vous pouvez vous en tirer avec un petit nombre d'échantillons (10-15) de ce champ particulier, c'est-à-dire des pages qui contiennent une valeur pour ce champ. Cependant, si ces champs sont critiques, vous devez vous assurer d'inclure dans votre ensemble d'entraînement au moins 30 à 50 échantillons de ce champ pour vous assurer de couvrir toute sa diversité.
Ensembles de données équilibrés
Dans le cas des factures, si un ensemble de données contient des factures de 100 fournisseurs mais que la moitié de l'ensemble de données se compose uniquement de factures d'un seul fournisseur, alors il s'agit d'un ensemble de données très déséquilibré. Un ensemble de données parfaitement équilibré est celui où chaque fournisseur apparaît un nombre égal de fois. Les ensembles de données n'ont pas besoin d'être parfaitement équilibrés, mais vous devez éviter que plus de 20 % de l'ensemble de vos données proviennent d'un seul fournisseur. Au-delà d'un certain point, un nombre plus important de données n'est pas avantageux, et cela peut même affecter la précision sur d'autres fournisseurs car le modèle s'ajuste à l'excès en faveur d'un seul fournisseur.
Ensembles de données représentatifs
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 probably look different, so you need to make sure you have document samples from all three. This is relevant not only for the model training itself, but also for labeling purposes. When 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. Créer un ensemble de données d'évaluation (Create an Evaluation dataset)
Pour les ensembles d'apprentissage, les pages et le nombre de pages sont les plus importants. Pour les ensembles d'évaluation, nous faisons référence uniquement aux documents et au nombre de documents. Les scores des versions v2021.10 et ultérieures sont calculés par document.
Les ensembles de données d'évaluation peuvent être plus petits. Il peut s'agir de 50 à 100 documents (ou même de 30 à 50 dans des scénarios à faible diversité), et ils peuvent augmenter avec le temps pour atteindre quelques centaines de documents. Il est important qu'ils soient représentatifs du flux de données de production. Ainsi, une bonne approche consiste à sélectionner au hasard parmi les documents traités dans le workflow RPA. Même si certains fournisseurs seront surreprésentés, ce n'est pas grave. Par exemple, si un seul fournisseur représente 20 % de votre flux de factures, il est normal que ce fournisseur représente également 20 % de votre ensemble d'évaluation, de façon à ce que celui-ci se rapproche du mieux possibles de vos mesures commerciales, c'est-à-dire la réduction du nombre de mois et de personnes consacrés au traitement manuel des documents.
When importing Evaluation data into Document Manager, you need to check the “Make this an evaluation set” box on the Import dialog window. This guarantees that the data is held out when training, and also you can easily export it for running Evaluations using the evaluation-set option in the Filter dropdown in Document Manager.
Starting with the 21.9 Preview release in Automation Cloud and the 21.10 GA On Premises release, Document Manager has switched to handling multi-page documents rather than each page as a separate entity. 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 is exported in the old page-by-page way, and evaluation scores are not as representative of the runtime performance.
4. Définir des champs
La définition des champs doit faire l'objet d'une conversation devant avoir lieu avec l'expert en la matière ou l'expert du domaine chargé du processus métier lui-même. Pour les factures, il s'agirait du chargé du processus des comptes fournisseurs. Cette conversation est essentielle, elle doit avoir lieu avant que les documents ne soient labellisés pour éviter toute perte de temps, et elle nécessite de regarder ensemble au moins 20 échantillons de documents choisis au hasard. Un créneau d'une heure doit être réservé pour cela, et il doit souvent être répété après quelques jours, car la personne qui prépare les données se heurtera à des situations ambiguës ou à des cas limites.
Il n'est pas rare que la conversation commence par l'hypothèse que vous devez extraire, disons, 10 champs, et plus tard vous vous retrouviez avec 15. Quelques exemples sont décrits dans les sous-sections ci-dessous.
Certaines configurations clés que vous devez connaître :
- Type de contenu
- 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.
- Case à cocher multiligne
- C'est pour analyser les chaînes comme les adresses qui peuvent apparaître sur plus d'une ligne de texte.
- Champs cachés
- Les champs marqués comme masqués (Hidden) peuvent être labellisés, mais ils ne sont pas pris en compte lors de l'exportation des données, de sorte que le modèle ne sera pas entraîné sur eux. C'est pratique lorsque la labellisation d'un champ est en cours, lorsqu'il est trop rare ou lorsqu'il est de faible priorité.
- Évaluation
- 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 is 0.9. However, if scoring is Exact Match it is more strict: a single wrong character leads to a score of zero. All fields are by default Exact Match. Only String type fields have the option to select Levenshtein scoring.
Montants des factures de services publics
Un montant total peut sembler assez simple, mais les factures de services publics contiennent de nombreux montants. Parfois, vous avez besoin du montant total à payer. D’autres fois, vous n’avez besoin que du montant actuel de la facture, sans les montants reportés des périodes de facturation précédentes. Dans ce dernier cas, vous devez procéder à la labellisation différemment même si la facture actuelle et le montant total peuvent être les mêmes. Les concepts sont différents et les montants sont souvent différents.
Each field represents a different concept, and they need to be defined as cleanly and crisply as possible, so there is no confusion. If a human confuses it, the ML model also does that.
De plus, le montant actuel de la facture peut parfois être composé de quelques montants, frais et taxes différents et peut ne pas apparaître de manière individuelle sur la facture. Une solution possible consiste à créer deux champs : un champ Charges antérieures et un champ Total. Ces deux éléments apparaissent toujours comme des valeurs explicites distinctes sur la facture de services. Ensuite, le montant actuel de la facture peut être obtenu comme la différence entre les deux. Vous pouvez même vouloir inclure les 3 champs (Charges antérieures, Total et Charges courantes) afin de pouvoir effectuer des vérifications de cohérence dans les cas où le montant de la facture actuelle apparaît explicitement sur le document. Vous pouvez donc passer d'un à trois champs dans certains cas.
Numéros de bons de commande sur les factures
Les numéros de bon de commande peuvent apparaître sous forme de valeurs uniques pour une facture, ou ils peuvent apparaître dans le tableau des éléments de ligne sur une facture, où chaque élément de ligne a un numéro de bon de commande différent. Dans ce cas, il peut être judicieux d'avoir deux champs différents : po-no et item-po-no. En assurant la cohérence de chaque champ au niveau graphique et au niveau de sa conception, le modèle assurera un bien meilleur travail. Cependant, vous devez vous assurer que les deux sont bien représentés dans vos ensembles de données d'entraînement et d'évaluation.
Nom du fournisseur et intitulé de l'adresse de paiement sur les factures
The company name usually appears at the top of an invoice or a utility bill, but sometimes it might not be readable because there is just a logo, and the company name is not explicitly written out. There could also be some stamp, or handwriting, or wrinkle over the text. In these cases, people might label the name that appears at the bottom right, in the 'Remit payment to' section of the payslip on utility bills. That name is often the same, but not always, since it is a different concept. Payments can be made to some other parent or holding company, or other affiliate entity, and it is visually different on the document. This might lead to poor model performance. In this case, you should create two fields, vendor-name and payment-addr-name. Then you can look both up in a vendor database and use the one that matches, or use payment-addr-name when the vendor-name is missing.
Rangées de tableaux
Il y a deux concepts distincts à garder à l'esprit : les lignes de tableau et les lignes de texte. Une ligne de tableau comprend toutes les valeurs de tous les champs de colonnes qui appartiennent ensemble dans cette ligne. Parfois, ils peuvent tous faire partie de la même ligne de texte qui traverse la page. D'autres fois, ils peuvent être sur des lignes différentes.
Si une ligne de tableau se compose de plusieurs lignes de texte, vous devez regrouper toutes les valeurs de cette ligne de tableau à l'aide du raccourci clavier "/". Lorsque vous faites cela, une boîte verte apparaîtra, englobant toute la ligne du tableau. Voici un exemple de tableau où les 2 premières lignes sont constituées de plusieurs lignes de texte et doivent être regroupées à l'aide du raccourci clavier "/", tandis que la troisième ligne est une seule ligne de texte et n'a pas besoin d'être regroupée.
Voici un exemple de tableau où chaque ligne du tableau est constituée d'une seule ligne de texte. Vous n'avez pas besoin de les regrouper à l'aide du raccourci clavier "/" car cela est fait implicitement par Document Manager.
Fractionner les éléments
Split Items is a setting that appears only for Column fields, and it helps the model know when a line item ends and another begins. As a human looking at a document, to tell how many rows are there, you probably look at how many amounts are on the right side. Each amount refers to a line item in general. This indicates that line-amount is a column where you should enable Split Items. Other columns can also be marked, in case the OCR misses the line-amount, or the model does not recognize it: quantity and unit-price are usually also marked as 'Split Items'.
5. Configurer les champs
La configuration la plus importante est le type de contenu, à l'exception de la String :
- Numérique
- Date
- Téléphone
- Numéro d'identification
These impact post-processing, especially the cleanup, the parsing, and the formatting. The most complex is the Date formatting, but also Number formatting requires determining the decimal point separator and thousands decorator. In some cases, if parsing fails, your option is to report the issue to UiPath support and to fall back on the String content type, which does no parsing. In that case, you need to parse the value in your RPA workflow logic.
Another relevant configuration is the Multi-line checkbox, which is relevant mainly for String type fields. Whenever some other field produces unexpected results or no results, the first thing to try is to change it to String Multi-line field, to see the unaltered output of the model prediction.
6. Labelliser l'ensemble de données d'entraînement
When labeling Training data, you need to focus on the bounding boxes of the words in the document pane of Document Manager. The parsed values in the right or top sidebars are not important as they are not used for training.
All fields should be labelled, even if a field appears multiple times on a page, as long as they represent the same concept (see the Define fields section above).
Lorsque l'OCR manque un mot ou se trompe sur quelques caractères, labellisez simplement le cadre de délimitation s'il y en a un, et sinon, ignorez-le et continuez. Il n'y a aucune possibilité d'ajouter un mot dans le Document Manager, car même si vous le faisiez, le mot serait toujours manquant au moment de l'exécution ; l'ajouter n'aiderait donc pas du tout le modèle.
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 do not explicitly need, but which, if labelled, 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. Labelliser l'ensemble de données d'évaluation
When labeling Evaluation datasets (also called Test datasets) you need to focus on something slightly different from labeling Training datasets. Whereas for Training datasets only the bounding boxes of the fields on the document matter, for Evaluation datasets only the values of the fields matter. You may edit them by clicking on the value in the right or top sidebar and editing it. To return to the automatically parsed value, click on the lock icon.
For convenience, speed, and to avoid typos, we recommend clicking on the boxes on the document when labeling and only making corrections manually. Typing full values manually is slower and more error-prone.
8. Former et évaluer le modèle
L'exportation de l'ensemble de données complet, y compris les lots d'entraînement et de test, est autorisée car les pipelines d'entraînement dans AI Center ignorent les données de test. Cependant, les pipelines d'évaluation exécuteront l'évaluation sur l'ensemble de données d'évaluation, qu'il soit composé de données d'apprentissage ou de test. Le type d'un document donné est affiché juste sous le nom du fichier, en haut au centre de la fenêtre du Document Manager.
When evaluating an ML model, the most powerful tool is the evaluation.xlsx file generated in the artifacts/eval_metrics folder. In this Excel file you can see what predictions are failing and on which files, and you can see immediately if it is an OCR error, an ML Extraction, or parsing error, and if it may be fixed by simple logic in the RPA workflow, or it requires a different OCR engine, more training data, or improving the labelling of the field configurations in Document Manager.
Ce fichier Excel est également très utile pour identifier les règles métier les plus pertinentes que vous devez appliquer dans le workflow RPA afin de détecter les erreurs courantes lors du routage vers la station de validation dans Action Center pour une révision manuelle. Les règles métier sont de loin le moyen le plus fiable pour détecter les erreurs.
Pour les erreurs qui ne peuvent pas être détectées par les règles métier, vous pouvez également utiliser des niveaux de confiance. Le fichier Excel contient également des niveaux de confiance pour chaque prédiction afin que vous puissiez utiliser des fonctionnalités Excel telles que le tri et le filtrage pour déterminer quel est un bon seuil de confiance pour votre scénario métier.
Dans l'ensemble, le fichier Excel evaluation.xlsx est une ressource clé sur laquelle vous devez vous concentrer afin d'obtenir les meilleurs résultats de votre automatisation de l'IA.
9. Définir et mettre en œuvre des règles métier
Dans cette étape, vous devez vous préoccuper des erreurs de modèle et de la façon de les détecter. Il existe 2 méthodes principales pour détecter les erreurs :
- en appliquant les règles de l'entreprise
- en imposant un seuil de niveau de confiance minimum
Le moyen le plus efficace et le plus fiable de détecter les erreurs consiste à définir des règles métier. Les niveaux de confiance ne peuvent jamais être parfaits à 100 %. Il existe toujours un pourcentage faible, mais non nul, de prédictions correctes avec un niveau de confiance faible ou de prédictions erronées avec un niveau de confiance élevé. De plus, et c'est peut-être le plus important, un champ manquant n'a pas de confiance, donc un seuil de confiance ne peut jamais détecter les erreurs où un champ n'est pas extrait du tout. Par conséquent, les seuils de niveau de confiance ne doivent être utilisés que comme une solution de repli, un filet de sécurité, mais jamais comme le principal moyen de détecter les erreurs critiques pour l'entreprise.
Exemples de règles métier :
- Le montant net plus le montant des taxes doit être égal au montant total
- Le montant total doit être supérieur ou égal au montant net
- Invoice number, Date, Total amount (and other fields) must be present
- Le numéro de bon de commande (si présent) doit exister dans la base de données de bons de commande
- La date de la facture doit être située dans le passé et ne peut pas dater de plus de X mois
- La date d'échéance doit être située dans le futur et ne doit pas compter plus de Y jours/mois
- For each line item, the quantity multiplied by unit price must equal the line amount
- La somme des montants des lignes doit être égale au montant net ou au montant total
- Etc.
En particulier, les niveaux de confiance des champs de colonne ne devraient presque jamais être utilisés comme mécanisme de détection d'erreurs, car les champs de colonne (par exemple, les éléments de ligne sur les factures ou les bons de commande) peuvent avoir des dizaines de valeurs, il est donc possible de définir un seuil minimum sur autant de valeurs. particulièrement peu fiable, car une valeur est plus que susceptible d'avoir une faible confiance, ce qui conduirait à ce que la plupart/tous les documents soient acheminés vers la validation humaine, plusieurs fois inutilement.
Les règles métier doivent être appliquées dans le cadre du workflow RPA, et il serait idéal que l'échec de la règle métier soit transmis au validateur humain afin de diriger son attention et d'accélérer le processus.
10. (Facultatif) Choisir un seuil de confiance
Une fois les règles métier définies, il peut parfois rester un petit nombre de champs pour lesquels aucune règle métier n'est en place ou pour lesquels il est peu probable que les règles métier détectent toutes les erreurs. Pour cela, vous devrez peut-être utiliser un seuil de confiance en dernier recours.
L'outil principal pour définir ce seuil est la fonctionnalité de pipeline d'évaluation dans AI Center, et plus précisément, la feuille de calcul Excel qui est générée par le pipeline d'évaluation dans le dossier Sorties (Outputs) > artefacts > eval_metrics.
This spreadsheet contains a column for each field and a column for the confidence level of each prediction. You can add a column called min_confidence that takes the minimum of all the confidences over all fields that are important for your business process and are not already covered by business rules. For instance, you may not want to put a threshold on the line items confidences, but rather on vendor name, total amount, date, due date, invoice number, and other essential fields. By sorting the table based on the min_confidence column you may see where the errors start appearing and set a threshold above that level to ensure that correctly extracted documents are sent straight through.
11. Entraînement à l'aide des données de la station de validation
Validation Station data can help improve the model predictions, yet, often, it turns out that most errors are not due to the model itself but to the OCR, labelling errors, 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.
Le deuxième aspect clé est que les données de la station de validation ont une densité d'informations inférieure à celle des données labellisées dans le Document Manager. Fondamentalement, l'utilisateur de Validation Station ne se soucie d'obtenir la bonne valeur qu'une seule fois. Si une facture comporte 5 pages et que le numéro de facture apparaît sur chaque page, l'utilisateur de la Station de Validation ne la valide que sur la première page. Ainsi, 80 % des valeurs restent sans libellé. Dans Document Manager, toutes les valeurs sont labellisées.
Enfin, gardez à l'esprit que les données de la station de validation doivent être ajoutées à l'ensemble de données d'origine libellé manuellement, afin que vous disposiez toujours d'un seul ensemble de données d'entraînement dont la taille augmente avec le temps. Vous devrez toujours vous entraîner sur le package ML avec la version mineure 0 (zéro), qui est la version publiée par UiPath Out of the Box.
Il est souvent supposé à tort que la façon d'utiliser les données de la station de validation consiste à réentraîner de manière répétée la version précédente du modèle, de sorte que le lot actuel est utilisé pour former le package X.1 afin d'obtenir la version X.2. Ensuite, le batch suivant s'entraîne sur la version X.2 pour obtenir la version X.3 et ainsi de suite. C'est la mauvaise façon d'utiliser le produit. Chaque lot de la Station de validation doit être importé dans la même session Document Manager que les données d'origine labellisées manuellement, créant ainsi un ensemble de données plus volumineux, qui doit être utilisé pour toujours s'entraîner sur la version X.0 du paquet ML.
Les données de la station de validation peuvent potentiellement être d'un volume beaucoup plus important car elles sont utilisées dans le workflow de production. Par conséquent, vous avez besoin d'une directive sur la quantité de données susceptibles d'être utiles, étant donné que l'entraînement du modèle nécessite du temps et une infrastructure. De plus, vous ne voulez pas que l'ensemble de données soit submergé par les données de la station de validation, car cela peut dégrader la qualité du modèle en raison du problème de densité d'informations mentionné ci-dessus.
The recommendation is to add a maximum of 2-3X the number of pages of Document Manager data and, beyond that, only cherry pick those vendors or document samples where you see major failures. If there are known major changes to the production data, such as a new language, or a new geographic region being onboarded to the business process (expanding from US to Europe or South Asia), then representative data for those languages and regions should be added to Document Manager for manual labelling. Validation Station data is not appropriate for such major scope expansion.
Voici un exemple de scénario. Vous avez choisi un bon moteur OCR, labellisé 500 pages dans Document Manager, résultant en de bonnes performances et vous avez déployé le modèle dans un workflow RPA de production. Validation Station commence à générer des données. Vous devez sélectionner au hasard jusqu'à un maximum de 1000 à 1500 pages à partir de Validation Station et les importer dans le Document Manager avec les 500 premières pages et réentraîner votre modèle ML. Après cela, vous devez exécuter un pipeline d'évaluation pour vous assurer que le modèle s'est réellement amélioré, puis vous devez déployer le nouveau modèle en production.
12. La boucle de réglage automatique (aperçu) (The Auto-Fine-tuning Loop (Preview))
The Auto-Fine-tuning Loop is a Preview capability that becomes useful for maintaining a high-preforming 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 Document 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.
AI Center offre la possibilité de mettre à jour automatiquement la compétence ML lorsqu'une nouvelle version d'un package ML est réentraînée. Cependant, cette mise à jour automatique ne prend pas en compte le score du Pipeline Complet, et il n'est donc pas recommandé d'utiliser cette fonctionnalité avec les pipelines de réapprentissage automatique de Document Understanding.
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 Document 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. Déployer votre automatisation
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.
- Que peut faire un modèle ML d'extraction de données ?
- Ensemble de données d'entraînement et d'évaluation
- Composants d'extraction de données
- Créer un modèle de ML hautement performant
- 1. Choisir un moteur OCR
- 2. Créer un ensemble de données d'entraînement (Create a Training dataset)
- 3. Créer un ensemble de données d'évaluation (Create an Evaluation dataset)
- 4. Définir des champs
- 5. Configurer les champs
- 6. Labelliser l'ensemble de données d'entraînement
- 7. Labelliser l'ensemble de données d'évaluation
- 8. Former et évaluer le modèle
- 9. Définir et mettre en œuvre des règles métier
- 10. (Facultatif) Choisir un seuil de confiance
- 11. Entraînement à l'aide des données de la station de validation
- 12. La boucle de réglage automatique (aperçu) (The Auto-Fine-tuning Loop (Preview))
- 13. Déployer votre automatisation