- Visão geral
- Processo do Document Understanding
- Tutoriais de início rápido
- Componentes do framework
- Pacotes de ML
- Visão geral
- Document Understanding - Pacote de ML
- DocumentClassifier - Pacote de ML
- Pacotes de ML com recursos de OCR
- 1040 - Pacote de ML
- 1040 Schedule C - Pacote de ML
- 1040 Schedule D - Pacote de ML
- 1040 Schedule E - Pacote de ML
- 1040x - Pacote de ML
- 3949a - Pacote de ML
- 4506T - Pacote de ML
- 709 - Pacote de ML
- 941x - Pacote de ML
- 9465 - Pacote de ML
- 990 - Pacote de ML - Prévia
- ACORD125 - Pacote de ML
- ACORD126 - Pacote de ML
- ACORD131 - Pacote de ML
- ACORD140 - Pacote de ML
- ACORD25 - Pacote de ML
- Extratos bancários - Pacote de ML
- ConhecimentoDeEmbarque - Pacote de ML
- Certificado de incorporação - Pacote de ML
- Certificado de origem - Pacote de ML
- Cheques - Pacote de ML
- Certificado de produtos filhos - Pacote de ML
- CMS1500 — Pacote de ML
- Declaração de Conformidade da UE - Pacote de ML
- Demonstrações financeiras - Pacote de ML
- FM1003 - Pacote de ML
- I9 - Pacote de ML
- Cartões de identificação - Pacote de ML
- Faturas - Pacote de ML
- FaturasChina - Pacote de ML
- Faturas em hebraico - Pacote de ML
- FaturasÍndia - Pacote de ML
- FaturasJapão - Pacote de ML
- Envio de faturas - Pacote de ML
- Romaneio de carga - Pacote de ML
- Passaportes - Pacote de ML
- Contracheques — Pacote de ML
- Ordens de compra - Pacote de ML
- Recibos – Pacote de ML
- AvisosDePagamento - Pacote de ML
- UB04 - Pacote de ML
- Contas de serviços - Pacote de ML
- Títulos de veículos - Pacote de ML
- W2 - Pacote de ML
- W9 - Pacote de ML
- Outros pacotes de ML prontos para uso
- Endpoints públicos
- Requisitos de Hardware
- Pipelines
- Document Manager
- Serviços de OCR
- Idiomas suportados
- Aprendizagem profunda
- Treinamento de modelos de alto desempenho
- Implantação de modelos de alto desempenho
- Painéis de insights
- Document Understanding implantado no Automation Suite
- Document Understanding implantado no AI Center autônomo
- Licenciamento
- Atividades
- UiPath.Abbyy.Activities
- UiPath.AbbyyEmbedded.Activities
- UiPath.DocumentProcessing.Contracts
- UiPath.DocumentUnderstanding.ML.Activities
- UiPath.DocumentUnderstanding.OCR.LocalServer.Activities
- UiPath.IntelligentOCR.Activities
- UiPath.OCR.Activities
- UiPath.OCR.Contracts
- UiPath.OmniPage.Activities
- UiPath.PDF.Activities

Guia do usuário do Document Understanding.
Implantação de modelos de alto desempenho
À medida que os modelos de Machine Learning (ML) melhoram de precisão ao longo do tempo, seus requisitos de recursos também mudam. Para o melhor desempenho, é importante que, ao implantar modelos de ML por meio do AI Center, as habilidades sejam dimensionadas adequadamente em relação ao tráfego com que precisam lidar. Na maior parte, a infraestrutura é dimensionada com relação ao número de páginas por unidade de tempo (minuto ou hora). Um documento pode ter uma única página ou várias páginas.
Introdução ao desempenho do modelo de ML
Para implantar a infraestrutura por meio do AI Center, há alguns aspectos importantes a serem mantidos em mente para obter um desempenho ideal.
GPU
Há apenas um tipo de infraestrutura de GPU disponível. Isso é destacado pela caixa de seleção para habilitar a GPU. Cada habilidade é executada em uma única máquina virtual (VM) ou nó que tenha uma GPU. Nesse caso, CPU e memória não são relevantes, pois a habilidade pode usar todos os recursos de CPU e memória disponíveis nesses nós. Além da taxa de transferência, a GPU é muito mais rápida. Devido a isso, se a latência for crítica, é recomendável usar a GPU.
CPU
CPU e memória podem ser fracionadas, o que significa que várias Habilidades de ML podem ser executadas no mesmo nó. Para evitar qualquer distúrbio de uma habilidade vizinha, cada Habilidade de ML é limitada à quantidade de memória e CPU que elas podem consumir, dependendo do nível selecionado. Uma CPU maior leva a um processamento mais rápido (para uma página), enquanto uma memória maior leva a um número maior de documentos que podem ser processados.
Número de réplicas
O número de réplicas determina o número de contêineres que são usados para atender às solicitações do modelo de ML. Um número maior leva a uma quantidade maior de documentos que podem ser processados em paralelo, sujeito aos limites desse nível específico. O número de réplicas está diretamente associado ao tipo de infraestrutura (número de CPUs por réplica ou se está usando uma GPU), no sentido de que réplicas e tamanho da infraestrutura podem afetar diretamente a taxa de transferência (páginas/minuto).
Multiple replicas multiply the throughput.
Número de Robôs
O número de robôs afeta a taxa de transferência. Para obter uma taxa de transferência eficiente, o número de robôs precisa ser dimensionado de tal maneira que não sobrecarregue as Habilidades de ML. Isso depende da própria automação e deve ser testado. Como diretriz geral, você pode usar de um a três robôs como ponto de partida para cada réplica que a Habilidade de ML tem. Dependendo do tempo geral do processo (excluindo o Extrator de ML), o número de robôs pode ser maior ou menor (ou o número de réplicas).
Possíveis problemas relacionados ao dimensionamento da infraestrutura
Se a infraestrutura não estiver dimensionada corretamente, os modelos podem ser colocados sob uma carga muito alta. Em alguns casos, isso pode levar a uma lista de pendências de solicitações, um longo tempo de processamento ou até mesmo falhas ao processar documentos.
Memória insuficiente
Insufficient memory most commonly encountered on the lower CPU tiers (0.5 CPU or 1 CPU). If you need to process a very large payload (one or several large documents), it can lead to an out of memory exception. This is related to the document size in terms of pages and text density (how much text there is per page). Since the requirements are very specific to each use case, it is not possible to provide exact numbers. You can check the guidelines in the Sizing the infrastructure correctly section for more detailed information. If you encounter an insufficient memory situation, the general recommendation is to go to the next tier.
Computação insuficiente
A computação insuficiente refere-se tanto à CPU quanto à GPU, embora seja mais comumente encontrada na CPU. Quando a Habilidade de ML recebe muitas páginas relacionadas à sua capacidade disponível, as solicitações podem atingir o tempo limite (e códigos de status 520 e 499), lista de pendências ou, até mesmo, levar ao colapso do modelo (e códigos de status 503 e 500). Se você encontrar uma situação de computação insuficiente, recomendamos ir para o próximo nível ou, até mesmo, para o nível da GPU.
Dimensionar a infraestrutura corretamente
Diretrizes gerais
Esta seção fornece diretrizes gerais sobre como os modelos se comportam em cada tamanho diferente de habilidade.
The calculations provided in this section are intended to be used only as general guidelines and should not be interpreted as exact specifications. Performance outcomes can vary and are influenced by different factors such as the size of the document, number of pages, and the specific model being utilized.
Each model generation (2022.10, 2023.4, or 2023.10) behaves differently in relation to resources required and throughput. As models become better in terms of accuracy, this can also impact the performance and demand more resources.
Table 1. 2022.10 Extractor
| Nível | Máximo de páginas/documento | Taxa de transferência esperada (páginas/hora) | AI Units/hora |
|---|---|---|---|
| 0,5 CPU/2 GB de memória | 25 | 300-600 | 1 |
| 1 CPU/4 GB de memória | 50 | 400-800 | 2 |
| 2 CPUs/8 GB de memória | 100 | 600-1000 | 4 |
| 4 CPUs/16 GB de memória | 100 | 800-1200 | 8 |
| 6 CPUs/24 GB de memória | 100 | 900-1300 | 12 |
| GPU | 200-250 | 1350-1600 | 20 |
Table 2. 2023.4 Extractor
| Nível | Máximo de páginas/documento | Taxa de transferência esperada (páginas/hora) | AI Units/hora |
|---|---|---|---|
| 0,5 CPU/2 GB de memória | 25 | 40-100 | 1 |
| 1 CPU/4 GB de memória | 50 | 70-140 | 2 |
| 2 CPUs/8 GB de memória | 75 | 120-220 | 4 |
| 4 CPUs/16 GB de memória | 100 | 200-300 | 8 |
| 6 CPUs/24 GB de memória | 100 | 250-400 | 12 |
| GPU | 200-250 | 1400-2200 | 20 |
Table 3. 2023.7 and later versions of extractors
| Nível | Máximo de páginas/documento | Taxa de transferência esperada (páginas/hora) | AI Units/hora |
|---|---|---|---|
| 0,5 CPU/2 GB de memória | 25 | 60-200 | 1 |
| 1 CPU/4 GB de memória | 50 | 120-240 | 2 |
| 2 CPUs/8 GB de memória | 75 | 200-280 | 4 |
| 4 CPUs/16 GB de memória | 100 | 250-400 | 8 |
| 6 CPUs/24 GB de memória | 100 | 350-500 | 12 |
| GPU | 200-250 | 1000-2000 | 20 |
A taxa de transferência esperada é expressa para cada réplica, em página/hora e uma taxa de transferência mínima e máxima esperada, dependendo do próprio documento. A Habilidade de ML deve ser dimensionada para a maior taxa de transferência esperada (pico), não a taxa de transferência média em um dia, semana ou mês.
When sizing the infrastructure, make sure to start from the largest document the skill needs to handle and the expected throughput.
Exemplos
Exemplo 1
A Habilidade de ML precisa processar o seguinte usando um Extrator 2023.10:
- Documentos que contêm no máximo cinco páginas.
- Um pico máximo de 300 páginas por hora.
Como a taxa de transferência está no lado inferior e o tamanho do documento é pequeno, não é necessária uma GPU neste exemplo. Duas a quatro réplicas do nível de 0,5 CPU ou 1 CPU são suficientes.
Exemplo 2
A Habilidade de ML precisa processar o seguinte usando um Extrator 2023.4:
- Documentos que contêm no máximo 80 páginas.
- Um pico máximo de 900 páginas por hora.
Para esse exemplo, três réplicas do nível de 4 CPUs ou do nível de uma única GPU são suficientes.
A single replica does not have high availability, so it is always recommended to use at least two replicas for critical production workflows.
Exemplo 3
A Habilidade de ML precisa processar o seguinte usando um Extrator 2023.10:
- Documentos que contêm no máximo 50 páginas.
- Um pico máximo de 3.000 páginas por hora.
Há duas maneiras de cumprir esses requisitos:
- Use 3 réplicas de GPU.
- Use de 12 a 15 réplicas do nível de 4 CPUs ou 6 CPUs.
Ambas as opções têm alta disponibilidade porque há mais de duas réplicas para a Habilidade de ML.
Dimensionar a infraestrutura para uma réplica
You can check the tables from the General guidelines section for the expected throughput from a single extraction replica, depending on the model version and the tier.
To achieve maximum throughput potential, you must keep the extraction replica under constant load.
Para garantir que a réplica esteja consistentemente ocupada, os seguintes critérios devem ser atendidos:
- O ideal é que haja um tempo ocioso mínimo entre o momento em que a réplica envia a resposta a uma solicitação e o momento em que a réplica recebe os dados para a próxima solicitação.
- A réplica não deve estar sobrecarregada. As solicitações são processadas uma após a outra (em série). Isso significa que sempre há uma solicitação ativa sendo processada e uma fila de solicitações pendentes. Se essa fila ficar muito longa, a réplica rejeitará novas solicitações de entrada, exibindo um código de status
429 (too many requests) HTTP.
O ponto-chave a ser lembrado ao dimensionar a infraestrutura para uma única réplica é garantir que a carga de trabalho seja equilibrada. A carga de trabalho não deve ser tão leve que a réplica permaneça ociosa ou tão pesada que comece a rejeitar tarefas.
Determinar o número necessário de réplicas
Para determinar o número de réplicas necessárias, você precisa:
- Identificar o período de tempo relevante mais movimentado para as réplicas. Por exemplo, você precisa identificar a hora de atividade mais movimentada, não o intervalo de pico de um minuto ou um período de 12 horas. Depois de identificar esse período de tempo, estime a demanda (número de páginas ou solicitações) durante esse tempo.
- Divide the estimate by the throughput per replica, described in the Size the infrastructure for one replica section.
- Adicione alguma capacidade extra como medida de segurança.
Observe que o uso do período de tempo mais movimentado pode levar a um superprovisionamento quando a demanda for significativamente menor. Para resolver isso, você pode aumentar ou diminuir manualmente o tamanho de uma implantação, dependendo da demanda. Isso pode ser útil se, por exemplo, houver um intervalo de uma hora muito movimentado que exige 10 réplicas, seguido por 23 horas de baixa atividade em que apenas duas réplicas são necessárias. Isso pode resultar em um período considerável de tempo em que o sistema é superprovisionado.
Medir a demanda e a oferta: páginas ou solicitações
O número de páginas e a densidade dessas páginas são fatores-chave. A contagem de páginas é mais relevante do que o número de solicitações. No entanto, em termos práticos, as solicitações são mais fáceis de contar.
You can use historical data to make this conversion easier. For a particular skill with a recorded history, you can check the metering telemetry to identify the distribution of page counts for requests made to that skill. For example, if a skill received mostly documents with two or three pages in the last month, you can assume the future trend will continue with an average of 2.5 pages per document.
Determinar se uma implantação está subprovisionada
Ao determinar se uma implantação está subprovisionada, a utilização da CPU não é relevante, pois cada réplica maximizará o uso da CPU/GPU ao processar uma solicitação, independentemente da fila de solicitações pendentes.
O fator importante é o tempo de ponta a ponta, que é a soma do tempo de espera e do tempo efetivo de processamento.
Por exemplo, se você escolheu um nível com uma taxa de transferência de aproximadamente 900 páginas/hora, ou cerca de quatro segundos/página, e você está enviando documentos de cinco páginas, normalmente levará cerca de 30 segundos por documento.
Em seguida, você pode obter um tempo de espera aproximado de cerca de 10 segundos. Isso significa que há um tempo de espera (o que significa que a solicitação não foi atendida instantaneamente pela réplica porque estava ocupada no processamento de solicitações preexistentes). Isso também indicou que esse tempo de espera foi de cerca de 10 segundos.
Se a diferença entre o tempo efetiva de ponta a ponta (o tempo medido) e o tempo esperado de ponta a ponta (estimado como uma função do nível) for maior do que zero, isso significa que a réplica está funcionando sem parar. Além disso, se o tempo de espera aumentar à medida que a demanda aumenta, fica claro que a implantação está sob estresse sustentado. Além disso, quaisquer códigos de status 429 (muitas solicitações) são um sinal de subprovisionamento.
Determinar se uma implantação está superprovisionada
As seções anteriores podem ajudar a determinar se a implantação está provisionada de forma eficaz, mas recomendamos que você siga estas etapas para uma análise precisa de sua implantação:
- Identifique o período de tempo mais movimentado. Para esse exemplo, vamos supor que é de uma hora, ou 3.600 segundos.
- Pegue o número atual de réplicas; vamos supor que seja 10. Isso resulta em 36.000 "réplicas-segundos" (conceito semelhante ao de "pessoa-hora").
- Some a duração total das solicitações (soma dos tempos de ponta a ponta). Vamos supor que sejam 10.000 segundos.
Neste exemplo, como 10.000 é menor que 36.000, significa que sua infraestrutura atual é maior do que você precisa. Você pode tentar reduzir a implantação para oito réplicas, monitorar o desempenho e, se funcionar sem problemas, reduzir para seis réplicas. Reavalie o desempenho a cada ajuste.
- Introdução ao desempenho do modelo de ML
- GPU
- CPU
- Número de réplicas
- Número de Robôs
- Possíveis problemas relacionados ao dimensionamento da infraestrutura
- Memória insuficiente
- Computação insuficiente
- Dimensionar a infraestrutura corretamente
- Diretrizes gerais
- Exemplos
- Dimensionar a infraestrutura para uma réplica
- Determinar o número necessário de réplicas
- Medir a demanda e a oferta: páginas ou solicitações
- Determinar se uma implantação está subprovisionada
- Determinar se uma implantação está superprovisionada