多模型端點 - Amazon SageMaker AI

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

多模型端點

多模型端點提供可擴展且經濟實惠的解決方案,而且可以部署大量模型。其運用相同資源機群及共享服務容器來託管所有模型。相較於使用單一模型端點,這能改善端點使用率,藉此降低託管成本。同時也能降低部署開銷,因為 Amazon SageMaker AI 會管理記憶體內部的模型載入,並根據端點流量模式擴展模型。

下圖顯示多模型端點與單一模型端點的運作方式。

圖表顯示多模型端點與單一模型端點各自託管模型的方式。

多模型端點非常適合託管大量模型,這些模型在共用服務容器採用相同機器學習 (ML) 架構。如您混合經常存取及不常存取的模型,則多模型端點可利用有效率的方式為此流量提供服務,運用更少資源並節省更多成本。您的應用程式應能容忍偶爾發生的冷啟動相關延遲處罰,這會在調用不常使用的模型時發生。

多模型端點支援託管 CPU 與 GPU 支援的模型。藉由採用 GPU 支援的模型,您可透過增加端點及其基礎加速運算執行個體的使用量來降低模型部署成本。

多模型端點也能支援跨模型記憶體資源的時間共享。這最適合用於模型大小和調用延遲相當類似的情況。在這種情況下,多模型端點可有效地在所有模型中使用執行個體。如果您的模型有明顯較高的每秒交易次數 (TPS) 或延遲需求,建議您將模型託管於專用端點。

您可利用具有下列特徵的多模型端點:

您可以使用 適用於 Python (Boto) 的 AWS SDK或 SageMaker AI 主控台來建立多模型端點。對於 CPU 支援的多模型端點,您可整合多模型伺服器程式庫來建立搭配自訂建置容器的端點。

多模型端點的運作方式

SageMaker AI 會管理託管於容器記憶體中的多模型端點上的模型生命週期。在建立端點時,不是從 Amazon S3 儲存貯體將所有模型下載到容器,而是於調用模型時,由 SageMaker AI 動態載入及快取。當 SageMaker AI 收到特定模型的調用請求時,會執行以下操作:

  1. 路由請求至端點後方單一執行個體。

  2. 將模型從 S3 儲存貯體下載到該執行個體的儲存磁碟區。

  3. 載入模型至該加速運算執行個體的容器記憶體 (CPU 或 GPU,視您擁有 CPU 或 GPU 支援的執行個體而定)。如模型已載入容器記憶體,則由於 SageMaker AI 不需要下載及載入模型,因此其調用速度會更快。

SageMaker AI 會繼續將模型的請求路由到已載入模型的執行個體。但是,如果模型收到許多調用請求,且多模型端點具有其他執行個體,則 SageMaker AI 會將部分請求路由傳送到另一個執行個體以因應流量。如果模型尚未載入第二個執行個體,則模型會下載到該執行個體的儲存磁碟區,並載入容器的記憶體中。

當執行個體的記憶體使用率很高,且 SageMaker AI 需要將另一個模型載入記憶體時,便會從該執行個體的容器卸載未使用的模型,以確保有足夠的記憶體來載入模型。卸載的模型會留在執行個體的儲存磁碟區上,稍後可以載入容器的記憶體,而無須從 S3 儲存貯體再次下載。如果執行個體的儲存磁碟區達到其容量,則 SageMaker AI 會從儲存磁碟區刪除任何未使用的模型。

若要刪除模型,請停止傳送請求,並從 S3 儲存貯體中刪除模型。SageMaker AI 可在服務容器提供多模型端點功能。將模型新增到多模型端點或從中刪除模型時,並不需要更新端點本身。若要新增模型,請將模型上傳到 S3 儲存貯體並進行調用。您不需要變更程式碼也能使用。

注意

當您更新多模型端點時,隨著多模型端點的智慧路由適應流量模式,端點的初始調用請求可能經歷較高延遲。但在其了解流量模式之後,您即可針對最常用模型體驗低延遲情況。較少使用的模型可能產生部分冷啟動延遲,這是由於模型會動態載入至執行個體。

多模型端點的範例筆記本

若要進一步了解如何使用多模型端點,可嘗試下列範例筆記本:

如需說明了解如何建立及存取 Jupyter 筆記本執行個體,並用以執行先前 SageMaker AI 的範例,請參閱Amazon SageMaker 筆記本執行個體。在建立並開啟筆記本執行個體之後,請選擇 SageMaker AI 範例索引標籤,查看所有 SageMaker AI 範例的清單。多模型端點筆記本位於 ADVANCED FUNCTIONALITY (進階功能) 區段。若要開啟筆記本,請選擇其 Use (使用) 標籤,然後選擇 Create copy (建立複本)。

如需有關多模型端點使用案例的詳細資訊,請參閱下列部落格與資源: