- Información general
- Primeros pasos
- Actividades
- Paneles de insights
- Proceso de Document Understanding
- Tutoriales de inicio rápido
- Componentes de marco
- Información general
- Actividades de Document Understanding
- Resumen de la clasificación de documentos
- Asistente para Configurar clasificadores de Clasificar ámbito de documento
- Clasificador inteligente de palabra clave
- Clasificador basado en palabras clave
- Clasificador de aprendizaje automático
- Clasificador generativo
- Actividades relacionadas con la clasificación de documentos
- Consumo de datos
- Llamadas a API
- Detalles del modelo
- Información general
- Document Understanding - Paquete ML
- DocumentClassifier: paquete ML
- Paquetes ML con capacidades OCR
- 1040: paquete ML
- 1040 Anexo C - Paquete ML
- 1040 Anexo D - Paquete ML
- 1040 Anexo E - Paquete ML
- 1040x: paquete ML
- 3949a: paquete ML
- 4506T: paquete ML
- 709: paquete ML
- 941x: paquete ML
- 9465: paquete ML
- ACORD125: paquete ML
- ACORD126 - Paquete ML
- ACORD131 - Paquete ML
- ACORD140 - Paquete ML
- ACORD25 - Paquete ML
- Extractos bancarios: paquete ML
- Conocimientos de embarque: paquete ML
- Certificado de incorporación: paquete ML
- Certificado de origen: paquete ML
- Cheques: paquete ML
- Certificado de producto secundario: paquete ML
- CMS1500 - Paquete ML
- Declaración de conformidad de la UE: Paquete ML
- Estados financieros: paquete ML
- FM1003: paquete ML
- I9 - Paquete ML
- Documentos de identidad: paquete ML
- Facturas: paquete ML
- FacturasAustralia: paquete ML
- FacturasChina - Paquete ML
- Facturas en hebreo: paquete ML
- FacturasIndia - Paquete ML
- FacturasJapón - Paquete ML
- Envío de facturas: paquete ML
- Listas de embalaje: paquete ML
- Nóminas - - Paquete ML
- Pasaportes: paquete ML
- Órdenes de compra: paquete ML
- Recibos - paquete ML
- ConsejosDeRemesas: paquete ML
- UB04 - Paquete ML
- Facturas de servicios públicos: paquete ML
- Títulos de vehículos: paquete ML
- W2 - Paquete ML
- W9 - Paquete ML
- Otros paquetes ML listos para usar
- Puntos finales públicos
- Limitaciones de tráfico
- Configuración de OCR
- Procesos
- Servicios de OCR
- Idiomas admitidos
- Aprendizaje profundo
- Entrenamiento de modelos de alto rendimiento
- Implantación de modelos de alto rendimiento
- Datos y seguridad
- Lógica de licencias y tarificación

Document Understanding classic user guide
Entrenamiento de modelos de alto rendimiento
The power of Machine Learning Models is that they are defined by training data rather than by explicit logic expressed in computer code. This means that extraordinary care is needed when preparing datasets because a model is only as good as the dataset that was used to train it. In that sense, what UiPath® Studio is to RPA workflows, a Document Type session (in Document UnderstandingDocument UnderstandingTM Cloud) is to Machine Learning capabilities. Both require some experience to be used effectively.
¿Qué puede hacer un modelo ML de extracción de datos?
Un modelo ML puede extraer datos de un solo tipo de documento, aunque puede abarcar varios idiomas diferentes. Es esencial que cada campo (Cantidad total, Fecha, etc.) tenga un significado único y coherente. Si un humano puede estar confuso sobre el valor correcto de un campo, un modelo ML también lo hará.
Pueden aparecer situaciones ambiguas. Por ejemplo, ¿es una factura de servicios públicos simplemente otro tipo de factura? ¿O se trata de dos tipos de documentos diferentes que requieren dos modelos ML distintos? Si los campos que necesita extraer son los mismos (es decir, tienen el mismo significado), entonces puedes tratarlos como un solo tipo de documento. Sin embargo, si necesitas extraer diferentes campos por distintos motivos (diferentes procesos empresariales), deberás tratarlos como dos tipos de documentos diferentes y, por tanto, entrenar dos modelos distintos.
When in doubt, start by training a single model, but keep the documents in different Document Manager batches (check the Filter drop-down at the top of the view) so you can easily separate them later if needed. In this way, the labeling work is not lost. When it comes to ML Models, the more data, the better. So, having a single model with ample data is a good place to start.
Conjuntos de datos de entrenamiento y evaluación
El Administrador de documentos se puede utilizar para crear dos tipos de conjuntos de datos: conjuntos de datos de entrenamiento y conjuntos de datos de evaluación.
Los conjuntos de datos de evaluación son relevantes para los científicos de datos o para solucionar problemas detallados. Sin embargo, para la gran mayoría de los escenarios de automatización Enterprise , solo se necesita y se recomienda el conjunto de datos de entrenamiento. Los procesos de entrenamiento ahora devuelven artefactos con puntuación completa, incluidos los siguientes:
- Precisión general del modelo: se usa como puntuación principal que se muestra tanto en la vista de Detalles del extractor de Document Understanding como en la carpeta de artefactos de AI Center (también accesible desde Document Understanding).
- Puntuación general del modelo y a nivel de campo F1: se proporciona, por motivos históricos, en la carpeta de artefactos del AI Center (a la que también se puede acceder desde Document Understanding).
- Métricas detalladas por campo y por lote, así como una comparación del rendimiento en el archivo de Excel disponible en la carpeta de artefactos del AI Center (también accesible desde Document Understanding).
Es posible puntuar el modelo como parte del entrenamiento porque el conjunto de entrenamiento se divide automáticamente de forma aleatoria en un 80% / 20% entre los datos de entrenamiento y validación, y las puntuaciones se calculan sobre los datos de validación.
A medida que aumenta el conjunto de datos, tanto la división de entrenamiento como la de validación evolucionan, lo que significa que las puntuaciones no son directamente comparables con el tiempo (que es lo que le interesaría a los científicos de datos). Sin embargo, reflejan el rendimiento del modelo en los datos más recientes, por lo que son más representativos del rendimiento actual del modelo en los datos de Production actuales (que es en lo que están interesados los propietarios de procesos empresariales).
Con este enfoque, tiene los siguientes beneficios:
- No corre el riesgo de ver puntuaciones medidas en datos obsoletos, potencialmente con años de antigüedad.
- Reducirá la cantidad de etiquetado que tiene que hacer.
- Todos los datos que se etiquetan contribuyen a mejorar el modelo, lo que lleva a un mejor rendimiento más rápido.
Componentes de extracción de datos
La extracción de datos se basa en los siguientes componentes:
- Reconocimiento óptico de caracteres
- Posprocesamiento de OCR
- Creación de palabras y líneas
- Agrupar caracteres en palabras y las palabras en líneas de texto
- Predicción del modelo de aprendizaje automático para cada palabra/casilla de la página
- Normalización de datos
- Por ejemplo, agrupar palabras en varias líneas en una dirección, aplicar el formato estándar aaaa-mm-dd a una fecha
- Selección de valor
- Aplicar un algoritmo para seleccionar cuál de las múltiples instancias de un valor determinado se devuelve realmente, para los casos en los que el documento tiene dos o más páginas y algunos campos aparecen en más de una página.
Niveles de confianza
¿Qué son los niveles de confianza?
When ML models make predictions, they are basically statistical guesses. The model is saying "this is probably the Total amount" of this Invoice. This begs the question: how probably? Confidence levels are an attempt to answer that question, on a scale from 0 to 1. However, they are NOT true probability estimates. They are just how confident the model is about its guesses, and therefore they depend on what the model has been trained on. A better way to think of them is as a measure of familiarity: how familiar is the model with this model input? If it resembles something the model has seen in training, then it might have a higher confidence. Otherwise it might have a lower confidence.
¿Para qué sirven los niveles de confianza?
Las automatizaciones empresariales necesitan formas de detectar y gestionar excepciones, es decir, los casos en los que una automatización sale mal. En las automatizaciones tradicionales, esto es bastante obvio porque cuando se interrumpe un flujo de trabajo de RPA, simplemente se detiene, se bloquea o genera un error. Ese error se puede detectar y gestionar en consecuencia. Sin embargo, los modelos de aprendizaje automático no arrojan errores cuando hacen malas predicciones. Entonces, ¿cómo determinamos cuándo un modelo ML ha cometido un error y debe activarse el flujo de gestión de excepciones? Esto a menudo implica la participación manual de personas, tal vez mediante el Action Center.
The best way to catch bad predictions, by far, is through enforcing business rules. For example, we know that on an invoice, the net amount plus the tax amount must equal the total amount. Or that the part numbers for the components ordered must have 9 digits. When these conditions do not hold, we know something has gone wrong, and we can trigger the exception handling flow. The is the preferred and strongly recommended approach. It is worth investing significant effort in building these kinds of rules, even using complex Regular Expressions, or even lookups in databases to validate Vendor names, or part numbers, etc. In some cases you may even want to extract some other document that is not of interest but only to cross reference and validate some values to the original document of interest.
Sin embargo, en algunos casos, ninguna de estas opciones existe y aún se desea detectar predicciones potencialmente malas. En estos casos, puede volver al nivel de confianza. Cuando el nivel de confianza para una predicción es bajo, por ejemplo, inferior a 0,6, el riesgo de que la predicción sea incorrecta es mayor que si la confianza es 0,95. Sin embargo, esta correlación es bastante débil. Hay muchas instancias en las que se extrae un valor con poca confianza, pero es correcto. También es posible, aunque relativamente raro, que se extraiga un valor con alta confianza (más de 0,9), pero es incorrecto. Por estas razones, recomendamos encarecidamente a los usuarios que confíen en las reglas empresariales tanto como sea posible y solo utilicen los niveles de confianza como último recurso.
¿Qué tipos de niveles de confianza hay?
Most components in the Document UnderstandingTM product return a confidence level. The main components of a Document UnderstandingTM workflow are Digitization, Classification and Extraction. Each of these has a certain confidence for each prediction. The Digitization and the Extraction confidence are both visually exposed in the Validation Station, so you can filter predictions and focus only on low confidence ones, to save time.
Escala de la puntuación de confianza (o calibración)
The confidence levels of different models will be scaled differently, depending on the model design. For example some models return confidence levels in the range 0.9-1 almost always, and only very rarely below 0.8. Other models have confidence levels spread much more evenly between 0 and 1, even if usually they are clustered at the higher end of the scale. As a result, the confidence thresholds on different models will be different. For example a confidence threshold on the OCR will not be the same as the threshold on the ML Extractor or the ML Classifier. Also, whenever there is a major architecture update on a model, like the one coming up with the release of the Helix Extractor Generative AI-based model architecture, the confidence level distribution will change, and confidence thresholds will need to be re-assessed.
Crear un modelo ML de alto rendimiento
Para lograr el mejor resultado en términos de tasa de automatización (porcentaje de reducción del trabajo manual medido en meses-persona por año necesarios para procesar tu flujo de documentos) deberías seguir cuidadosamente estos pasos:
-
Esto influye tanto en el OCR como en la creación de Word y Línea (que depende parcialmente del OCR), y por supuesto.
1. Elegir un motor OCR
Your default option should be UiPath Document OCR for European Latin-based languages, or UiPath Chinese-Japanese-Korean OCR. In case you need to process other languages, including Cyrillic, Devanagiri script, Thai, Vietnamese, Arabic, Hebrew or Persian, you may prefer Microsoft Azure Read OCR (Cloud only), Google Cloud Vision OCR (Cloud only) or Omnipage OCR (Activity pack in Studio). It is worth creating a few different Document Manager sessions with different OCR engines to check which performs best on your documents. Changing OCR engine later in the project can be costly.
Please be aware that the Digitize Document activity has the ApplyOcrOnPDF setting set to Auto by default, which means when operating on .pdf documents by default, Digitize tries to scrape as much text as possible from the .pdf itself, and only OCR images like logos, and combine the results.
However, .pdf documents are sometimes corrupt or unusually formatted leading to errors in the extracted text. In this case, set ApplyOCRonPDFs to Yes.
Another benefit of applying OCR on all .pdf documents using UiPath Document OCR is that UiPath Document OCR recognizes checkboxes which are critical elements of documents like forms. Be aware however that applying OCR on everything will slow down the Digitization a bit.
2. Definir campos
La definición de los campos es una conversación que debe tener lugar con el experto en la materia o el experto en el dominio que posee el proceso empresarial en sí. En el caso de facturas, sería el propietario del proceso de Cuentas por pagar. Esta conversación es fundamental, debe tener lugar antes de etiquetar los documentos para evitar la pérdida de tiempo, y requiere examinar juntos un mínimo de 20 muestras de documentos elegidos al azar. Hay que reservar un espacio de una hora para ello, y a menudo hay que repetirlo al cabo de un par de días, ya que la persona que prepara los datos se encuentra con situaciones ambiguas o casos límite.
No es raro que la conversación comience con la suposición de que hay que extraer, por ejemplo, 10 campos, y más tarde se acabe con 15.
Algunas configuraciones clave que debes tener en cuenta:
- Content type 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.
- Multi-line checkbox This is for parsing strings like addresses that may appear on more than 1 line of text.
- Multi-valued checkbox This is for handling multiple choice fields or other fields which may have more than one value, but are NOT represented as a table column. For example, an Ethnic group question on a government form may contain multiple checkboxes where you can select all that apply.
- Hidden fields Fields marked as Hidden can be labelled but they are held out when data is exported, so the model cannot be trained on them. This is handy when labeling a field is a work in progress, when it is too rare, or when it is low priority.
- Scoring 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. Only String type fields have the option to select Levenshtein scoring by default.
Cantidades en las facturas de servicios públicos
Un importe total puede parecer bastante sencillo, si bien las facturas de los servicios públicos contienen muchos importes. A veces es necesario el importe total que hay que pagar. Otras veces solo se necesita el importe de la factura actual, sin los importes arrastrados de periodos de facturación anteriores. En este último caso, hay que etiquetar de forma distinta incluso si la factura actual y el importe total pueden ser los mismos. Los conceptos son diferentes y los importes suelen ser diferentes.
Each field represents a different concept, and they need to be defined as cleanly as possible, so there is no confusion. If a human might be confused, the ML model will also be confused.
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.
Números de pedido en facturas
Los números de pedido pueden aparecer como valores únicos para una factura, o bien aparecer como parte de la tabla de elementos de línea de una factura, donde cada elemento de línea tiene un número de pedido diferente. En este caso, podría ser conveniente tener dos campos diferentes: n.º de pedido y n.º de elemento de pedido. Al mantener cada campo visual y conceptualmente coherente, es probable que el modelo cumpla mucho mejor su función. Sin embargo, debes asegurarte de que ambos estén bien representados en tus conjuntos de datos de entrenamiento y de evaluación.
Nombre del proveedor y dirección de pago en las facturas
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.
Filas de tablas
Hay que tener en cuenta dos conceptos distintos: las filas de la tabla y las líneas de texto. Una fila de la tabla incluye todos los valores de todos los campos de las columnas que pertenecen a esa fila. A veces pueden formar parte de la misma línea de texto que se extiende a lo largo de la página. Otras veces pueden estar en líneas diferentes.
Si una fila de la tabla consta de más de una línea de texto, entonces necesitará agrupar todos los valores en esa fila de la tabla usando la tecla de acceso rápido “/”. Al hacerlo, aparecerá un cuadro verde que cubre toda la fila de la tabla. A continuación se muestra un ejemplo de una tabla en la que las dos filas superiores constan de varias líneas de texto y deben agruparse usando la tecla de acceso rápido “/”, mientras que la tercera fila es una sola línea de texto y no necesita agruparse.

A continuación, se muestra un ejemplo de una tabla en la que cada fila de la tabla está formada por una sola línea de texto. No es necesario agruparlas con la tecla de acceso directo "/", ya que el Administrador de documentos lo hace de manera implícita.

Identificar dónde termina una fila y comienza otra mientras se lee de arriba a abajo a menudo puede ser un gran desafío para los modelos de extracción ML, especialmente en documentos como formularios en los que no hay líneas horizontales visuales que separen las filas. Dentro de nuestros paquetes ML hay un modelo especial que está entrenado para dividir las tablas en filas correctamente. Este modelo se entrena usando estos grupos que etiqueta con las teclas "/" o "Intro" y que se indican con cuadros transparentes de color verde.
3. Crear un conjunto de datos de entrenamiento
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. The later scenarios generally require separate Training datasets and separate models.
Hay 3 tipos de campos:
-
Regular fields (date, total amount) For Regular fields, you need at least 20-50 document samples per field. So, if you need to extract 10 regular fields, you need at least 200-500 samples. If you need to extract 20 regular fields, you 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)
Para los campos de columna, necesita al menos de 50 a 200 muestras de documentos por campo de columna, por lo que, para campos de 5 columnas, con diseños limpios y sencillos puede obtener buenos resultados con 300 muestras de documentos, pero para diseños muy complejos y diversos, puede necesitar más 1000. Para abarcar varios idiomas, necesita al menos 200- 300 muestras por idioma, suponiendo que cubran todos los diferentes campos. Por tanto, para 10 campos de encabezado y 4 campos de columna con 2 idiomas, 600 muestras pueden ser suficientes (400 para las columnas y encabezados más 200 para el idioma adicional), pero algunos casos pueden requerir 1200 o más.
-
Classification fields (currency) Classification fields generally require at least 10-20 samples from each class.
El rango recomendado para el tamaño del conjunto de datos se basa en la información proporcionada en la pestaña Calculadora. Para escenarios más sencillos con pocos campos regulares y diseños de documentos claros, se pueden obtener buenos resultados con los conjuntos de datos en el rango naranja bajo. Para situaciones más complejas, especialmente cuando se trata de tablas complejas con muchas columnas, los buenos resultados pueden requerir conjuntos de datos en rango naranja alto o incluso verde.
La tecnología ML está diseñada para gestionar escenarios de gran diversidad. Su uso para entrenar modelos en escenarios de baja diversidad (de 1 a 10 diseños) requiere un cuidado especial para evitar modelos frágiles que sean sensibles a pequeños cambios en el texto del OCR. Evita esto teniendo alguna variabilidad intencionada en los documentos de entrenamiento, imprimiéndolos y luego escaneándolos o fotografiándolos mediante aplicaciones de escáner para teléfonos móviles. Las ligeras distorsiones o los cambios de resolución confieren mayor solidez al modelo.
Además, estas estimaciones suponen que la mayoría de las páginas contienen todos o la mayoría de los campos. En los casos en los que tengas documentos con varias páginas, pero la mayoría de campos estén en una sola página, entonces el número de páginas pertinente será el número de ejemplos en esa única página donde aparecen la mayoría de los campos.
Los números anteriores son pautas generales, no requisitos estrictos. En general, se puede empezar con un conjunto de datos más pequeño y seguir añadiendo datos hasta conseguir una buena precisión. Esto es particularmente útil para sincronizar el trabajo de RPA con la creación del modelo. Además, se puede utilizar una primera versión del modelo para etiquetar previamente los datos adicionales (consulta la vista Configuración y el botón Predecir en el Administrador de documentos). Esto puede acelerar el etiquetado de los datos de entrenamiento adicionales.
Los modelos de aprendizaje profundo pueden generalizar
No es necesario que todos los diseños estén representadas en un conjunto de entrenamiento. De hecho, es posible que la mayoría de los diseños en nuestro flujo de documentos de producción no tengan ninguna muestra en tu conjunto de entrenamiento, o quizás solo una o dos. Esto es lo deseable, porque querrás aprovechar el poder de la IA para comprender los documentos y poder capaz de hacer predicciones correctas en documentos que no haya visto durante el entrenamiento. No es obligatorio disponer de un gran número de muestras por diseño, pues la mayoría de los diseños podrían no estar presentes en absoluto, o estar solo una o un par de veces, y el modelo seguiría siendo capaz de predecir correctamente, basándose en el aprendizaje de otros diseños.
Entrenamiento sobre un modelo listo para usar
Una situación habitual es extraer datos de las facturas, para lo cual tenemos un modelo predefinido, pero también hay 2 campos regulares más y 1 campo de columna más que el modelo de facturas previamente entrenado no reconoce. En este caso, normalmente necesitará un conjunto de datos mucho más pequeño que si hubiera entrenado todos los campos desde cero. La estimación del tamaño del conjunto de datos se proporciona cuando se crea un tipo de documento en Document Understanding Cloud y, a continuación, se puede acceder a él en la vista Diagnóstico del conjunto de datos. Sin embargo, tenga en cuenta que cualquier documento que utilice para entrenar un modelo debe etiquetarse completamente, incluidos los campos nuevos, que el modelo listo para usar no reconoce, y también el original de los campos, que el reconoce.
Desigualdad de ocurrencias en el campo
Algunos campos pueden aparecer en todos los documentos (por ejemplo, fecha, número de factura) mientras que otros pueden aparecer solo en el 10% de los documentos (por ejemplo, gastos de gestión, descuento). En estos casos, necesitará tomar una decisión empresarial. Si esos campos raros no son cruciales para su automatización, puede salirse con la suya con un pequeño número de muestras (10-15) de ese campo en particular, es decir, páginas que contienen un valor para ese campo. Sin embargo, si esos campos son cruciales, deberá asegurarse de incluir en su conjunto de formación al menos 30-50 muestras de ese campo para asegurarse de abarcar toda la diversidad.
Conjuntos de datos equilibrados
En el caso de las facturas, si un conjunto de datos contiene facturas de 100 proveedores, pero la mitad del conjunto de datos consta solo de facturas de un solo proveedor, entonces se trata de un conjunto de datos muy desequilibrado. Un conjunto de datos perfectamente equilibrado es donde cada proveedor aparece un número igual de veces. No es necesario que los conjuntos de datos estén perfectamente equilibrados, pero debes evitar que más del 20% de todo tu conjunto de datos proceda de un solo proveedor. En algún momento, un mayor número de datos no ayuda, e incluso podría degradar la precisión en otros proveedores porque el modelo optimiza (sobreajusta) demasiado para un proveedor.
Conjuntos de datos representativos
Los datos deben seleccionarse de manera que cubran la diversidad de los documentos que pueden encontrarse en el flujo de trabajo de producción. Por ejemplo, si se reciben facturas en inglés, pero algunas de ellas proceden de EE. UU., India y Australia, es probable que tengan un aspecto distinto, por lo que hay que asegurarse de tener muestras de documentos de los tres países. Esto es pertinente no solo para el propio entrenamiento del modelo, sino también para el etiquetado, pues a medida que etiquetas los documentos podrías descubrir que necesitas extraer campos nuevos y distintos de algunas de estas regiones, como el código GSTIN de la India, o el código ABN de Australia.
División entrenamiento / validación
Cualquier conjunto de datos de entrenamiento se divide automáticamente en segundo plano en un Conjunto de entrenamiento (80% seleccionado aleatoriamente) y un Conjunto de Validación (20% seleccionado aleatoriamente). Durante el entrenamiento de modelos de aprendizaje profundo, el conjunto de entrenamiento se usa para la propagación hacia atrás, la parte que modifica las ponderaciones de los nodos de la red, mientras que el conjunto de validación solo se usa para saber cuándo detener el entrenamiento. En otras palabras, se utiliza para evitar un sobreajuste en el conjunto de entrenamiento.
Así es como podemos obtener las puntuaciones de evaluación completas al final de cualquier ejecución de entrenamiento: devolvemos las puntuaciones en el conjunto de validación. Este conjunto no se utiliza técnicamente para entrenar la red, solo para prevenir el sobreajuste. Sin embargo, dado que se selecciona aleatoriamente el 20% de todo el conjunto de datos, tiende a distribuirse de manera similar al conjunto de entrenamiento. Esta coherencia es buena porque significa que las puntuaciones que obtiene reflejan la capacidad del modelo para aprender de los datos, que es lo que normalmente nos importa. Si un modelo no puede aprender, significa que los datos son inconsistentes o el modelo tiene una limitación, y esos son puntos cruciales que debemos saber de inmediato al entrenar un modelo.
La desventaja de este enfoque es que las puntuaciones no pueden necesariamente compararse de manera exacta a medida que el conjunto de datos crece, y también que las puntuaciones no reflejan la capacidad del modelo para generalizar, solo su capacidad de aprender. Sin embargo, las comparaciones básicas y la capacidad de medición para generalizar son preocupaciones técnicas de la ciencia de datos que solo tienen un impacto indirecto en el rendimiento empresarial o el retorno de la inversión para la mayoría de las automatizaciones.
4. Etiquetar el conjunto de datos de entrenamiento
Al etiquetar los datos de entrenamiento, hay que centrarse en los cuadros delimitadores de las palabras en el panel de documentos del Administrador de documentos. Los valores analizados en las barras laterales derecha o superior no son importantes, ya que no se utilizan para el entrenamiento.
Cada vez que un campo aparece varias veces en una página, siempre que represente el mismo concepto, todos deben estar etiquetados.
Cuando el OCR se salta una palabra o se equivoca en algunos caracteres, basta con etiquetar el cuadro delimitador si lo hay, y si no, se omite y se continúa. No es posible añadir una palabra en el Administrador de documentos, ya que, aunque lo hicieras, la palabra seguiría faltando durante la ejecución, por lo que añadirla no sirve de nada al modelo.
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.
5. Entrenar el extractor
To create an extractor, go to the Extractors view in Document Understanding and select the Create Extractor button at the top right. You can then select the Document Type, the ML Model and Version you would like to use. You can monitor the progress on the Extractors tab, or in the Details view of the Extractor, which contains a link to the AI Center pipeline, where you can check the detailed logs in real time.
When evaluating an ML model, the most powerful tool is the evaluation_<package name>.xlsx file generated in the artifacts/eval_metrics folder in AI Center pipeline details view. On the first sheet you can check a detailed Accuracy scores report, including overall scores, and also per field and per batch.
En este archivo de Excel puedes comprobar qué predicciones están fallando y en qué archivos, y puedes observar inmediatamente si se trata de un error de OCR o de extracción o análisis de ML, y si se puede corregir mediante lógica simple en el flujo de trabajo de RPA, o requiere un motor de OCR diferente, más datos de entrenamiento o mejorar el etiquetado o las configuraciones de los campos en el Gestor de documentos.
Este archivo de Excel también es muy útil para identificar las reglas empresariales más relevantes que debe aplicar al flujo de trabajo de RPA con el fin de detectar errores comunes y enviarlos a la Estación de validación en el Centro de Actions para su revisión manual. Las reglas empresariales son, con diferencia, la forma más fiable de detectar errores.
Para aquellos errores que no puedan detectarse con reglas de negocio, también puedes utilizar niveles de confianza. El archivo Excel también contiene niveles de confianza para cada predicción, para que puedas utilizar funciones de Excel como clasificar y filtrar y así determinar cuál es un buen umbral de confianza para tu escenario empresarial.
Overall, the evaluation_<package_name>.xlsx Excel file is a key resource you need to focus on to get the best results from your AI automation.
GPU training is highly recommended for large and production datasets. CPU training is much slower and should be used sparingly, for small datasets for demo or testing purposes. For more information, check the Training Pipelines page.
6. Definir e implementar reglas empresariales
En este paso, debes preocuparte por los errores del modelo y por cómo detectarlos. Existen dos maneras principales de detectar errores:
- mediante la aplicación de reglas empresariales,
- through applying lookups in Systems of Record in the customer organization
- mediante la aplicación de un umbral mínimo de confianza.
La forma más efectiva y fiable de detectar errores es definir reglas empresariales y búsquedas. Los niveles de confianza nunca pueden ser 100% perfectos, siempre habrá un porcentaje pequeño pero distinto de cero de predicciones correctas con baja confianza o predicciones erróneas con gran confianza. Además, y quizás lo más importante, un campo que falta no tiene confianza, por lo que un umbral de confianza nunca puede detectar errores por los que un campo no se extrae en absoluto. En consecuencia, los umbrales de nivel de confianza solo deben usarse como alternativa, una red de seguridad, pero nunca como la principal forma de detectar errores críticos para el negocio.
Ejemplos de reglas empresariales:
- El importe neto más el importe de impuesto debe ser igual al importe total.
- El importe total debe ser mayor o igual al importe neto.
- Los campos Número de factura, Fecha, Importe total (y otros) deben estar presentes.
- El número de pedido (si está presente) debe existir en la base de datos de pedidos.
- La fecha de la factura debe ser anterior y no puede tener más de X meses de antigüedad.
- La fecha de vencimiento debe ser futura y no debe superar Y días/meses.
- Para cada elemento de línea, la cantidad multiplicada por el precio unitario debe ser igual al importe de línea.
- La suma de los importes de las líneas debe ser igual al importe neto o al importe total.
- etc.
Nota:
In case of numbers, a rounding to eight decimals is performed.
En particular, los niveles de confianza de los campos de columna casi nunca deberían utilizarse como mecanismo de detección de errores, ya que los campos de columna (por ejemplo, los elementos de línea en facturas o pedidos) pueden tener docenas de valores. Por lo tanto, establecer un umbral mínimo para tantos valores puede ser especialmente poco fiable, porque es más que probable que un valor sea de poca confianza, lo que llevaría a que la mayoría o todos los documentos se enviaran a validación por parte de una persona, muchas veces de forma innecesaria.
Las reglas empresariales deben aplicarse como parte del flujo de trabajo RPA, y el fallo de la regla empresarial se transmite al validador humano para centrar su atención y acelerar el proceso.
When defining Business Rules, please keep in mind that the Starts with, Ends with, and Contains values are case sensitive.
7. (Opcional) Elegir un umbral de confianza
Una vez definidas las reglas empresariales, a veces puede quedar un pequeño número de campos para los que no existen reglas empresariales, o para los que es poco probable que las reglas empresariales detecten todos los errores. Para ello, es posible que tengas que utilizar un umbral de confianza como último recurso.
The main tool to set this threshold is the Excel spreadsheet which is output by the Training pipeline in the Outputs > artifacts > eval_metrics folder.
This evaluation_<package name>.xlsx file contains a column for each field, and a column for the confidence level of each prediction. By sorting the table based on the confidence columns you may check where the errors start appearing for any given field and set a threshold above that level to ensure that only correctly extracted documents are sent straight through.
8. Sintoniza con los datos de la estación de validación
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.
El segundo aspecto clave es que los datos de la Estación de validación tienen una menor densidad de información que los datos etiquetados en el Administrador de documentos. Fundamentalmente, al usuario de la estación de validación solo le interesa obtener el valor correcto una vez. Si una factura tiene 5 páginas, y el número de factura aparece en todas las páginas, el usuario de la Estación de validación lo valida solamente en la primera página. Así, el 80 % de los valores queda sin etiquetar. En el Administrador de documentos, todos los valores están etiquetados.
Finalmente, ten en cuenta que los datos de la Estación de Validación deben agregarse al conjunto de datos original etiquetado manualmente, para que siempre tengas un único conjunto de datos de entrenamiento que aumenta de tamaño con el tiempo. Siempre debes entrenar en el paquete ML con la versión menor 0 (cero), que es la versión lanzada por UiPath lista para su uso.
It is often wrongly assumed that the way to use Validation Station data is to iteratively train 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 Document 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.
Precauciones sobre el uso de los datos de la estación de validación
Los datos de la estación de validación pueden ser potencialmente de un volumen mucho mayor, ya que se utilizan en el flujo de trabajo de producción. No quieres que el conjunto de datos se sobrecargue con los datos de la estación de validación porque esto puede degradar la calidad del modelo debido a la incidencia de la densidad de información mencionada anteriormente.
La recomendación es añadir un máximo de 2 a 3 veces el número de páginas de datos de Document Manager y, más allá de eso, solo seleccionar cuidadosamente aquellos proveedores o muestras donde observes fallos importantes. Si hay cambios importantes conocidos en los datos de producción, como un nuevo idioma o una nueva región geográfica que se incorpora al proceso empresarial (expandiéndose de los EE. UU. a Europa o el sur de Asia), entonces los datos representativos para esos idiomas y regiones deben añadirse a Document Manager para el etiquetado manual. Los datos de la estación de validación no son apropiados para una expansión tan importante del ámbito.
Otro problema potencial con los datos de la estación de validación es el equilibrio. En Production , es común que la mayoría del tráfico provenga de un pequeño subconjunto de proveedores / clientes / regiones del mundo. Si se permite en el conjunto de entrenamiento tal como está, esto puede dar lugar a un modelo muy sesgado que tiene un buen rendimiento en un pequeño subconjunto de los datos, pero un rendimiento deficiente en la mayoría del resto de los datos. Por tanto, es importante tener especial cuidado al añadir datos de la estación de validación a un conjunto de entrenamiento.
Here is a sample scenario. You have chosen a good OCR engine, labeled 500 pages in Document Manager, resulting in good performance, and you have deployed the model in a production RPA workflow. Validation Station is starting to generate data. You should randomly select up to a maximum of 1000-1500 pages from Validation Station and import them into the Document Manager together with the first 500 pages and train your ML model again. After that, you should look very carefully at the evaluation_<package name>.xlsx to make sure the model actually improved, and then you should deploy the new model to production.
9. Implementar su automatización
Make sure to use the Document Understanding Process template from the Templates section in the Studio start screen in order to apply best practices in Enterprise RPA architecture.
- ¿Qué puede hacer un modelo ML de extracción de datos?
- Conjuntos de datos de entrenamiento y evaluación
- Componentes de extracción de datos
- Niveles de confianza
- ¿Qué son los niveles de confianza?
- ¿Para qué sirven los niveles de confianza?
- ¿Qué tipos de niveles de confianza hay?
- Escala de la puntuación de confianza (o calibración)
- Crear un modelo ML de alto rendimiento
- 1. Elegir un motor OCR
- 2. Definir campos
- 3. Crear un conjunto de datos de entrenamiento
- 4. Etiquetar el conjunto de datos de entrenamiento
- 5. Entrenar el extractor
- 6. Definir e implementar reglas empresariales
- 7. (Opcional) Elegir un umbral de confianza
- 8. Sintoniza con los datos de la estación de validación
- 9. Implementar su automatización