

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

# 多模型端點部署的執行個體建議
<a name="multi-model-endpoint-instance"></a>

在選取多模型端點的 SageMaker AI 機器學習 (ML) 執行個體類型時，有一些需要考量的項目：
+ 為需要服務的所有模型佈建足夠的 [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) 容量。
+ 在效能 (將冷啟動次數減到最少) 與成本 (請勿過度佈建執行個體容量) 之間取得平衡。如需 SageMaker AI 為端點與多模型端點之各種執行個體類型連接的儲存磁碟區大小的相關資訊，請參閱[執行個體存放區磁碟區](host-instance-storage.md)。
+ 若是設定為在 `MultiModel` 模式下執行的容器，則相較於預設的 `SingleModel` 模式，為其執行個體佈建的儲存磁碟區會較大。相較於 `SingleModel` 模式，這可在執行個體儲存磁碟區快取更多模型。

當選擇 SageMaker AI 機器學習 (ML) 執行個體類型時，請考慮下列事項：
+ 目前所有 CPU 執行個體類型與單一 GPU 執行個體類型均支援多模型端點。
+ 對於您要託管於多模型端點後方模型的流量分佈 (存取模式)，以及模型大小 (可在執行個體的記憶體載入幾個模型)，請留意下列資訊：
  + 將執行個體的記憶體容量視為模型要載入的快取空間，並將 vCPU 數量視為對於已載入模型執行推論的並行限制 (假設調用模型已繫結 CPU)。
  + 對於 CPU 支援的執行個體，vCPU 數量會影響每個執行個體的最大並行調用 (假設調用模型已繫結 CPU)。更高數量的 vCPU 可讓您同時調用更多唯一模型。
  + 對於 GPU 支援的執行個體，較高執行個體與 GPU 記憶體容量可讓您載入更多模型並準備就緒可提供推斷請求服務。
  + 對於 CPU 與 GPU 支援的執行個體，擁有部分可用 “閒置” 記憶體，以便卸載未使用模型，這尤其適用具多個執行個體的多模型端點。如果執行個體或可用區域故障，這些執行個體上的模型會重新路由到端點後方的其他執行個體。
+ 決定載入/下載時間公差：
  + d 執行個體類型系列 (例如 m5d、c5d 或 r5d) 以及 g5 隨附 NVMe (非揮發性記憶體儲存裝置) SSD，可提供高 I/O 效能，而且可能會縮短將模型下載到儲存磁碟區所需的時間，以及容器從儲存磁碟區載入模型所需的時間。
  + 由於 d 與 g5 執行個體類型隨附 NVMe SSD 儲存，SageMaker AI 不會將 Amazon EBS 儲存磁碟區連接到這些託管多模型端點的機器學習 (ML) 運算執行個體。當模型的大小類似且同質 (亦即它們具有類似的推論延遲和資源需求)，自動擴展的效果最理想。

您也可利用下列指引來協助您最佳化多模型端點的模型載入：

**選擇無法將所有目標模型保存於記憶體的執行個體類型**

在某些情況下，您可選擇無法將所有目標模型同時保存於記憶體的執行個體類型，藉此選擇降低成本。SageMaker AI 會在耗盡記憶體時動態卸載模型，以便保留空間供新目標模型使用。對於不常請求的模型，您會犧牲動態負載延遲。在延遲需求較嚴密的情況下，您可選擇較大的執行個體類型或更多執行個體。預先投入時間進行效能測試及分析，可協助成功進行生產部署。

**評估模型快取命中**

Amazon CloudWatch 指標可協助您評估模型。如需詳細資訊了解可搭配多模型端點使用的指標，請參閱[多模型端點部署的 CloudWatch 指標](multi-model-endpoint-cloudwatch-metrics.md)。

 您可以使用 `ModelCacheHit` 指標的 `Average` 統計資料，監控已載入模型中的請求比率。您可以使用 `ModelUnloadingTime` 指標的 `SampleCount` 統計資料，監控在某個期間內傳送到容器的取消載入請求數量。如模型太常卸載 (代表出現*輾轉現象* (Thrashing)；由於模型工作集的快取空間不足，因此再次取消載入及載入模型)，請考慮使用具有更多記憶體的較大執行個體類型，或增加多模型端點後方的執行個體數量。對於具有多個執行個體的多模型端點，請注意模型可能會在 1 個以上的執行個體上載入。