Como solucionar problemas de latência com meu endpoint do Amazon SageMaker?

3 minuto de leitura
0

Quando invoco meu endpoint do Amazon SageMaker, percebo alta latência.

Breve descrição

Use o Amazon CloudWatch para monitorar as métricas de latência ModelLatency e OverheadLatency para um endpoint do SageMaker que serve um único modelo.

  • ModelLatency é a quantidade de tempo que um modelo leva para responder a uma solicitação de inferência, conforme visualizada pelo SageMaker. Essa duração inclui o tempo de comunicação local para o modelo enviar a solicitação e buscar a resposta. Também inclui o tempo de conclusão da inferência dentro do contêiner do modelo.
  • OverheadLatency é o tempo que o SageMaker leva para responder a uma solicitação de invocação com sobrecargas. Essa medição dura desde o momento em que o SageMaker recebe uma solicitação até retornar uma resposta, menos ModelLatency.

Quando você usa um endpoint multimodelo do SageMaker, as seguintes métricas adicionais ficam disponíveis no CloudWatch:

  • ModelLoadingWaitTime: a quantidade de tempo que uma solicitação de invocação espera pelo download ou carregamento do modelo de destino antes de realizar a inferência.
  • ModelDownloadingTime: o tempo necessário para baixar o modelo do Amazon Simple Storage Service (Amazon S3).
  • ModelLoadingTime: a quantidade de tempo para carregar o modelo do contêiner.
  • ModelCacheHit: o número de solicitações do InvokeEndpoint que são enviadas ao endpoint em que o modelo foi carregado anteriormente.

Os endpoints multimodelo carregam e descarregam modelos durante toda a vida útil. Você pode usar a métrica LoadedModelCount CloudWatch para visualizar o número de modelos carregados de um endpoint.

Resolução

Alta latência do modelo

Para reduzir essa latência, execute qualquer uma das seguintes ações:

  • Compare o modelo fora de um endpoint do SageMaker para testar o desempenho.
  • Se o SageMaker Neo suportar seu modelo, você poderá compilar o modelo. O SageMaker Neo otimiza os modelos para funcionarem até duas vezes mais rápido com menos de um décimo do espaço ocupado pela memória, sem perda de precisão.
  • Se o AWS Inferentia oferecer suporte ao seu modelo, você poderá compilar o modelo para o Inferentia. Isso oferece uma taxa de transferência até três vezes maior e um custo por inferência até 45% mais baixo em comparação com as instâncias baseadas em GPU da AWS.
  • Se você usa uma instância de CPU e o modelo suporta aceleração de GPU, use uma instância de GPU para adicionar aceleração de GPU a uma instância.
    Observação: o código de inferência pode afetar a latência do modelo, dependendo de como o código lida com a inferência. Qualquer atraso no código aumenta a latência.
  • Um endpoint usado em excesso pode causar maior latência do modelo. Para aumentar e diminuir dinamicamente o número de instâncias disponíveis para um endpoint, adicione ajuste de escalabilidade automático a um endpoint.

OverheadLatency alta

Vários fatores podem contribuir para OverheadLatency. Esses fatores incluem o tamanho da carga útil para solicitações e respostas, a frequência da solicitação e a autenticação ou autorização da solicitação.

A primeira invocação de um endpoint pode ter um aumento na latência devido a um início a frio. Isso é esperado com as primeiras solicitações de invocação. Para evitar esse problema, envie solicitações de teste ao endpoint para pré-aquecê-lo. Solicitações pouco frequentes também podem levar a um aumento na OverheadLatency.

AWS OFICIAL
AWS OFICIALAtualizada há um ano