

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为多模型端点部署设置自动扩缩策略
<a name="multi-model-endpoints-autoscaling"></a>

SageMaker AI 多模型端点完全支持自动缩放，它可以管理模型的副本，以确保模型根据流量模式进行扩展。我们建议您基于 [多模型端点部署的实例建议](multi-model-endpoint-instance.md) 配置多模型端点和实例大小时，并为端点设置基于实例的自动扩缩。用于触发自动扩展事件的调用率基于端点所提供的完整模型集中的聚合预测集。有关设置终端节点自动扩展的更多详细信息，请参阅[自动缩放 Amazon SageMaker AI 模型](https://docs.aws.amazon.com/sagemaker/latest/dg/endpoint-auto-scaling.html)。

您可以在 CPU 和 GPU 支持的多模型端点上使用预定义和自定义指标设置自动扩缩策略。

**注意**  
SageMaker AI 多模型端点指标以一分钟为粒度提供。

## 定义扩展策略
<a name="multi-model-endpoints-autoscaling-define"></a>

要为扩展策略指定指标和目标值，可以配置目标跟踪扩展策略。您可以使用预定义指标或自定义指标。

扩展策略配置由 JSON 块表示。您可以在文本文件中将扩展策略配置保存为 JSON 块。您可以在调用 AWS CLI 或 Application Auto Scaling API 时使用该文本文件。有关策略配置语法的更多信息，请参阅 *Application Auto Scaling API 参考* 中的 `[TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)`。

可以使用以下选项定义目标跟踪扩展策略配置。

### 使用预定义的指标
<a name="multi-model-endpoints-autoscaling-predefined"></a>

要快速为变体定义目标跟踪扩展策略，请使用 `SageMakerVariantInvocationsPerInstance` 预定义指标。`SageMakerVariantInvocationsPerInstance` 是每分钟调用变体各个实例的平均次数。我们强烈建议您使用此指标。

要在扩展策略中使用预定义的指标，请为策略创建一个目标跟踪配置。在目标扩展配置中，包含 `PredefinedMetricSpecification` 以表示预定义的指标，并包含 `TargetValue` 以表示该指标的目标值。

以下示例是变体的典型目标跟踪扩展策略配置。在此配置中，我们使用 `SageMakerVariantInvocationsPerInstance` 预定义指标来调整变体实例数，以便每个实例的 `InvocationsPerInstance` 指标都为 `70`。

```
{"TargetValue": 70.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "InvocationsPerInstance"
    }
}
```

**注意**  
建议您在使用多模型端点时使用 `InvocationsPerInstance`。该指标的 `TargetValue` 取决于您的应用程序的延迟要求。我们还建议您对端点进行负载测试，以设置合适的扩展参数值。要详细了解负载测试和为终端节点设置自动扩展，请参阅博客[在 Amazon AI 中配置自动缩放推理](https://aws.amazon.com/blogs/machine-learning/configuring-autoscaling-inference-endpoints-in-amazon-sagemaker/)终端节点。 SageMaker 

### 使用自定义指标
<a name="multi-model-endpoints-autoscaling-custom"></a>

如果您需要定义满足您的自定义要求的目标跟踪扩展策略，请定义自定义指标。您可以根据随扩展成比例变化的任何生产变体指标定义一个自定义指标。

并非所有 SageMaker AI 指标都适用于目标跟踪。指标必须是有效的使用率指标，它必须描述实例的繁忙程度。指标的值必须随变体实例数按反比例增大或减小。也就是说，当实例数增加时，指标的值应减小。

**重要**  
在生产中部署自动扩展之前，您必须使用自定义指标来测试自动扩展。

#### CPU 支持的多模型端点的自定义指标示例
<a name="multi-model-endpoints-autoscaling-custom-cpu"></a>

以下示例是扩展策略的目标跟踪配置。在此配置中，对于名为 `my-model` 的模型，`CPUUtilization` 的自定义指标会根据所有实例的、50% 的平均 CPU 利用率调整端点上的实例数量。

```
{"TargetValue": 50,
    "CustomizedMetricSpecification":
    {"MetricName": "CPUUtilization",
        "Namespace": "/aws/sagemaker/Endpoints",
        "Dimensions": [
            {"Name": "EndpointName", "Value": "my-endpoint" },
            {"Name": "ModelName","Value": "my-model"}
        ],
        "Statistic": "Average",
        "Unit": "Percent"
    }
}
```

#### GPU 支持的多模型端点的自定义指标示例
<a name="multi-model-endpoints-autoscaling-custom-gpu"></a>

以下示例是扩展策略的目标跟踪配置。在此配置中，对于名为 `my-model` 的模型，`GPUUtilization` 的自定义指标会根据所有实例的、50% 的平均 GPU 利用率调整端点上的实例数量。

```
{"TargetValue": 50,
    "CustomizedMetricSpecification":
    {"MetricName": "GPUUtilization",
        "Namespace": "/aws/sagemaker/Endpoints",
        "Dimensions": [
            {"Name": "EndpointName", "Value": "my-endpoint" },
            {"Name": "ModelName","Value": "my-model"}
        ],
        "Statistic": "Average",
        "Unit": "Percent"
    }
}
```

## 添加冷却时间
<a name="multi-model-endpoints-autoscaling-cooldown"></a>

要添加用于横向扩展端点的冷却时间，请为 `ScaleOutCooldown` 指定一个值（以秒为单位）。类似地，要添加用于横向缩减模型的冷却时间，请为 `ScaleInCooldown` 添加一个值（以秒为单位）。有关 `ScaleInCooldown` 和 `ScaleOutCooldown` 的更多信息，请参阅 *Application Auto Scaling API 参考* 中的 `[TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)`。

以下示例是扩展策略的目标跟踪配置示例。在该配置中，`SageMakerVariantInvocationsPerInstance` 预定义指标用于根据该变体的所有实例中平均值 `70` 来调整扩展。该配置将横向缩减冷却时间指定为 10 分钟，并将横向扩展冷却时间指定为 5 分钟。

```
{"TargetValue": 70.0,
    "PredefinedMetricSpecification":
    {"PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```