在 SageMaker 託管服務上部署模型的最佳實踐 - Amazon SageMaker

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

在 SageMaker 託管服務上部署模型的最佳實踐

使用託管服務 SageMaker 託管模型時,請考慮以下事項:

  • 一般而言,用戶端應用程式會將要求傳送至 SageMaker HTTPS端點,以從已部署的模型取得推論。然而,您也可以在測試期間,從 Jupyter 筆記本將請求傳送至此端點。

  • 您可以將訓練過的模型部署 SageMaker 到您自己的部署目標。若要執行該作業,則必須掌握模型訓練產生的模型成品,了解其所採用的演算法專屬格式。如需輸出格式的詳細資訊,請移至 用於訓練的一般資料格式,參閱對應至使用中演算法的小節。

  • 您可以將模型的多個變體部署到同一個 SageMaker HTTPS端點。這將有助於生產環境中模型變體的測試作業。例如,假設您已將模型部署到生產。您想要將少量的流量 (假設 5%) 引導到新的模型,測試模型變異。若要執行此作業,請建立端點組態,該端點會說明兩種模型變體。您可以在傳送至 ProductionVariant 的請求中指定 CreateEndPointConfig。如需詳細資訊,請參閱ProductionVariant

  • 您可以將 ProductionVariant 設定為使用 Application Auto Scaling。如需設定自動調整規模的資訊,請參閱自動擴展 Amazon SageMaker 模型

  • 您可以修改端點,且不需針對已經部署至生產環境的模型停止服務。例如,您可以增加新的模型變體、更新現有模型變體的機器學習 (ML) 運算執行個體組態,或是變更模型變體間的流量分配。若要修改端點,請提供新的端點組態。 SageMaker 實作變更而不會停機時間。如需詳細資訊,請參閱 UpdateEndpointUpdateEndpointWeightsAndCapacities

  • 變更、刪除模型成品,或是在部署模型後變更推論程式碼,皆會導致無法預測的結果。如果您必須變更、刪除模型成品或變更推論程式碼,請提供新的端點組態並修改端點。提供新端點組態之後,即可變更或刪除對應至舊端點組態的模型成品。

  • 如果您想要取得整個資料集的推論,請考慮使用批次轉換替代託管服務。如需相關資訊,請參閱使用批次轉換來使用 Amazon 執行推論 SageMaker

跨可用區域部署多個執行個體

託管模型時建立強大的端點。 SageMaker端點可協助保護您的應用程式不受可用區域中斷和執行個體故障影響。如果發生中斷或執行個體失敗, SageMaker 會自動嘗試跨可用區域分配執行個體。因此,我們強烈建議您為每個生產端點部署多個執行個體。

如果您使用的是 Amazon 虛擬私VPC有雲 (VPC),請至少使用兩個設定 Subnets,每個雲端都位於不同的可用區域。如果發生中斷或執行個體故障,Amazon SageMaker 會自動嘗試跨可用區域分配您的執行個體。

一般而言,在不同的可用區域中使用多個小型執行個體類型託管端點,可獲得更可靠的效能。

部署推論元件以獲得高可用性。除了上述針對執行個體編號的建議之外,若要達到 99.95% 的可用性,請確保您的推論元件設定為具有兩個以上的複本。此外,在您的受管 auto 擴展政策中,也將執行個體的最小數目設定為兩個。