自動縮放概觀 - Amazon SageMaker

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

自動縮放概觀

以下概觀提供用於 auto 調整比例的必要條件和元件的詳細資訊。

必要條件

您必須先建立 Amazon SageMaker 模型端點,才能使用 auto 擴展。同一端點可以有多個模型版本。每個模型都稱為生產 (模型) 變體。如需關於部署模型端點的詳細資訊,請參閱將模型部署到 SageMaker 託管服務

若要啟用模型的 auto 縮放功能,您可以透過應用 Application Auto Scaling API 使用 SageMaker 主控台、 AWS Command Line Interface (AWS CLI) 或 AWS SDK。

  • 如果這是您第一次為模型設定縮放,建議您使用使用主控台設定模型自動擴展

  • 使用 AWS CLI 或 Application Auto Scaling API 時,流程是將模型註冊為可擴展目標、定義擴展政策,然後套用它。在 SageMaker 主控台的導覽窗格的「推論」下,選擇「端點」。找到模型的端點名稱,然後選擇它以查找變體名稱。您必須同時指定端點名稱和變體名稱,才能啟動模型的自動縮放比例。

擴展政策概觀

若要使用 auto 擴展,您需要定義擴展政策,該政策會新增和移除生產變體的執行個體數量,以回應實際工作負載。

若要在工作負載變更發生時自動調整規模,您有兩種選擇:目標追蹤和步驟擴展原則。

我們建議您使用目標追蹤擴展政策。透過目標追蹤,您可以選擇 Amazon CloudWatch 指標和目標值。Auto Scaling 會建立和管理資源調整政策的 CloudWatch 警示,並根據量度和目標值計算縮放調整。此原則會視需要新增和移除測量結果在指定目標值或接近指定目標值的執行處理數目。例如,擴展政策如果使用預先定義的 InvocationsPerInstance 指標和 70 的目標值,可將 InvocationsPerInstance 保持在等於或接近 70。如需詳細資訊,請參閱《Application Auto Scaling 使用者指南》中的目標追蹤擴展政策

您可以在需要進階組態時使用步驟擴展,例如指定在何種情況下要部署的執行個體數目。否則,建議使用目標追蹤縮放,因為它會完全自動化。請注意,步驟縮放只能從 AWS CLI 或 Application Auto Scaling API 管理。如需步驟調整政策及其運作方式的概觀,請參閱《應用程式 Auto Scaling 使用者指南》中的步驟調整政策

如要建立目標追蹤擴展政策,您必須指定以下項目:

  • 指標 — 要追蹤的 CloudWatch 量度,例如每個執行個體的平均呼叫次數。

  • 目標值 — 測量結果的目標值,例如每分鐘每個執行處理 70 次呼叫。

您可以使用預先定義的指標或自訂指標建立目標追蹤擴展政策。在列舉中定義了預先定義的量度,因此您可以在程式碼中依名稱指定,或在 SageMaker 主控台中使用它。或者,您可以使用 AWS CLI 或應用程式 Auto Scaling API,根據預先定義或自訂的指標套用目標追蹤擴展政策。

請注意,縮放活動會在它們之間進行冷卻時間,以防止容量的快速波動。您可自行選擇是否設定擴展政策的冷卻時間。

依據排程擴展

您也可以建立排程動作,以在特定時間執行擴展活動。您可以建立僅擴展一次或依週期性排程擴展的排程動作。執行排程動作之後,您的資源調整政策可以繼續決定是否在工作負載變更時動態擴展。排程的擴展只能從 AWS CLI 或 Application Auto Scaling API 管理。如需詳細資訊,請參閱《Application Auto Scaling 使用者指南》中的排程擴展

最小和最大縮放限制

設定 auto 擴展時,您必須在建立資源調度政策之前指定擴展限制。您可以分別設定最小值和最大值的限制。

最小值必須至少為 1,且等於或小於為最大值指定的值。

最大值必須等於或大於為最小值指定的值。 SageMaker auto 縮放不會對此值強制執行限制。

若要判斷一般流量所需的擴展限制,請使用預期的模型流量速率來測試 auto 調整規模組態。

如果變體的流量變為零, SageMaker 會自動擴展到指定的執行個體數目下限。在此情況下, SageMaker 會發出值為零的量度。

有三個選項可用來指定最小和最大容量:

  1. 使用主控台更新執行個體計數下限和執行個體計數上限設定。

  2. 執行register-scalable-target指令時,請使用--min-capacity和包括和--max-capacity選項。 AWS CLI

  3. 呼叫 RegisterScalableTargetAPI 並指定MinCapacityMaxCapacity參數。

提示

您可以透過增加最小值來手動向外延展,或透過減少最大值來手動縮放。

冷卻時間

當您的模型擴展(減少容量)或向外擴展(增加容量)時,冷卻期用於防止過度擴展。它通過減慢後續縮放活動直到期限過期來實現此目的。具體而言,它會針對擴充要求封鎖執行個體的刪除,並限制向外延展要求的執行個體建立。如需詳細資訊,請參閱應用 Ap plication Auto Scaling 使用指南中的定義冷卻時間

您可以在擴展政策中配置冷卻時間。

如果您未指定縮放或向外延展冷卻時間,則您的資源調整政策會使用預設值,每個預設值為 300 秒。

如果在測試擴展配置時新增或移除執行個體的速度過快,請考慮增加此值。如果模型的流量有很多尖峰,或者您為某個變體定義了多個擴展政策,您可能會看到此行為。

如果執行個體新增的速度不夠快,沒辦法因應增加的傳輸流量,請考慮減少此值。

許可

透過 Amazon SageMaker、Amazon 和應用程式自動擴展 API 的組合 CloudWatch,可實現自動擴展。如需最低必要權限的相關資訊,請參閱《Ap plication Auto Scaling 使用者指南》中的 Application Auto Scaling 身分型原則範例

SagemakerFullAccessPolicyIAM 政策具有執行 auto 擴展所需的所有 IAM 許可。如需 SageMaker IAM 許可的詳細資訊,請參閱如何使用 SageMaker 執行角色

如果您管理自己的權限原則,則必須包含下列權限:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:UpdateEndpointWeightsAndCapacities" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "application-autoscaling:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint", "Condition": { "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] }

服務連結角色

自動調整規模使用AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint服務連結的角色。此服務連結角色授與 Application Auto Scaling 權限,以描述原則的警示、監視目前的容量層級,以及擴展目標資源。系統會自動為您建立此角色。若要成功建立自動角色,您必須擁有iam:CreateServiceLinkedRole動作的權限。如需詳細資訊,請參閱《應用程式自動擴展使用者指南》中的服務連結角色

如需有關設定 auto 調整規模的詳細資訊,請參閱下列資源:

注意

SageMaker 最近推出以即時推論端點為基礎的新推論功能。您可以使用 SageMaker 端點組態建立端點,該端點設定會定義執行個體類型和端點的初始執行個體計數。然後,創建一個推論組件,它是一個 SageMaker 託管對象,您可以用來部署模型到端點。如需擴展推論元件的相關資訊,請參閱新SageMaker 增推論功能以協助降低基礎模型部署成本和延遲,以及使用部落格上的最新功能,平均將模型部署成本降低 50%。 SageMaker AWS