Quero solucionar problemas que ocorrem quando eu implanto um endpoint multimodelo de IA do Amazon SageMaker IA.
Resolução
Problemas de inicializações a frio ou de latência que fazem com que um endpoint demore mais para fazer previsões podem afetar o desempenho do endpoint multimodelo. As exceções internas do servidor também podem afetar o desempenho.
Problemas de inicializações a frio e de latência
Quando um endpoint multimodelo invoca modelos em rápida sucessão, o SageMaker IA remove os modelos de memória e de disco do endpoint. Uma inicialização a frio acontece quando o modelo é carregado no endpoint de memória da instância na próxima vez que o endpoint invocar o modelo.
Para evitar problemas de inicialização a frio ou de latência, execute as seguintes ações:
-
Se seu modelo tiver validade limitada, use a inferência em tempo real com um único modelo.
-
Caso contrário, selecione um tipo de instância que tenha memória suficiente para armazenar vários modelos na memória, como uma instância r5. Ou implemente o ajuste de escala automático com base no fator MemoryUtilization.
Exemplo:
response = client.put_scaling_policy(
PolicyName='MemoryUtilisation-ScalingPolicy',
ServiceNamespace='sagemaker',
ResourceId=resource_id,
ScalableDimension='sagemaker:variant:DesiredInstanceCount',
PolicyType='TargetTrackingScaling',
TargetTrackingScalingPolicyConfiguration={
'TargetValue': 80.0,
'CustomizedMetricSpecification':
{
'MetricName': 'MemoryUtilization',
'Namespace': '/aws/sagemaker/Endpoints',
'Dimensions': [
{'Name': 'EndpointName', 'Value': endpoint_name },
{'Name': 'VariantName','Value': 'AllTraffic'}
],
'Statistic': 'Average',
'Unit': 'Percent'
},
'ScaleInCooldown': 600,
'ScaleOutCooldown': 300
}
)
-
Antes de implantar a configuração do endpoint, certifique-se de especificar um tamanho VolumeSizeInGB que seja grande o suficiente para conter todos os modelos acessados com frequência.
-
Envie solicitações de teste para o modelo de destino para que alguns modelos permaneçam infinitamente na memória do endpoint.
-
Para otimizar o desempenho de endpoints multimodelo, é uma prática recomendada selecionar artefatos de modelo com eficiência e tempos de latência comparáveis. Para maximizar a eficácia e a confiabilidade gerais do seu sistema, distribua uniformemente o tráfego entre os modelos.
-
Para otimizar o desempenho do endpoint, monitore as principais métricas do Amazon CloudWatch, como ModelCacheHit e ModelLoadingWaitTime. Quando a taxa ModelCacheHit é alta e a taxa ModelLoadingWaitTime é baixa, isso quer dizer que seu endpoint está gerenciando invocações com eficiência.
Exceções internas do servidor
Se um endpoint multimodelo não puder carregar modelos devido à memória insuficiente, você poderá enfrentar uma exceção interna do servidor. Por exemplo, quando você implanta um modelo de 14 GB em uma instância ml.t3.medium com apenas 4 GB de memória de CPU, você recebe um erro. Para evitar erros, selecione instâncias de endpoint com memória suficiente para acomodar vários modelos durante o runtime.