

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

# SageMaker 訓練和推論工具組
<a name="amazon-sagemaker-toolkits"></a>

[SageMaker 訓練](https://github.com/aws/sagemaker-training-toolkit)和 [SageMaker AI 推論](https://github.com/aws/sagemaker-inference-toolkit)工具組會實作您需要的功能，以調整容器在 SageMaker AI 上執行指令碼、訓練演算法和部署模型。安裝時，程式庫會為使用者定義下列項目：
+ 儲存程式碼和其他資源的位置。
+ 包含啟動容器時要執行之程式碼的進入點。您的 Dockerfile 必須將需要執行的程式碼複製到與 SageMaker AI 相容之容器所預期的位置。
+ 容器管理部署以進行訓練和推論所需要的其他資訊。

## SageMaker AI 工具組容器結構
<a name="sagemaker-toolkits-structure"></a>

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/` 目錄。如需詳細資訊，請參閱[具有自訂訓練演算法的容器](your-algorithms-training-algo.md)。

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

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

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

如需詳細資訊，請參閱[具有自訂推論程式碼的容器](your-algorithms-inference-main.md)。

## 單一與多個容器
<a name="sagemaker-toolkits-separate-images"></a>

您可以提供訓練演算法與推論程式碼的個別 Docker 映像，或是對兩者使用單一 Docker 映像。當您建立 Docker 映像以用於 SageMaker AI 時，請考量下列事項：
+ 提供兩種 Docker 映像會提高儲存需求與成本，因為常用程式庫可能會重複。
+ 一般而言，較小型的容器在訓練與託管方面，啟動速度會比較快。由於系統可以更快速地進行自動擴充，模型訓練速度會隨之加快，且託管服務可以對增加的流量做出反應。
+ 您或許能夠針對明顯小於訓練容器的推論容器，進行撰寫作業。當您使用 GPU 進行訓練，但您的推論程式碼已對 CPU 進行最佳化時，這種情況尤為常見。
+ SageMaker AI 要求 Docker 容器在沒有特殊權限的情況下執行。
+ 您建置的 Docker 容器和 SageMaker AI 提供的那些容器都可以將訊息傳送到 `Stdout` 和 `Stderr` 檔案。SageMaker AI 會將這些訊息傳送至您 AWS 帳戶中的 Amazon CloudWatch logs。

如需有關如何建立 SageMaker AI 容器及如何在其中執行指令碼的詳細資訊，請參閱 GitHub 上的 [SageMaker AI 訓練工具組](https://github.com/aws/sagemaker-training-toolkit)和 [SageMaker AI 推論工具組](https://github.com/aws/sagemaker-inference-toolkit)儲存庫。這些儲存庫也提供重要的環境變數和 SageMaker AI 容器提供的環境變數清單。