Quero solucionar problemas de alta latência com meu endpoint do Amazon SageMaker.
Breve descrição
Seu endpoint do SageMaker pode ter os seguintes tipos de latência:
- Latência do modelo — Esse é o tempo que o modelo leva para responder a uma solicitação de inferência. A latência do modelo inclui o tempo de comunicação local para enviar uma solicitação e, em seguida, obter uma resposta. Além disso, a latência do modelo inclui o tempo de conclusão da inferência dentro do contêiner do modelo.
- Latência de sobrecarga — Esse é o tempo que o SageMaker leva para responder a uma solicitação de invocação e exclui a latência do modelo.
- Latência de rede — Esse é o tempo que a solicitação leva para ir e voltar entre o cliente e o endpoint do SageMaker. A latência da rede ocorre fora da infraestrutura da AWS.
Se seu endpoint do SageMaker atende a um único modelo, as seguintes métricas do Amazon CloudWatch estão disponíveis:
- Latência do modelo
- Latência de sobrecarga
Se o seu endpoint do SageMaker atende a um endpoint multimodelo, as seguintes métricas do CloudWatch estão disponíveis:
- Tempo de espera de carregamento do modelo — Essa métrica mostra o tempo de espera que uma solicitação de invocação leva para que o modelo de destino seja baixado ou carregado antes que a inferência seja realizada.
- Tempo de download do modelo — Essa métrica mostra o tempo que o modelo leva para fazer o download do Amazon Simple Storage Service (Amazon S3).
- Tempo de carregamento do modelo — Essa métrica mostra o tempo que o modelo leva para carregar no contêiner.
- Ocorrências de cache do modelo — Essa métrica mostra o número de solicitações InvokeEndpoint enviadas ao endpoint no qual o modelo foi carregado.
Observação: Os endpoints multimodelo carregam e descarregam modelos durante toda a vida útil. Para visualizar o número de modelos carregados de um endpoint, use a métrica LoadedModelCount do CloudWatch.
Resolução
Solucione sua alta latência com base nos seguintes tipos de latência:
Latência do modelo
Para reduzir a alta latência do modelo, faça o seguinte:
- Para testar o desempenho do modelo, compare-o fora de um endpoint do SageMaker.
- Se o SageMaker Neo suportar seu modelo, compile o modelo. O SageMaker Neo otimiza os modelos para que funcionem duas vezes mais rápido com menos espaço na memória e sem perda de acurácia.
- Se o AWS Inferentia oferecer suporte ao seu modelo, compile o modelo para o Inferentia. Isso permite maior throughput a um custo menor por inferência.
- 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, com base em como o código lida com a inferência. Qualquer atraso no código aumenta a latência.
- Para aumentar e diminuir dinamicamente o número de instâncias disponíveis para um endpoint, adicione ajuste de auto scaling a um endpoint. Um endpoint usado em excesso pode causar maior latência do modelo.
Latência de sobrecarga
Os fatores que contribuem para a alta latência de sobrecarga são:
- Tamanho do payload para solicitações e respostas
- Frequência ou infrequência de solicitações
- Autenticação ou autorização da solicitação
Além disso, a primeira invocação de endpoint pode ter um aumento na latência devido a um início a frio. Para evitar alta latência em uma inicialização a frio, envie solicitações de teste ao endpoint para pré-aquecê-lo.
Latência de rede
Para reduzir sua alta latência de rede, faça o seguinte:
- Implante a aplicação cliente mais perto da região AWS onde o endpoint do SageMaker está hospedado.
- Otimize as configurações de rede do lado do cliente e a conectividade com a Internet.
- Para aproximar as solicitações de inferência do cliente, use uma rede de entrega de conteúdo (CDN) ou uma solução de computação de ponta.
Observação: O SageMaker não pode influenciar diretamente a latência da rede. Certifique-se de otimizar a latência geral da inferência para aplicações que usam endpoints do SageMaker com base no seu caso de uso.