

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為多模型端點部署設定自動擴展政策
<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 多模型端點指標可用於 1 分鐘的精細程度。

## 定義擴展政策
<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 SageMaker AI 設定自動擴展推論端點](https://aws.amazon.com/blogs/machine-learning/configuring-autoscaling-inference-endpoints-in-amazon-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
}
```