

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

# 在 SageMaker AI 託管服務上部署模型的最佳實務
<a name="deployment-best-practices"></a>

使用 SageMaker AI 託管服務進行模型託管時，請考量下列事項：
+ 用戶端應用程式通常會將請求傳送至 SageMaker AI HTTPS 端點，藉此從部署的模型獲取推論。然而，您也可以在測試期間，從 Jupyter 筆記本將請求傳送至此端點。
+ 您能夠將 SageMaker AI 所訓練的模型部署至專屬的部署目標。若要執行該作業，則必須掌握模型訓練產生的模型成品，了解其所採用的演算法專屬格式。如需輸出格式的詳細資訊，請移至 [用於訓練的一般資料格式](cdf-training.md)，參閱對應至使用中演算法的小節。
+ 您可以將一個模型的多個變體部署至相同的 SageMaker AI HTTPS 端點。這將有助於生產環境中模型變體的測試作業。例如，假設您已將模型部署到生產。您想要將少量的流量 (假設 5%) 引導到新的模型，測試模型變異。若要執行此作業，請建立端點組態，該端點會說明兩種模型變體。您可以在傳送至 `ProductionVariant` 的請求中指定 `CreateEndPointConfig`。如需詳細資訊，請參閱[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html)。
+ 您可以將 `ProductionVariant` 設定為使用 Application Auto Scaling。如需設定自動調整規模的資訊，請參閱[Amazon SageMaker AI 模型的自動擴展](endpoint-auto-scaling.md)。
+ 您可以修改端點，且不需針對已經部署至生產環境的模型停止服務。例如，您可以增加新的模型變體、更新現有模型變體的機器學習 (ML) 運算執行個體組態，或是變更模型變體間的流量分配。欲修改端點，則需提供新的端點組態。SageMaker AI 會實作這些變更內容，且不會造成停機。如需詳細資訊，請參閱 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html) 及 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html)。
+ 變更、刪除模型成品，或是在部署模型後變更推論程式碼，皆會導致無法預測的結果。如果您必須變更、刪除模型成品或變更推論程式碼，請提供新的端點組態並修改端點。提供新端點組態之後，即可變更或刪除對應至舊端點組態的模型成品。
+ 如果您想要取得整個資料集的推論，請考慮使用批次轉換替代託管服務。如需相關資訊，請參閱[使用 Amazon SageMaker AI 進行批次轉換以進行推論](batch-transform.md)。

## 跨可用區域部署多個執行個體
<a name="deployment-best-practices-availability-zones"></a>

**託管模型時建立強大的端點。**SageMaker AI 端點可協助保護您的應用程式不受[可用區域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)中斷和執行個體故障影響。如果發生停機或執行個體故障，SageMaker AI 會自動嘗試將您的執行個體分散到各個可用區域。因此，我們強烈建議您為每個生產端點部署多個執行個體。

如果您使用的是 [Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)，請至少使用兩個 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html#SageMaker-Type-VpcConfig-Subnets                     .html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html#SageMaker-Type-VpcConfig-Subnets                     .html) 設定 VPC，每個都位於不同的可用區域中。如果發生停機或執行個體故障，Amazon SageMaker AI 會自動嘗試將您的執行個體分散到各個可用區域。

一般而言，在不同的可用區域中使用多個小型[執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)託管端點，可獲得更可靠的效能。

**部署推論元件以獲得高可用性。**除了上述的執行個體編號建議之外，若要達到 99.95% 的可用性，請確定您的推論元件已設定為具有兩個以上的複本。此外，在您的受管自動擴展政策中，也將執行個體數量下限設定為兩個。