本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
多模型端點部署的執行個體建議
在為多模型端點選取 SageMaker ML 執行個體類型時,需要考慮幾個項目:
-
為所有需要服務的模型提供足夠的 Amazon Elastic Block Store (Amazon EBS) 容量。
-
在效能 (將冷啟動次數減到最少) 與成本 (請勿過度佈建執行個體容量) 之間取得平衡。如需端點和多模型端點的每個執行個體類型所 SageMaker 連接之儲存磁碟區大小的相關資訊,請參閱 執行個體儲存磁碟區。
-
若是設定為在
MultiModel
模式下執行的容器,則相較於預設的SingleModel
模式,為其執行個體佈建的儲存磁碟區會較大。相較於SingleModel
模式,這可在執行個體儲存磁碟區快取更多模型。
選擇 SageMaker ML 執行個體類型時,請考慮下列事項:
-
所有CPU執行個體類型和單一GPU執行個體類型目前都支援多模型端點。
-
對於您要託管於多模型端點後方模型的流量分佈 (存取模式),以及模型大小 (可在執行個體的記憶體載入幾個模型),請留意下列資訊:
-
將執行個體上的記憶體量視為要載入模型的快取空間,並將 的數量視為在載入模型上執行推論的 vCPUs 並行限制 (假設調用模型繫結至 CPU)。
-
對於CPU支援的執行個體,每個執行個體的最大並行調用次數 vCPUs 會影響 (假設調用模型繫結至 CPU)。較高的 vCPUs 量可讓您同時叫用更獨特的模型。
-
對於GPU支援的執行個體,數量較高的執行個體和GPU記憶體可讓您載入更多模型,並準備好提供推論請求。
-
對於 CPU和 GPU 支援的執行個體, 都有一些可用的「鬆弛」記憶體,以便卸載未使用的模型,特別是具有多個執行個體的多模型端點。如果執行個體或可用區域故障,這些執行個體上的模型會重新路由到端點後方的其他執行個體。
-
-
決定載入/下載時間公差:
-
d 執行個體類型系列 (例如 m5d、c5d 或 r5d) 和 g5s 隨附 NVMe(非揮發性記憶體表達)SSD,可提供高 I/O 效能,並可減少將模型下載至儲存磁碟區以及容器從儲存磁碟區載入模型所需的時間。
-
由於 d 和 g5 執行個體類型隨附NVMeSSD儲存體, SageMaker 因此 不會將 Amazon EBS儲存磁碟區連接至託管多模型端點的這些 ML 運算執行個體。當模型的大小類似且同質 (亦即它們具有類似的推論延遲和資源需求),自動擴展的效果最理想。
-
您也可利用下列指引來協助您最佳化多模型端點的模型載入:
選擇無法將所有目標模型保存於記憶體的執行個體類型
在某些情況下,您可以選擇無法同時將所有目標模型保留在記憶體中的執行個體類型,以降低成本。當模型耗盡記憶體時, SageMaker 會動態卸載模型,為新目標模型騰出空間。對於不常請求的模型,您會犧牲動態負載延遲。在延遲需求較嚴密的情況下,您可選擇較大的執行個體類型或更多執行個體。預先投入時間進行效能測試及分析,可協助成功進行生產部署。
評估模型快取命中
Amazon CloudWatch 指標可協助您評估模型。如需詳細資訊了解可搭配多模型端點使用的指標,請參閱CloudWatch 多模型端點部署的指標 。
您可以使用 ModelCacheHit
指標的 Average
統計資料,監控已載入模型中的請求比率。您可以使用 ModelUnloadingTime
指標的 SampleCount
統計資料,監控在某個期間內傳送到容器的取消載入請求數量。如模型太常卸載 (代表出現輾轉現象 (Thrashing);由於模型工作集的快取空間不足,因此再次取消載入及載入模型),請考慮使用具有更多記憶體的較大執行個體類型,或增加多模型端點後方的執行個體數量。對於具有多個執行個體的多模型端點,請注意模型可能會在 1 個以上的執行個體上載入。