我想对部署 Amazon SageMaker 人工智能多模型终端节点时出现的问题进行故障排除。
解决方法
导致端点花费更长时间进行预测的冷启动或延迟问题可能会影响多模型终端节点性能。内部服务器异常也会影响性能。
冷启动和延迟问题
当多模型终端节点快速连续调用模型时,SageMaker 人工智能会将模型从端点的内存和磁盘中移除。下次端点调用模型时,当模型加载到实例的内存端点时,就会发生冷启动。
为防止冷启动或延迟问题,请执行以下操作:
-
如果您的模型对时间敏感,请对单个模型使用实时推理。
-
如果您的模型对时间不敏感,请选择一个有足够内存在内存中容纳许多模型的实例类型,例如 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 的模型时,会出现错误。为防止出错,请选择具有足够内存的端点实例,以便在运行时容纳多个模型。