Amazon SageMaker AI 다중 모델 엔드포인트를 배포할 때 발생하는 문제를 해결하고 싶습니다.
해결 방법
엔드포인트의 예측 시간 증가에 원인이 되는 콜드 스타트 또는 지연 문제는 다중 모델 엔드포인트 성능에 영향을 미칠 수 있습니다. 내부 서버 예외 역시 성능에 영향을 미칠 수 있습니다.
콜드 스타트 및 지연 문제
다중 모델 엔드포인트가 모델을 빠르게 연속해서 간접 호출할 때 SageMaker AI는 엔드포인트의 메모리 및 디스크에서 모델을 제거합니다. 콜드 스타트는 다음 번에 엔드포인트가 모델을 간접 호출하는 인스턴스의 메모리 엔드포인트로 모델이 로드될 때 발생합니다.
콜드 스타트 또는 지연 문제를 방지하려면 다음 조치를 취하십시오.
-
모델이 시간에 민감한 경우 단일 모델에서 실시간 추론을 사용하십시오.
-
모델이 시간에 민감하지 않다면 r5 인스턴스와 같이 메모리에 많은 모델을 저장할 수 있을 만큼 충분한 메모리가 있는 인스턴스 유형을 선택하십시오. 또는 MemoryUtilization 계수를 기반으로 규모가 조정되는 오토 스케일링을 구현하십시오.
예시:
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
}
)
-
엔드포인트 구성을 배포하기 전에 자주 액세스하는 모델을 모두 저장할 수 있을 정도로 VolumeSizeInGB 크기를 지정해야 합니다.
-
일부 모델이 엔드포인트의 메모리에 계속해서 남아 있도록 대상 모델에 테스트 요청을 보냅니다.
-
다중 모델 엔드포인트 성능을 최적화하려면 효율성과 지연 시간이 비슷한 모델 아티팩트를 선택하는 것이 좋습니다. 시스템의 전반적인 효과와 안정성 극대화에 도움이 되도록 모델 전체에 트래픽을 균등하게 분배해야 합니다.
-
최적의 엔드포인트 성능을 위해 ModelCacheHit와 ModelLoadingWaitTime 같은 주요 Amazon CloudWatch 지표를 모니터링하십시오. ModelCacheHit 값이 높고 ModelLoadingWaitTime 값이 낮으면 엔드포인트가 효율적으로 간접 호출을 관리하고 있는 것입니다.
내부 서버 예외
메모리 부족으로 인해 다중 모델 엔드포인트에서 모델을 로드할 수 없는 경우 내부 서버 예외가 발생할 수 있습니다. 예를 들어, CPU 메모리가 4GB뿐인 ml.t3.medium 인스턴스에 14GB 모델을 배포하면 오류가 발생합니다. 오류가 발생하지 않도록 런타임 중에 여러 개의 모델을 수용할 수 있을 정도로 메모리가 충분한 엔드포인트 인스턴스를 선택하십시오.