document-understanding
2023.10
false
UiPath logo, featuring letters U and I in white
Guia do usuário do Document Understanding.
Automation CloudAutomation Cloud Public SectorAutomation SuiteStandalone
Last updated 11 de nov de 2024

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).

Observação: várias réplicas multiplicam a taxa de transferência.

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

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.

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.

Importante: os cálculos fornecidos nesta seção destinam-se a ser usados apenas como diretrizes gerais e não devem ser interpretados como especificações exatas. Os resultados de desempenho podem variar e são influenciados por diferentes fatores, como o tamanho do documento, número de páginas e o modelo específico que está sendo utilizado.
Observação: cada geração do modelo (2022.10, 2023.4 ou 2023.10) comporta-se de forma diferente em relação aos recursos necessários e à taxa de transferência. À medida que os modelos melhoram em termos de precisão, isso também pode afetar o desempenho e exigir mais recursos.
Tabela 1. Extrator 2022.10
NívelMáximo de páginas/documentoTaxa de transferência esperada (páginas/hora)AI Units/hora
0,5 CPU/2 GB de memória25300-6001
1 CPU/4 GB de memória50400-8002
2 CPUs/8 GB de memória100600-10004
4 CPUs/16 GB de memória100800-12008
6 CPUs/24 GB de memória100900-130012
GPU200-2501350-160020
Tabela 2. Extrator2023.4
NívelMáximo de páginas/documentoTaxa de transferência esperada (páginas/hora)AI Units/hora
0,5 CPU/2 GB de memória2540-1001
1 CPU/4 GB de memória5070-1402
2 CPUs/8 GB de memória75120-2204
4 CPUs/16 GB de memória100200-3008
6 CPUs/24 GB de memória100250-40012
GPU200-2501400-220020
Tabela 3. Extratores 2023.7 e 2023.10
NívelMáximo de páginas/documentoTaxa de transferência esperada (páginas/hora)AI Units/hora
0,5 CPU/2 GB de memória2560-2001
1 CPU/4 GB de memória50120-2402
2 CPUs/8 GB de memória75200-2804
4 CPUs/16 GB de memória100250-4008
6 CPUs/24 GB de memória100350-50012
GPU200-2501000-200020

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.

Observação: ao dimensionar a infraestrutura, certifique-se de começar com o maior documento com o qual a habilidade precisa lidar e a taxa de transferência esperada.

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.

Observação: uma única réplica não tem alta disponibilidade; portanto, é sempre recomendável usar pelo menos duas réplicas para fluxos de trabalho de produção críticos.

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

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.

Observação: para alcançar o máximo potencial de taxa de transferência, você deve manter a réplica de extração sob carga constante.
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.
  • 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.

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.

Dica: você pode usar dados históricos para facilitar essa conversão. Para uma habilidade específica com um histórico registrado, você pode verificar a telemetria da medição para identificar a distribuição de contagens de páginas para solicitações feitas para essa habilidade. Por exemplo, se uma habilidade recebeu principalmente documentos com duas ou três páginas no último mês, você pode supor que a tendência futura continuará com uma média de 2,5 páginas por documento.

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.

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White
Confiança e segurança
© 2005-2024 UiPath. Todos os direitos reservados.