使用 Amazon SageMaker 無伺服器推論部署模型 - Amazon SageMaker

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

使用 Amazon SageMaker 無伺服器推論部署模型

Amazon SageMaker 無伺服器推論是專門建置的推論選項,可讓您部署和擴展機器學習模型,而無需設定或管理任何基礎設施。隨需無伺服器推論非常適合在流量陡增之間有閒置期間且可以容忍冷啟動的工作負載。無伺服器端點會自動啟動運算資源,並根據流量將其縮減與擴增,無需選擇執行個體類型或管理擴展政策。這消除了選取和管理伺服器的無差別繁重工作。無伺服器推論 AWS Lambda 與整合,為您提供高可用性、內建容錯能力和自動擴展。使用 pay-per-use 模型時,如果您的流量模式不常見或無法預測,則無伺服器推論是一個符合成本效益的選擇。在沒有請求的時候,無伺服器推論會將您的端點縮小至 0,協助您將成本降至最低。如需隨需無伺服器推論定價的詳細資訊,請參閱 Amazon SageMaker 定價。

或者,您還可以將佈建並行與無伺服器推論搭配使用。當流量中您有可預測的爆量時,具備佈建並行的無伺服器推論是一個具成本效益的選項。佈建的並行可讓您透過保持端點溫暖,在無伺服器端點上部署模型,並具有可預測的效能和高延展性。 SageMaker 確保針對您配置的佈建並行數目,計算資源已初始化,並準備好在幾毫秒內回應。對具有佈建並行的無伺服器推論,您要支付用於處理推論請求的運算容量 (以毫秒計費) 以及處理的資料量。您也可以基於設定的記憶體、佈建的持續時間和已啟用的並行量來支付佈建並行使用量的費用。如需有關使用佈建並行進行的無伺服器推論定價的詳細資訊,請參閱 Amazon 定價。 SageMaker

您可以將無伺服器推論與 MLOps 管道整合,以簡化機器學習 (ML) 工作流程,並且可以使用無伺服器端點來託管在模型註冊表中註冊的模型。

無伺服器推論一般於 21 個 AWS 地區提供:美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (加利佛尼亞北部)、美國西部 (奧勒岡)、非洲 (開普敦)、亞太區域 (香港)、亞太區域 (孟買)、亞太區域 (東京)、亞太區域 (首爾)、亞太區域 (大阪)、亞太區域 (新加坡)、亞太區域 (法蘭克福)、亞太區域 (大阪)、亞太區域 (新加坡)、亞太區域 (法蘭克福)、歐洲 (愛爾蘭)、歐洲 (倫敦)、歐洲 (巴黎)、歐洲 (斯德哥爾摩)、歐洲 (米蘭)、中東 (巴林)、南美洲 (聖保羅)。如需 Amazon SageMaker 區域可用性的詳細資訊,請參閱AWS 區域服務清單

運作方式

下方圖表顯示隨需無伺服器推論的工作流程,以及使用無伺服器端點的優點。

顯示無伺服器推論工作流程的圖表。

當您建立隨選無伺服器端點時,請為您 SageMaker 佈建和管理運算資源。然後,您可以向端點提出推論請求,並接收模型預測作為回應。 SageMaker 視需要擴充和縮減運算資源以處理您的請求流量,而且您只需按使用量付費。

對於佈建並行,無伺服器推論也會與應用程式自動擴展整合,因此您可以根據目標指標或依排程來管理佈建並行。如需詳細資訊,請參閱 針對無伺服器端點自動擴展佈建並行

下方各節提供有關無伺服器推論及其運作方式的其他詳細資訊。

容器支援

對於端點容器,您可以選擇提 SageMaker供的容器或自帶容器。 SageMaker 為一些最常見的機器學習框架(例如 Apache MXNet,和鏈接器)提供內置算法和預構建的 Docker 映像的容器。 TensorFlow PyTorch如需可用 SageMaker 映像檔的清單,請參閱可用的 Deep Learning Containers 映像。如果您要使用自己的容器,則必須修改它才能使用 SageMaker。如需使用自有容器的更多相關資訊,請參閱為 Amazon 調整您自己的推論容器 SageMaker

您可以使用的容器映像大小上限為 10 GB。對於無伺服器端點,我們建議您只在容器中建立一個工作者,並僅載入模型的一個副本。請注意,這與即時端點不同,因為某些 SageMaker 容器可能會為每個 vCPU 建立 Worker,以處理推論要求並在每個 Worker 中載入模型。

如果您已經有用於即時端點的容器,則可以將相同的容器用於無伺服器端點,儘管已將某些功能排除在外。若要進一步了解無伺服器推論中不支援的容器功能,請參閱功能排除項目。如果您選擇使用相同的容器,則會寄存 SageMaker (保留) 容器映像的副本,直到您刪除所有使用該映像的端點為止。 SageMaker 使用 SageMaker擁有 AWS KMS 的密鑰在靜態加密複製的映像。

記憶體大小

您的無伺服器端點的 RAM 大小下限為 1024 MB (1 GB),而您可以選擇的 RAM 大小上限為 6144 MB (6 GB)。您可以選擇的記憶體大小為 1024 MB、2048 MB、3072 MB、4096 MB、5120 MB 或 6144 MB。無伺服器推論會根據您選取的記憶體按比例自動指派運算資源。如果您選擇較大的記憶體大小,您的容器可以存取更多 vCPU。根據您的模型大小選擇端點的記憶體大小。一般而言,記憶體大小應至少與模型大小一樣大。您可能需要進行基準測試,才能基於延遲 SLA 選擇適合模型的記憶體選取項目。如需基準測試的逐步指南,請參閱介紹 Amazon SageMaker 無伺服器推論基準測試工具組。記憶體大小增量有不同的定價;如需詳細資訊,請參閱 Amazon SageMaker 定價頁面

無論您選擇的記憶體大小為何,您的無伺服器端點都有 5 GB 的可用的暫時性磁碟儲存空間。在使用儲存空間時如需容器權限問題的協助,請參閱故障診斷

並行調用

隨需無伺服器推論會針對端點的容量,管理預先定義的擴展政策和配額。無伺服器端點具有可同時處理多少並行調用的配額。如果在端點完成處理第一個請求之前調用端點,則它會並行處理第二個請求。

您可以在您的帳戶中所有無伺服器端點之間共用的並行總計取決於您所在區域:

  • 針對美國東部 (俄亥俄)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、亞太區域 (新加坡)、亞太區域 (雪梨)、亞太區域 (東京)、歐洲 (法蘭克福) 和歐洲 (愛爾蘭) 區域,您可以在您的帳戶中每個區域的所有無伺服器端點之間共用的並行總計為 1000。

  • 針對美國西部 (加利佛尼亞北部)、非洲 (開普敦)、亞太區域 (香港)、亞太區域 (孟買)、亞太區域 (大阪)、亞太區域 (首爾)、加拿大 (中部)、歐洲 (倫敦)、歐洲 (米蘭)、歐洲 (巴黎)歐洲 (斯德哥爾摩)、中東 (巴林) 與南美洲 (聖保羅) 區域,在您的帳戶中,每個區域的並行總計為 500。

您可以將單一端點的並行上限設定為 200,而您可以託管於一個區域中的無伺服器端點總數為 50。個別端點的並行上限可防止該端點佔用您的帳戶允許的所有調用,而且超出上限的任何端點調用都會受到調節。

注意

您指派給無伺服器端點的佈建並行應該一律小於或等於您指派給該端點的並行上限。

要了解如何設定端點的並行上限,請參閱建立端點組態。如需有關配額和限制的詳 Amazon SageMaker 資訊,請參閱 AWS 一般參考. 若要請求提高服務限制,請聯絡 AWS 支援。如需如何請求提高服務限制的指示,請參閱支援的區域和配額

最小化冷啟動

如果您的隨需無伺服器推論端點有一段時間沒有收到流量,然後您的端點突然收到新的請求,則端點可能需要一些時間來啟動運算資源以處理請求。這就是所謂的冷啟動。由於無伺服器端點隨需佈建運算資源,因此您的端點可能會遇到冷啟動情況。如果您的並行請求超過目前的並行請求使用量,則也會發生冷啟動。冷啟動時間取決於您的模型大小、下載模型所需的時間以及容器的啟動時間。

若要監控冷啟動時間的長度,您可以使用 Amazon 指 CloudWatch 標OverheadLatency監控無伺服器端點。此指標會追蹤為您的端點啟動新運算資源所需要的時間。若要進一步瞭解如何搭配無伺服器端點使用 CloudWatch指標,請參閱監控無伺服器端點

您可以使用佈建的並行,將冷啟動降到最低。 SageMaker 根據您所配置的佈建並行數,讓端點保持溫暖並準備好在毫秒內回應。

功能排除項目

無伺服器推論目前可用的某些功能不支援,包括 GPU、 AWS 市集模型套件、私有 Docker 登錄、多模型端點、VPC 組態、網路隔離、資料擷取、多個生產變體、模型 SageMaker 監視器和推論管道。

您無法將基於執行個體的即時端點轉換為無伺服器端點。如果您嘗試將即時端點更新為無伺服器,您會收到一則 ValidationError 訊息。您可以將無伺服器端點轉換為即時,但一旦進行更新,就無法將其復原為無伺服器。

開始使用

您可以使用 SageMaker 主控台、開發套件、Amazon SageMaker Python AWS 開發套件和. AWS CLI您可以使用開 AWS 發套件、Amazon SageMaker Python 開發套件和. AWS CLI對於具有佈建並行的無伺服器端點,您可以基於目標指標或排程,使用應用程式自動擴展來自動擴展佈建並行。如需如何設定與使用無伺服器端點的更多相關資訊,請閱讀指南建立、調用、更新和刪除無伺服器端點。如需使用佈建並行自動擴展無伺服器端點的更多資訊,請參閱針對無伺服器端點自動擴展佈建並行

注意

在 AWS CloudFormation目前不支援針對具有佈建並行的無伺服器推論進行應用程式自動擴展功能。

範例筆記本和部落格

如需顯示無伺服器端點工作流程的 Jupyter 筆記本範例,請參閱 end-to-end 無伺服器推論範例筆記本。