

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

# 入力モードとストレージユニットを選択する
<a name="model-access-training-data-best-practices"></a>

トレーニングジョブに最適なデータソースは、データセットのサイズ、ファイル形式、ファイルの平均サイズ、トレーニング時間、データローダーのシーケンシャルまたはランダムの読み取りパターン、モデルがトレーニングデータを使用する速度などのワークロードの特性によって異なります。以下のベストプラクティスは、ユースケースに最適な入力モードとデータストレージサービスを最初から使用するためのガイドラインです。

![データソースおよび入力ファイルモードとして最適なストレージを選択するベストプラクティスをまとめたフローチャート。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/sagemaker-training-choose-mode-and-storage.png)


## Amazon EFS を使用するタイミング
<a name="model-access-training-data-best-practices-efs"></a>

データセットが Amazon Elastic File System に保存されている場合は、Amazon EFS をストレージとして使用する前処理アプリケーションまたはアノテーションアプリケーションがある可能性があります。Amazon EFS ファイルシステムを指すデータチャネルで構成されたトレーニングジョブを実行できます。詳細については、「[Speed up training on Amazon SageMaker AI using Amazon FSx for Lustre and Amazon EFS file systems](https://aws.amazon.com/blogs/machine-learning/speed-up-training-on-amazon-sagemaker-using-amazon-efs-or-amazon-fsx-for-lustre-file-systems/)」を参照してください。パフォーマンスを改善できない場合は、「[Amazon Elastic File System パフォーマンスガイド](https://docs.aws.amazon.com/efs/latest/ug/performance.html#performance-overview)」に従って最適化オプションを確認するか、別の入力モードやデータストレージの使用を検討してください。

## 小規模なデータセットにはファイルモードを使用してください。
<a name="model-access-training-data-best-practices-file-mode"></a>

データセットが Amazon Simple Storage Service に保存されていて、全体の容量が比較的小さい場合 (例えば、50～100 GB 未満) は、ファイルモードを使用してみてください。50 GB のデータセットをダウンロードする場合のオーバーヘッドは、ファイルの総数によって異なる場合があります。例えば、データセットが 100 MB のシャードに分割されている場合、約 5 分かかります。この起動時のオーバーヘッドが許容できるかどうかは、主にトレーニングジョブの全体的な所要時間によって異なります。トレーニングフェーズが長くなると、ダウンロードフェーズもそれに比例して小さくなるからです。

## 多数の小さなファイルをシリアル化する
<a name="model-access-training-data-best-practices-serialize"></a>

データセットのサイズが小さい (50～100 GB 未満) が、多数の小さなファイル (1 ファイルあたり 50 MB 未満) で構成されている場合、ファイルモードのダウンロードオーバーヘッドが増加します。これは、各ファイルを Amazon Simple Storage Service からトレーニングインスタンスボリュームに個別にダウンロードする必要があるためです。このオーバーヘッドとデータトラバーサル時間を一般的に削減するには、TensorFlow の場合は [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord)、PyTorch の場合は [WebDataSet](https://webdataset.github.io/webdataset/)、MXNet の場合は [RecordIO](https://mxnet.apache.org/versions/1.8.0/api/faq/recordio) などのファイル形式を使用して、このような小さなファイルのグループをより小さいサイズのファイルコンテナ (1 ファイルあたり 150 MB など) にシリアル化することを検討してください。

## 高速ファイルモードを使用するタイミング
<a name="model-access-training-data-best-practices-fastfile"></a>

サイズの大きいファイル（1 ファイルあたり 50 MB 以上）を含む大規模なデータセットの場合、最初のオプションは高速ファイルモードを試すことです。高速ファイルモードは、ファイルシステムの作成や VPC への接続が不要なため、FSx for Lustre よりも簡単に使用できます。高速ファイルモードは、サイズの大きいファイルコンテナ (150 MB 以上) に最適で、50 MB を超えるファイルにも適している場合があります。高速ファイルモードは POSIX インターフェイスを提供するため、ランダム読み取り (連続しないバイト範囲の読み取り) をサポートします。ただし、これは理想的な使用例ではなく、スループットはシーケンシャル読み取りよりも低下する可能性があります。ただし、比較的大規模で計算量の多い ML モデルを使用している場合は、高速ファイルモードでもトレーニングパイプラインの実効帯域幅を飽和させることができ、IO ボトルネックにならない可能性があります。実験して確認する必要があります。ファイルモードから高速ファイルモードに切り替える (またはその逆を行う) には、SageMaker Python SDK を使用して入力チャンネルを定義する際に `input_mode='FastFile'` パラメータを追加 (または削除) するだけです。

```
sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER,  input_mode = 'FastFile')
```

## Amazon FSx for Lustre を使用するタイミング
<a name="model-access-training-data-best-practices-fsx"></a>

データセットがファイルモードには大きすぎる場合、簡単にシリアル化できない小さなファイルが多数ある場合、またはランダム読み取りアクセスパターンを使用している場合は、FSx for Lustre を検討することをお勧めします。ファイルシステムは数百ギガバイト/秒 (GB/秒) のスループットと数百万の IOPS にまで拡張できるため、小さなファイルが多数ある場合に最適です。ただし、読み込みの遅延や、FSx for Lustre ファイルシステムのセットアップと初期化のオーバーヘッドが原因で、コールドスタートの問題が発生する可能性があることに注意してください。

**ヒント**  
詳細については、「[Choose the best data source for your Amazon SageMaker training job](https://aws.amazon.com/blogs/machine-learning/choose-the-best-data-source-for-your-amazon-sagemaker-training-job/)」を参照してください。この AWS 機械学習ブログでは、データソースと入力モードのケーススタディとパフォーマンスベンチマークについて詳しく説明します。