SageMaker 訓練和推論工具組 - Amazon SageMaker AI

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

SageMaker 訓練和推論工具組

SageMaker 訓練SageMaker AI 推論工具組會實作您需要的功能,以調整容器在 SageMaker AI 上執行指令碼、訓練演算法和部署模型。安裝時,程式庫會為使用者定義下列項目:

  • 儲存程式碼和其他資源的位置。

  • 包含啟動容器時要執行之程式碼的進入點。您的 Dockerfile 必須將需要執行的程式碼複製到與 SageMaker AI 相容之容器所預期的位置。

  • 容器管理部署以進行訓練和推論所需要的其他資訊。

SageMaker AI 工具組容器結構

SageMaker AI 訓練模型時,會在容器的 /opt/ml 目錄中建立下列檔案資料夾結構。

/opt/ml ├── input │ ├── config │ │ ├── hyperparameters.json │ │ └── resourceConfig.json │ └── data │ └── <channel_name> │ └── <input data> ├── model │ ├── code │ ├── output │ └── failure

執行模型訓練任務時,SageMaker AI 容器使用 /opt/ml/input/ 目錄,其中包含 JSON 檔案,這些檔案設定演算法的超參數,以及用於分散式訓練的網路配置。/opt/ml/input/ 目錄也包含指定 SageMaker AI 存取資料之通道的檔案,而資料儲存在 Amazon Simple Storage Service (Amazon S3) 中。SageMaker AI 容器程式庫放置容器將在 /opt/ml/code/ 目錄中執行的指令碼。您的指令碼應該將演算法產生的模型寫入至 /opt/ml/model/ 目錄。如需更多詳細資訊,請參閱 具有自訂訓練演算法的容器

在 SageMaker AI 上託管訓練過的模型以進行推論時,您可以將模型部署到 HTTP 端點。此模型會即時預測以回應推論請求。容器必須包含服務堆疊來處理這些請求。

在託管或批次轉換容器中,模型檔案位於訓練期間寫入的相同資料夾中。

/opt/ml/model │ └── <model files>

如需更多詳細資訊,請參閱 具有自訂推論程式碼的容器

單一與多個容器

您可以提供訓練演算法與推論程式碼的個別 Docker 映像,或是對兩者使用單一 Docker 映像。當您建立 Docker 映像以用於 SageMaker AI 時,請考量下列事項:

  • 提供兩種 Docker 映像會提高儲存需求與成本,因為常用程式庫可能會重複。

  • 一般而言,較小型的容器在訓練與託管方面,啟動速度會比較快。由於系統可以更快速地進行自動擴充,模型訓練速度會隨之加快,且託管服務可以對增加的流量做出反應。

  • 您或許能夠針對明顯小於訓練容器的推論容器,進行撰寫作業。當您使用 GPU 進行訓練,但您的推論程式碼已對 CPU 進行最佳化時,這種情況尤為常見。

  • SageMaker AI 要求 Docker 容器在沒有特殊權限的情況下執行。

  • 您建置的 Docker 容器和 SageMaker AI 提供的那些容器都可以將訊息傳送到 StdoutStderr 檔案。SageMaker AI 會將這些訊息傳送到您的 AWS 帳戶中的 Amazon CloudWatch 日誌。

如需有關如何建立 SageMaker AI 容器及如何在其中執行指令碼的詳細資訊,請參閱 GitHub 上的 SageMaker AI 訓練工具組SageMaker AI 推論工具組儲存庫。這些儲存庫也提供重要的環境變數和 SageMaker AI 容器提供的環境變數清單。