定義擴展政策 - Amazon SageMaker AI

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

定義擴展政策

將擴展政策新增至模型之前,請將政策組態儲存為文字檔案中的JSON區塊。叫用 AWS Command Line Interface (AWS CLI) 或 Application Auto Scaling 時,您可以使用該文字檔案API。您可以選擇適當的 CloudWatch 指標來最佳化擴展。不過,在生產中使用自訂指標之前,您必須使用自訂指標測試自動擴展。

本節顯示目標追蹤擴展政策的範例政策組態。

指定預先定義的指標 (CloudWatch 指標: InvocationsPerInstance)

以下是變體的目標追蹤政策組態範例,可將每個執行個體的平均調用保持在 70。將此組態儲存至名為 config.json 的檔案。

{ "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" } }

如需詳細資訊,請參閱 Application Auto Scaling API參考TargetTrackingScalingPolicyConfiguration中的 。

指定高解析度預先定義的指標 (CloudWatch 指標: ConcurrentRequestsPerModel 和 ConcurrentRequestsPerCopy)

您可以使用下列高解析度 CloudWatch 指標,為模型接收的並行請求量設定擴展政策:

ConcurrentRequestsPerModel

模型容器正在接收的並行請求數量。

ConcurrentRequestsPerCopy

推論元件正在接收的並行請求數量。

這些指標會追蹤模型容器同時處理的請求數量,包括排入容器內佇列的請求。對於以字符串流形式傳送推論回應的模型,這些指標會追蹤每個請求,直到模型傳送請求的最後一個字符為止。

作為高解析度指標,它們比標準 CloudWatch指標更頻繁地發出資料。標準指標,例如 InvocationsPerInstance 指標,每分鐘發出一次資料。不過,這些高解析度指標每 10 秒會發出資料。因此,隨著模型的並行流量增加,您的政策會透過比標準指標的擴展更快的速度做出反應。不過,隨著模型的流量減少,您的政策會以與標準指標相同的速度向內擴展。

以下是目標追蹤政策組態範例,如果每個模型的並行請求數量超過 5,則會新增執行個體。將此組態儲存至名為 config.json 的檔案。

{ "TargetValue": 5.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantConcurrentRequestsPerModelHighResolution" } }

如果您使用推論元件將多個模型部署到相同的端點,您可以建立同等政策。在這種情況下,請將 PredefinedMetricType設定為 SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution

如需詳細資訊,請參閱 Application Auto Scaling API參考TargetTrackingScalingPolicyConfiguration中的 。

定義自訂指標 (CloudWatch 指標:CPUUtilization)

若要使用自訂指標建立目標追蹤擴展政策,請指定指標的名稱、命名空間、單位、統計資料,以及零或多個維度。維度由維度名稱和維度值組成。您可以使用隨容量比例變更的任何生產變體指標。

下列範例組態顯示具有自訂指標的目標追蹤擴展政策。此政策會根據所有執行個體的平均CPU使用率 50% 來擴展變體。將此組態儲存至名為 config.json 的檔案。

{ "TargetValue": 50.0, "CustomizedMetricSpecification": { "MetricName": "CPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "VariantName","Value": "my-variant"} ], "Statistic": "Average", "Unit": "Percent" } }

如需詳細資訊,請參閱 Application Auto Scaling API參考CustomizedMetricSpecification中的 。

定義自訂指標 (CloudWatch 指標: ExplanationsPerInstance)

當端點已啟用線上可解釋性時,它會發出一個ExplanationsPerInstance指標,以輸出變體每個執行個體每分鐘解釋的平均記錄數。可解釋記錄的資源使用率,可以和預測的記錄大為不同。我們強烈建議使用此指標來追蹤已啟用線上可解釋性之端點的目標擴展。

您可以為可擴展的目標建立多個目標追蹤政策。請考慮從 指定預先定義的指標 (CloudWatch 指標: InvocationsPerInstance)區段新增InvocationsPerInstance政策 (除了ExplanationsPerInstance政策之外)。如果大多數調用因為 EnableExplanations 參數中設定的閾值而未傳回解釋,則端點可以選擇InvocationsPerInstance政策。如果有大量的解釋,端點可以使用該 ExplanationsPerInstance 策略。

下列範例組態顯示具有自訂指標的目標追蹤擴展政策。政策擴展會調整變體執行個體的數量,讓每個執行個體的ExplanationsPerInstance指標為 20。將此組態儲存至名為 config.json 的檔案。

{ "TargetValue": 20.0, "CustomizedMetricSpecification": { "MetricName": "ExplanationsPerInstance", "Namespace": "AWS/SageMaker", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "VariantName","Value": "my-variant"} ], "Statistic": "Sum" } }

如需詳細資訊,請參閱 Application Auto Scaling API參考CustomizedMetricSpecification中的 。

指定冷卻時間

您可以指定 ScaleOutCooldownScaleInCooldown 參數,選擇性地在目標追蹤擴展政策中定義冷卻時間。

以下是變體的目標追蹤政策組態範例,可將每個執行個體的平均調用保持在 70。政策組態提供 10 分鐘 (600 秒) 的縮減冷卻時間,以及 5 分鐘 (300 秒) 的縮減冷卻時間。將此組態儲存至名為 config.json 的檔案。

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

如需詳細資訊,請參閱 Application Auto Scaling API參考TargetTrackingScalingPolicyConfiguration中的 。