

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 コンテナは、アルゴリズム用のハイパーパラメータと、トレーニングの配信に使用されるネットワークレイアウトを設定する JSON ファイルが含まれる `/opt/ml/input/` ディレクトリを使用します。また、`/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 イメージを使用することもできます。SageMaker AI で使用する Docker イメージを作成する場合は、次の点を考慮してください。
+ 2 つの Docker イメージを提供すると、共通ライブラリが重複することがあるため、ストレージ要件とコストが増加することがあります。
+ 一般的に、小さいコンテナの方がトレーニングとホスティングをより迅速に開始できます。モデルトレーニングが高速になり、ホスティングサービスはより迅速に自動スケーリングすることでトラフィックの増加に対応できます。
+ トレーニングコンテナより大幅に小さい推論コンテナを記述できます。これは、トレーニングに GPU を使用するときに特に一般的ですが、推論コードは CPU 用に最適化されています。
+ SageMaker AI は、Docker コンテナが特権アクセスなしで実行されることを必要とします。
+ 構築した Docker コンテナと SageMaker AI が提供する Docker コンテナの両方が、`Stdout` ファイルと `Stderr` ファイルにメッセージを送信できます。SageMaker AI は、これらのメッセージを AWS アカウントの Amazon CloudWatch logsに送信します。

SageMaker AI のコンテナを作成する方法と、そのコンテナ内でスクリプトを実行する方法については、GitHub の「[SageMaker AI Training Toolkit](https://github.com/aws/sagemaker-training-toolkit)」リポジトリおよび「[SageMaker AI Inference Toolkit](https://github.com/aws/sagemaker-inference-toolkit)」リポジトリを参照してください。これらは、SageMaker AI のコンテナによって提供される重要な環境変数と環境変数のリストも提供します。