本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Docker 容器建置模型
Amazon 廣泛 SageMaker 使用 Docker 容器來進行構建和運行時任務。 SageMaker 為其內建演算法提供預先建置的 Docker 映像檔,以及用於訓練和推論的支援深度學習架構。您可以使用容器來訓練機器學習演算法,並快速又可靠地部署任何規模的模型。本節中的主題說明如何針對您自己的使用案例部署這些容器。如需如何攜帶自己的容器以搭配 Amazon SageMaker 工作室傳統版使用的相關資訊,請參閱帶上自己的 SageMaker 形象。
主題
使用執行指令碼、訓練演算法或部署模型的案例 SageMaker
Amazon SageMaker 在執行指令碼、訓練演算法和部署模型時,一律會使用 Docker 容器。您使用容器的參與程度取決於使用案例。
以下決策樹說明了三種主要案例:使用預先構建的 Docker 容器搭配使用案例 SageMaker;擴展預先構建的 Docker 容器的用例;構建自己的容器的用例。
![用於選擇建置自訂容器、延伸容器或使用預先建置容器的決策樹。](images/your-algorithm-containers-flowchart-diagram.png)
搭配使用預先建置的 Docker 容器的使用案例 SageMaker
搭配使用容器時,請考量下列使用案例 SageMaker:
-
預先構建的 SageMaker 算法 — 使用內置算法附帶的圖像。如需詳細資訊,請參閱使用 Amazon SageMaker 內建演算法或預先訓練的模型。
-
具有預先建置 SageMaker容器的自訂模型 — 如果您訓練或部署自訂模型,但使用具有預先建置 SageMaker 容器 (包括 TensorFlow 和) 的架構 PyTorch,請選擇下列其中一個選項:
-
如果您不需要自訂套件,並且容器已包括所有必需的套件:請使用與架構關聯的預先建置 Docker 映像。如需更多資訊,請參閱使用預先構建的碼 SageMaker 頭圖像。
-
如果您需要將自訂套件安裝到其中一個預先建置的容器中:請確認預先建置的 Docker 映像是否允許 requirements.txt 檔案,或根據下列使用案例延伸預先建置的容器。
-
延伸預先建置的 Docker 容器的使用案例
以下是延伸預先建置的 Docker 容器的使用案例:
-
您無法匯入相依項 — 延伸與您的架構關聯的預先建置的 Docker 映像。如需詳細資訊,請參閱延伸預先建置的容器。。
-
您無法在預先建置的容器中匯入相依項,而且預先建置的容器支援 requirements.txt — 在 requirements.txt 中新增所有必要的相依項。以下架構支援使用 requirements.txt。
建置您自有的容器的使用案例
如果您建置或訓練自訂模型,而且需要沒有預先建置映像的自訂架構,請建置自訂容器。
作為訓練和部署 TensorFlow 模型的範例使用案例,下列指南說明如何判斷使用案例前幾節中的哪個選項適合案例。
假設您對訓練和部署 TensorFlow 模型有下列需求。
-
模 TensorFlow 型是自訂模型。
-
由於 TensorFlow 模型將在 TensorFlow 框架中構建,因此請使用 TensorFlow 預先構建的框架容器來訓練和託管模型。
-
如果您在進入點
指令碼或推論指令碼中需要自訂套件,請延伸預先建置的容器或使用 requirements.txt 檔案在執行期安裝相依項。
決定所需的容器類型之後,下列清單會提供有關先前列出之選項的詳細資訊。
-
使用內置 SageMaker 算法或框架。對於大多數使用案例,您可以使用內建演算法和架構,而不必擔心容器問題。您可以從 SageMaker 主控台、 AWS Command Line Interface (AWS CLI)、Python 筆記本或 Amazon SageMaker Python 開發套件
訓練和部署這些演算法。您可以在建立估算器時指定演算法或架構版本以達成此目的。使用 Amazon SageMaker 內建演算法或預先訓練的模型主題中列舉並描述了可用的內建演算法。有關可用架構的更多相關資訊,請參閱機器學習 (ML) 架構和語言。如需如何使用筆記本執行個體中執行的 Jupyter 筆記本來訓練及部署內建演算法的 SageMaker 範例,請參閱主題。使用 Amazon 設置指南 SageMaker -
使用預先建立的 SageMaker 容器映像檔。或者,您可以使用使用 Docker 容器的內置算法和框架。 SageMaker 為一些最常見的機器學習框架(例如 Apache MXNet,和鏈接器)提供內置算法的容器和預構建的 Docker 映像。 TensorFlow PyTorch如需可用 SageMaker 映像檔的完整清單,請參閱可用的 Deep Learning Containers 映像
。它還支援機器學習 (ML) 程式庫,例如 scikit-learn 和 SparkML。如果您使用 Amazon SageMaker Python 開發套件 ,您可以透過將完整容器 URI 傳遞至各自的 SageMaker SDK Estimator
類別來部署容器。如需目前支援的深度學習架構完整清單 SageMaker,請參閱適用於深度學習的預建 SageMaker Docker 映像。如需 scikit-learn 和 SparkML 預先建置的容器映像的相關資訊,請參閱用於 SCIKIT 學習和火 SageMaker 花 ML 的預構建 Amazon 碼頭圖像。如需有關搭配 Amazon SageMaker Python 開發套件使用架構的詳細資訊,請參閱中各自的主題Machine Learning 架構和語言。 -
擴展預先構建的 SageMaker 容器映像。如果您想擴展預構建的 SageMaker 算法或模型 Docker 映像,則可以修改圖 SageMaker 像以滿足您的需求。如需範例,請參閱擴充我們的 PyTorch 容器
。 -
調整現有的容器映像檔:如果您想要調整預先存在的容器映像以使用 SageMaker,則必須修改 Docker 容器以啟用「 SageMaker 訓練」或「推論」工具組。如需示範如何建置您自己的容器以訓練和託管演算法的範例,請參閱自備 R 演算法
。