- Visão geral
- Introdução
- Atividades
- Painéis de insights
- 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
- 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
- FaturasAustrália - 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
- Contracheques — Pacote de ML
- Passaportes - 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
- Limitações de tráfego
- Configuração de OCR
- Pipelines
- Serviços de OCR
- Idiomas suportados
- Aprendizagem profunda
- Treinamento de modelos de alto desempenho
- Implantação de modelos de alto desempenho
- Licenciamento
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.
Para implantar a infraestrutura por meio do AI Center, há alguns aspectos importantes a serem mantidos em mente para obter um desempenho ideal.
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 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.
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).
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).
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 mais comumente encontrada nos níveis de CPU mais baixos (0,5 CPU ou 1 CPU). Se você precisar processar uma carga muito grande (um ou vários documentos grandes), isso pode levar a uma exceção de falta de memória. Isso está relacionado ao tamanho do documento em termos de páginas e densidade de texto (quanto texto há por página). Como os requisitos são muito específicos para cada caso de uso, não é possível fornecer números exatos. Você pode verificar as diretrizes na seção Dimensionamento correto da infraestrutura para obter informações mais detalhadas. Se você encontrar uma situação de memória insuficiente, a recomendação geral é ir para o próximo nível.
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.
Esta seção fornece diretrizes gerais sobre como os modelos se comportam em cada tamanho diferente de habilidade.
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 |
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 |
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.
Exemplo 1
- 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
- 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.
Exemplo 3
- Documentos que contêm no máximo 50 páginas.
- Um pico máximo de 3.000 páginas por hora.
- 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.
Você pode verificar as tabelas na seção Diretrizes gerais para a taxa de transferência esperada de uma única réplica de extração, dependendo da versão do modelo e do nível.
- 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.
- 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.
- Divida a estimativa pela taxa de transferência por réplica, descrita na seção Dimensionar a infraestrutura para uma réplica.
- 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.
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.
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.
- 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.
- 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