我想對部署 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 大小足以容納所有經常存取的模型。
-
將測試請求傳送到目標模型,以便某些模型無限期地保留在端點的記憶體中。
-
若要最佳化多模型端點效能,最佳做法是選擇具有相似效率和延遲時間的模型成品。為了協助最大限度地提高系統的整體效率和可靠性,請將流量均勻分配到各個模型之間。
-
為了獲得最佳端點效能,請監控主要的 Amazon CloudWatch 指標,例如 ModelCacheHit 和 ModelLoadingWaitTime。如果 ModelCacheHit 率較高且 ModelLoadingWaitTime 率較低,表示您的端點正在有效地管理調用。
內部伺服器例外狀況
如果多模型端點因記憶體不足而無法載入模型,那麼您可能會遇到內部伺服器例外狀況。例如,當您在只有 4 GB CPU 記憶體的 ml.t3.medium 執行個體上部署 14 GB 模型時,就會出現錯誤。若要防止錯誤,請選取具有足夠記憶體的端點執行個體,以在執行時期時容納多個模型。