- Visão geral
- Processo do Document Understanding
- Tutoriais de início rápido
- Componentes do framework
- Pacotes de ML
- Pipelines
- Gerenciador de Dados
- Serviços de OCR
- Document Understanding implantado no Automation Suite
- Document Understanding implantado no AI Center autônomo
- Aprendizagem profunda
- Crie um modelo de ML de alto desempenho
- Licenciamento
- Referências
- 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
O poder dos modelos de Machine Learning é que são definidos por dados de treinamento, e não por lógica explícita expressa em código de computador. Isso significa que é necessário um cuidado extraordinário ao preparar conjuntos de dados porque um modelo terá a qualidade do conjunto de dados usado para treiná-lo. Nesse sentido, o que o UiPath Studio representa para os fluxos de trabalho de RPA, o Document Manager representa para os recursos de Machine Learning. Ambos requerem certa experiência para serem usados de forma eficaz.
O que um modelo de ML de extração de dados pode fazer?
Um Modelo de ML pode extrair dados de um único tipo de documento, embora possa abranger vários idiomas diferentes. É essencial que cada campo (Valor Total, Data, etc.) tenha um significado único e consistente. Se um ser humano pode ficar confuso sobre o valor correto de um campo, um modelo de ML também ficará.
Situações ambíguas podem aparecer. Por exemplo, uma conta de serviços públicos é apenas outro tipo de fatura? Ou são dois tipos de documentos diferentes que exigem dois Modelos de ML diferentes? Se os campos que você precisa extrair são os mesmos (ou seja, eles têm o mesmo significado), você pode tratá-los como um único tipo de documento. No entanto, se você precisar extrair campos diferentes por motivos diferentes (processos de negócios diferentes), isso pode indicar que você precisará tratá-los como dois tipos de documentos distintos e, portanto, treinar dois modelos diferentes.
Sempre que tiver dúvidas, comece treinando um único modelo, mas mantenha os documentos em lotes diferentes do Document Manager (consulte o menu suspenso Filtro no centro superior do modo de exibição do Document Manager) para poder separá-los facilmente posteriormente, se necessário. Desta forma, o trabalho de rotulagem não é perdido. Quando se trata de Modelos de ML, quanto mais dados, melhor. Portanto, ter um único modelo com dados amplos é um bom ponto de partida.
Conjuntos de dados de treinamento e avaliação
Document Manager can be used to build two types of datasets: training datasets and evaluation datasets. Both are essential for building a high-performing ML Model and you need to budget time and effort for creating and maintaining both. You cannot obtain a high-performing ML model without an evaluation dataset that is representative of the production document traffic.
Cada tipo de conjunto de dados é rotulado de uma maneira diferente:
- Training datasets rely only on the bounding boxes of the words on the page representing the different pieces of information you need to extract.
- Ao rotular um conjunto de treinamento, concentre-se somente na própria página e nas caixas de palavras.
- Evaluation datasets rely only on the values of the fields, which appear in the sidebar (for Regular fields) or the top bar (for Column fields).
- Ao rotular um conjunto de avaliação, concentre-se nos valores sob os nomes dos campos na barra lateral ou na barra superior. Isso não significa que você precise digitá-los manualmente, pois isso é propenso a erros tipográficos, portanto ainda é recomendável rotular clicando nas caixas da página, mas certifique-se de verificar se os valores estão corretos.
Mais detalhes sobre como conduzir Avaliações adequadas podem ser encontrados abaixo.
Componentes de extração de dados
A extração de dados depende dos seguintes componentes:
- Reconhecimento de caracteres óptico
- Compilação de Palavra e Linha
- Agrupando caracteres em palavras e palavras em linhas de texto da esquerda para a direita
- Previsão do modelo de Machine Learning para cada palavra/caixa na página
- Limpeza, análise e formatação dos intervalos de texto
- Por exemplo, agrupar palavras em várias linhas em um endereço, formatar uma data no formato padrão aaaa-mm-dd
- Aplicando um algoritmo para selecionar qual valor é retornado
- Para os casos em que o documento tem 2 ou mais páginas e alguns campos aparecem em mais de uma página
Crie um modelo de ML de alto desempenho
Para obter o melhor resultado em termos de taxa de automação (redução percentual do trabalho manual medido em pessoas-mês por ano necessário para processar seu fluxo de documentos), você deve seguir estas etapas com atenção:
- Escolha o melhor mecanismo de OCR para seus documentos
- Isso influencia tanto o OCR quanto a construção de palavras e linhas (que depende parcialmente do OCR) e, por consequência, tudo relacionado.
- Selecione um conjunto de dados bem equilibrado e representativo para treinamento
- Selecione um conjunto de dados representativo para avaliação
- Defina os campos a serem extraídos
- Configure os campos
- Rotule o conjunto de dados de treinamento
- Rotule o conjunto de dados de avaliação
- Treine e avalie o modelo no AI Center
- Defina e implemente as regras de negócios para processamento do output do modelo
- (Opcional) Escolha os limites de confiança para a extração
- Treinamento usando dados do Validation Station
- O Loop de ajuste automático (Pré-visualização)
- Implante sua automação
1. Escolha o mecanismo de OCR
Para escolher um mecanismo de OCR, você deve criar diferentes sessões do Document Manager, configurar diferentes mecanismos de OCR e tentar importar os mesmos arquivos para cada um deles para examinar as diferenças. Você deve se concentrar nas áreas que pretende extrair. Por exemplo, se você precisar extrair nomes de empresas que aparecem como parte de logotipos em faturas, convém verificar qual mecanismo de OCR tem melhor desempenho no texto dos logotipos.
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 – it will be well worth your time later on since everything downstream depends on it.
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. Crie um conjunto de dados de treinamento
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. CJK scenarios will generally require separate Training datasets and separate models.
Há 3 tipos de campos:
- Campos regulares (data, valor total)
- Para campos regulares, você precisa de pelo menos 20 a 50 amostras por campo. Portanto, se você precisar extrair 10 campos regulares, precisará de pelo menos 200 a 500 amostras. Se você quiser extrair 20 campos regulares, precisaria de pelo menos 400-1000 amostras de documentos. A quantidade de amostras que você precisa aumenta com o número de campos. Mais campos significa que você precisa de mais amostras, cerca de 20 a 50 vezes mais.
- Campos de coluna (preço unitário do item, quantidade do item)
- Para campos de coluna, você precisa de pelo menos 50-200 amostras por campo de coluna, portanto, para campos de 5 colunas, com layouts limpos e simples, você pode obter bons resultados com 300 amostras, mas para layouts altamente complexos e diversos, pode exigir mais de 1000. Para abranger vários idiomas, você precisa de pelo menos 200 a 300 amostras por idioma, supondo que cubram todos os campos diferentes. Portanto, para 10 campos de cabeçalho e 4 campos de coluna com 2 idiomas, 600 amostras podem ser suficientes (400 para as colunas e cabeçalhos mais 200 para o idioma adicional), mas em alguns casos podem exigir 1200 ou mais.
- Campos de classificação (moeda)
- Os campos de classificação geralmente exigem pelo menos 10 a 20 amostras de cada classe.
As diretrizes acima pressupõem que você está resolvendo um cenário de alta diversidade, como faturas ou pedidos de compra com dezenas a centenas, ou milhares de layouts. No entanto, se estiver resolvendo um cenário de baixa diversidade, como um formulário de imposto ou faturas com muito poucos layouts (menos de 5 a 10), o tamanho do conjunto de dados será determinado, de forma majoritária, pelo número de layouts. Nesse caso, você deve começar com 20 a 30 páginas por layout e adicionar mais se necessário - principalmente se as páginas forem muito densas com grande número de campos a serem extraídos. Por exemplo, criar um modelo para extrair 10 campos de 2 layouts pode exigir 60 páginas, mas se você precisar extrair 50 ou 100 campos de 2 layouts, poderá começar com 100 ou 200 páginas e adicionar mais conforme necessário para obter o resultado desejado. precisão. Nesse caso, a distinção campos regulares/campos de coluna é menos 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 which are sensitive to slight changes in the OCR text. One way to avoid this is to make sure that there is some deliberate variability in the training documents by printing them and then scanning or photographing them using mobile phone scanner apps. The slight distortions or changing resolutions make the model more robust.
Além disso, essas estimativas pressupõem que a maioria das páginas contém todos ou a maioria dos campos. Nos casos em que você possui documentos com várias páginas, mas a maioria dos campos está em uma única página, o número relevante de páginas é o número de exemplos daquela página em que a maioria dos campos aparece.
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 in order 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.
Os modelos de Deep Learning podem generalizar
Você não precisa ter todos os layouts representados em um conjunto de treinamento. Na verdade, é possível que a maioria dos layouts em nosso fluxo de documentos de produção tenha zero amostras em seu conjunto de treinamento, ou talvez 1 ou 2 amostras. Isso é desejável, pois você deseja aproveitar o poder da IA para entender os documentos e ser capaz de fazer previsões corretas sobre documentos que não viu durante o treinamento. Um grande número de amostras por layout não é obrigatório, pois a maioria dos layouts pode não estar presente ou estar presente apenas 1 ou 2 vezes, e o modelo ainda seria capaz de prever corretamente, com base no aprendizado de outros layouts.
Treinamento em um modelo predefinido
Uma situação comum é extrair dados de Faturas, mas você também tem mais 2 campos Regulares e mais 1 campo Coluna que o modelo de Faturas predefinido não reconhece. Nesse caso, você precisa de um conjunto de treinamento com 50 amostras por novo campo Regular e um mínimo de 100 amostras por novo campo de Coluna. Então, 200 páginas é um bom começo. Este é geralmente um conjunto de dados muito menor do que se você tivesse treinado todos os campos do zero.
Essas 200 páginas precisam ser rotuladas completamente, incluindo os novos campos, que o modelo pré-configurado não reconhece, e também o original dos campos, que o modelo pré-configurado reconhece.
Ocorrências de campo desiguais
Alguns campos podem existir em todos os documentos (por exemplo, data, número da fatura), enquanto alguns campos podem aparecer apenas em 10% das páginas (por exemplo, taxas de manuseio, desconto). Nesses casos, você precisa tomar uma decisão de negócios. Se esses campos incomuns não forem críticos para sua automação, um pequeno número de amostras (10-15) desse campo específico será suficiente, ou seja, páginas que contenham um valor para esse campo. No entanto, se esses campos forem críticos, você precisará incluir em seu conjunto de treinamento pelo menos 30 a 50 amostras desse campo para garantir a cobertura total da diversidade.
Conjuntos de dados equilibrados
No caso de faturas, se um conjunto de dados contém faturas de 100 fornecedores, mas metade do conjunto de dados consiste apenas em faturas de um único fornecedor, esse é um conjunto de dados muito desequilibrado. Um conjunto de dados perfeitamente equilibrado exige que cada fornecedor apareça um número igual de vezes. Os conjuntos de dados não precisam ser perfeitamente equilibrados, mas você deve evitar que mais de 20% de todo o seu conjunto de dados seja proveniente de um único fornecedor. Em algum ponto, mais dados não ajudam e podem até afetar a precisão de outros fornecedores, pois o modelo se otimizará demasiadamente (ajuste em excesso) para um fornecedor.
Conjuntos de dados representativos
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. Crie um conjunto de dados de avaliação
Por outro lado, quando nos referimos aos conjuntos de treinamento as páginas e o número de páginas são o mais importante, no caso dos conjuntos de avaliação, nos referimos apenas aos documentos e ao número de documentos. As pontuações para as versões v2021.10 e posteriores são calculadas por documento.
Os conjuntos de dados de avaliação podem ser menores. Eles podem ser de 50 a 100 documentos (ou mesmo apenas 30 a 50 em cenários de baixa diversidade) e podem aumentar ao longo do tempo para algumas centenas de documentos. É importante que eles sejam representativos do fluxo de dados de produção. Portanto, uma boa abordagem é selecionar aleatoriamente entre os documentos processados no fluxo de trabalho da RPA. Mesmo que alguns fornecedores sejam super-representados, não há problema. Por exemplo, se um único fornecedor representa 20% do seu tráfego de faturas, não há problema se esse fornecedor também represente 20% do seu conjunto de avaliação, pois as métricas de avaliação se aproximam da sua métrica de negócios, ou seja, redução de pessoas-mês gastas no processamento manual de documentos.
When importing Evaluation data into Document Manager you need to make sure you check the “Make this an evaluation set” box on the Import dialog window. In this way, you guarantee 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 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. Defina campos
A definição de campos é uma conversa que precisa acontecer com o especialista no assunto ou o especialista no domínio, que sejam responsáveis pelo processo de negócios. Para faturas, seria o proprietário do processo de Contas a Pagar. Essa conversa é crítica, precisa acontecer antes que qualquer documento seja rotulado para evitar perda de tempo e requer avaliar juntos um mínimo de 20 amostras de documentos escolhidas aleatoriamente. Um intervalo de uma hora precisa ser reservado para isso e, muitas vezes, precisa ser repetido após alguns dias, pois a pessoa que prepara os dados se depara com situações ambíguas ou casos extremos.
Não é incomum que a conversa comece com a suposição de que você precisa extrair, digamos, 10 campos, e termina com 15. Alguns exemplos são descritos nas subseções abaixo.
Algumas configurações importantes que você precisa conhecer:
- Tipo de Conteúdo
- 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.
- Caixa de seleção multi-linha
- Isto é para analisar strings como endereços que podem aparecer em mais de 1 linha de texto.
- Campos ocultos
- Os campos marcados como Ocultos podem ser rotulados, mas são mantidos quando os dados são exportados, de modo que o modelo não serão treinado neles. Isso é útil quando rotular um campo é um trabalho em andamento, quando é muito raro ou quando é de baixa prioridade.
- Pontuação
- 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.
Quantidades em contas de serviço público
Um valor total pode parecer bastante simples, mas as contas de serviços públicos contêm muitos valores. Às vezes, você precisa do valor total a ser pago, outras vezes, precisa apenas do valor da fatura atual – sem os valores transportados de períodos de cobrança anteriores. Neste último caso, você precisa rotular de forma diferente, mesmo que a fatura atual e o valor total possam ser os mesmos. Os conceitos diferem e os valores são, muitas vezes, diferentes.
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 might confuse it, the ML model will also.
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 ordem de compra em faturas
Os números de pedido podem aparecer como valores únicos para uma fatura ou podem aparecer como parte da tabela de itens de linha em uma fatura, onde cada item de linha tem um número de pedido diferente. Nesse caso, pode fazer sentido ter dois campos diferentes: po-no (número de pedido) e item-po-no (número de pedido por item). Ao manter cada campo visual e conceitualmente consistente, o modelo provavelmente fará um trabalho muito melhor. No entanto, você precisa garantir que ambos estejam bem representados em seus conjuntos de dados de treinamento e avaliação.
Nome do fornecedor e nome do endereço de pagamento nas faturas
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. Or there may be some other stamp or handwriting or wrinkle over the text. In these cases, people might label the name which 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 done 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 would want to create 2 fields, vendor-name and payment-addr-name. Then you can look both up in a vendor database and use the one that matches or only use payment-addr-name when the vendor-name is missing.
Linhas de tabelas
Há dois conceitos distintos a serem lembrados: linhas de tabela e linhas de texto. Uma linha de tabela inclui todos os valores de todos os campos de colunas que pertencem a essa linha. Às vezes, todos podem fazer parte da mesma linha de texto que atravessa a página. Outras vezes, podem estar em linhas diferentes.
Se uma linha da tabela consiste em mais de uma linha de texto, você precisa agrupar todos os valores nessa linha da tabela usando a tecla de atalho “/”. Ao fazer isso, uma caixa verde aparecerá cobrindo toda a linha da tabela. Aqui está um exemplo de uma tabela em que as 2 primeiras linhas consistem em várias linhas de texto e precisam ser agrupadas usando a tecla de atalho “/”, enquanto a terceira linha é uma única linha de texto e não precisa ser agrupada.
Este é um exemplo de uma tabela em que cada linha consiste em uma única linha de texto. Você não precisa agrupá-los usando a tecla de atalho “/”, pois isso é feito implicitamente pelo Document Manager.
Dividir itens
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 are rows there you probably look at how many amounts there are on the right side. Each amount refers to a line item in general. This is an indication that line-amount is a column where you should enable Split Items. Other columns can be also 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. Configure os campos
A configuração mais importante é o Tipo de Conteúdo, com exceção de String:
- Número
- Data
- Telefone
- Número de ID
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 would 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. Rotule o conjunto de dados de treinamento
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.
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.
Quando o OCR perder uma palavra ou errar alguns caracteres, apenas rotule a caixa delimitadora, se houver, e, se não, ignore-a e continue. Não há possibilidade de adicionar uma palavra no Document Manager, pois, mesmo que você tenha feito isso, a palavra ainda estaria ausente durante a execução, portanto, adicioná-la não ajudaria em nada o 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 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. Rotule o conjunto de dados de avaliação
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. Treine e avalie o modelo
A exportação de todo o conjunto de dados, incluindo lotes de treinamento e teste, é permitida porque os pipelines de treinamento no AI Center ignoram os dados de teste. No entanto, os pipelines de avaliação irão executar a avaliação em todo o conjunto de dados de avaliação, independentemente de ser composto de dados de treinamento ou teste. O tipo de um determinado documento é exibido logo abaixo do nome do arquivo, na parte superior central da janela do Document Manager.
When evaluating a 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 or a 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 or the field configurations in Document Manager.
Esse arquivo do Excel também é muito útil para identificar as regras de negócios mais relevantes que você precisa aplicar ao fluxo de trabalho de RPA para detectar erros comuns no roteamento para o Validation Station no Action Center para revisão manual. As regras de negócios são, de longe, a maneira mais confiável de detectar erros.
Para os erros que não podem ser detectados pelas regras de negócios, você também pode usar níveis de confiança. O arquivo do Excel também contém níveis de confiança para cada previsão para que você possa usar os recursos do Excel, como classificação e filtragem, e determinar qual é um bom limite de confiança para seu cenário de negócios.
No geral, o arquivo do Excel assessment.xlsx é um recurso importante no qual você precisa se concentrar para obter os melhores resultados de sua automação de IA.
9. Defina e implemente regras de negócios
Nesta etapa, você deve se preocupar com os erros do modelo e como detectá-los. Há 2 maneiras principais de detectar erros:
- através da aplicação de regras de negócios
- através da aplicação de um limite mínimo de nível de confiança
A maneira mais eficaz e confiável de detectar erros é definindo regras de negócios. Os níveis de confiança nunca podem ser 100% perfeitos, sempre haverá uma porcentagem pequena, mas diferente de zero, de previsões corretas com baixa confiança ou previsões erradas com alta confiança. Além disso, e talvez o mais importante, um campo ausente não tem confiança, portanto, um limite de confiança nunca pode detectar erros nos quais um campo não é extraído. Consequentemente, os limites de nível de confiança devem ser usados apenas como um fallback, uma rede de segurança, mas nunca como a principal maneira de detectar erros críticos para os negócios.
Exemplos de regras de negócios:
- O valor líquido mais o valor do imposto deve ser igual ao valor total
- O valor total deve ser maior ou igual ao valor líquido
- Invoice number, Date, Total amount (and potentially other fields) must be present
- O número de PO (se presente) deve existir no banco de dados PO
- A data de fatura deve estar no passado e não pode ter mais de X meses
- A data de vencimento deve ser no futuro e não mais de Y dias/meses
- For each line item the quantity multiplied by unit price must equal the line amount
- A soma dos valores das linhas deve ser igual ao valor líquido ou total
- etc.
Em específico, os níveis de confiança dos campos de coluna quase nunca devem ser usados como um mecanismo de detecção de erros, uma vez que os campos de coluna (por exemplo, itens de linha em faturas ou ordens de compra) podem ter dezenas de valores, portanto, definir um limite mínimo para tantos valores pode ser especialmente não confiável, pois é mais do que provável que um valor tenha pouca confiança, portanto, isso levaria a maioria/todos os documentos a serem encaminhados para validação humana, muitas vezes desnecessariamente.
As regras de negócios devem ser aplicadas como parte do fluxo de trabalho do RPA e seria ideal se a falha da regra de negócios fosse passada para a validação manual para direcionar sua atenção e agilizar o processo.
10. (Opcional) Escolha um limite de confiança
Após a definição das regras de negócios, às vezes, pode haver um pequeno número de campos para os quais não há regras de negócios em vigor ou para os quais as regras de negócios provavelmente não detectarão todos os erros. Para isso, pode ser necessário usar um limite de confiança como último recurso.
A principal ferramenta para definir esse limite é o recurso de pipeline de avaliação no AI Center e, especificamente, a planilha do Excel gerada pelo pipeline de avaliação na pasta Outputs > artifacts > 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 which takes the minimum of all the confidences over all fields which 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 only correctly extracted documents are sent straight through.
11. Treinamento usando dados do 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.
O segundo aspecto fundamental é que os dados da Estação de validação têm uma densidade de informações menor do que os dados rotulados no Document Manager. Fundamentalmente, o usuário do Validação Station só se preocupa com obter o valor certo uma vez. Se uma fatura tiver 5 páginas e o número da fatura aparecer em todas as páginas, o usuário do Validation Station a validará apenas na primeira página. Assim, 80% dos valores permanecem não rotulados. No Document Manager, todos os valores são rotulados.
Por fim, lembre-se de que os dados do Validation Station precisam ser adicionados ao conjunto de dados rotulado manualmente original para que você sempre tenha um único conjunto de dados de treinamento que aumenta de tamanho ao longo do tempo. Você sempre precisará treinar no pacote de ML com a versão secundária 0 (zero), que é a versão pré-configurada lançada pela UiPath.
Sempre adicione dados do Validation Station ao mesmo conjunto de dados e treine no Pacote de ML versão secundária 0 (zero)
Muitas vezes, assume-se erroneamente que a maneira de usar os dados do Validation Station é retreinar iterativamente a versão do modelo anterior, de modo que o lote atual é usado para treinar o pacote X.1 para obter o X.2. Em seguida, o próximo lote treina em X.2 para obter X.3 e assim por diante. Esta é a maneira errada de usar o produto. Cada lote do Validation Station precisa ser importado para a mesma sessão do Document Manager que os dados originais rotulados manualmente, criando um conjunto de dados maior, que deve ser usado para treinar sempre na versão do Pacote de ML X.0.
Os dados do Validation Station podem ter um volume muito maior, pois são usados no fluxo de trabalho de produção. Como consequência, você precisa de uma diretriz sobre a quantidade de dados que provavelmente será útil, já que o treinamento do modelo requer tempo e infraestrutura. Além disso, você não deseja que o conjunto de dados fique sobrecarregado com dados do Validation Station, pois isso pode degradar a qualidade do modelo devido ao problema de densidade de informações mencionado acima.
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 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.
Este é um cenário de amostra. Você escolheu um bom mecanismo de OCR, rotulou 500 páginas no Document Manager, resultando em um bom desempenho e implantou o modelo em um fluxo de trabalho de RPA de produção. O Validation Station está começando a gerar dados. Você deve selecionar aleatoriamente até um máximo de 1.000 a 1.500 páginas do Validation Station e importá-las para o Document Manager com as primeiras 500 páginas e treinar novamente seu modelo de ML. Depois disso, você deve executar um pipeline de avaliação para garantir que o modelo realmente melhorou e, em seguida, deve implantar o novo modelo em produção.
12. O Loop de ajuste automático (Pré-visualização)
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.
O AI Center oferece a possibilidade de atualizar automaticamente a Habilidade de ML quando uma nova versão de um Pacote de ML é treinada novamente. No entanto, essa atualização automática não leva em consideração a pontuação do pipeline completo e, portanto, não é recomendável usar esse recurso com os pipelines de retreinamento automático do 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. Implante sua automação
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.
- O que um modelo de ML de extração de dados pode fazer?
- Conjuntos de dados de treinamento e avaliação
- Componentes de extração de dados
- Crie um modelo de ML de alto desempenho
- 1. Escolha o mecanismo de OCR
- 2. Crie um conjunto de dados de treinamento
- 3. Crie um conjunto de dados de avaliação
- 4. Defina campos
- 5. Configure os campos
- 6. Rotule o conjunto de dados de treinamento
- 7. Rotule o conjunto de dados de avaliação
- 8. Treine e avalie o modelo
- 9. Defina e implemente regras de negócios
- 10. (Opcional) Escolha um limite de confiança
- 11. Treinamento usando dados do Validation Station
- 12. O Loop de ajuste automático (Pré-visualização)
- 13. Implante sua automação