Amazon SageMaker でモデルをトレーニングする - Amazon SageMaker

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

Amazon SageMaker でモデルをトレーニングする

次の図は、Amazon SageMaker を使用したモデルのトレーニングおよびデプロイの方法を示しています。

SageMaker のラベルが付いた領域では、SageMaker のモデルトレーニングおよびモデルデプロイの 2 つのコンポーネントがハイライトされています。

SageMaker でモデルをトレーニングするには、トレーニングジョブを作成します。トレーニングジョブには次の情報が含まれます。

  • トレーニングデータが保存されている Amazon Simple Storage Service (Amazon S3) バケットの URL。

  • SageMaker がモデルトレーニングに使用するコンピューティングリソース。コンピューティングリソースは、SageMaker によって管理される ML コンピューティングインスタンスです。

  • ジョブの出力を保存する S3 バケットの URL。

  • トレーニングコードが保存される Amazon Elastic コンテナレジストリのパス。詳細については、「Docker レジストリパスとサンプルコード」を参照してください。

トレーニングアルゴリズムには、次のオプションがあります。

  • SageMakerによって提供されるアルゴリズムを使用する - SageMaker はトレーニングアルゴリズムを提供します。そのどれかがニーズを満たしている場合、すばやく、そのまま使える優れたソリューションです。SageMaker によって提供されるアルゴリズムのリストについては、「Amazon SageMaker 組み込みアルゴリズムを使用する」を参照してください。SageMaker によって提供されるアルゴリズムを使用する演習を試すには、「Amazon SageMaker の使用を開始する」を参照してください。

  • SageMaker Debugger を使用する - TensorFlow、PyTorch、および Apache MXNet 学習フレームワークまたは XGBoost アルゴリズムと連携する際に、トレーニングプロセス全体を通してトレーニングパラメータとデータを検査します。Debugger は、パラメータ値が大きすぎたり小さすぎたりするなど、一般的に発生するエラーを自動的に検出し、ユーザーに警告します。デバッガの使用の詳細については、「アマゾンSageMakerDebugger」を参照してください。Debuggerのサンプルノートブックは、Amazon SageMaker Debugger Samples で入手できます。

  • SageMaker と共に Apache Spark を使用する - SageMaker は、SageMaker でモデルをトレーニングするために Apache Spark で使用できるライブラリを提供します。SageMaker が提供するライブラリを使用することは、Apache Spark MLLib の使用に似ています。詳細については、「Amazon SageMaker で Apache Spark を使う」を参照してください。

  • 深層学習フレームワークでトレーニングするためのカスタムコードを送信する - モデルトレーニングのために、TensorFlow、PyTorch、または Apache MXNet を使用するカスタム Python コードを送信できます。詳細については、「Amazon SageMaker で TensorFlow を使う」、「Amazon SageMaker で PyTorch を使う」、および「Amazon SageMaker で Apache MXNet を使用する」を参照してください。

  • 独自のカスタムアルゴリズムを使用する - Docker イメージとしてコードをまとめ、SageMaker CreateTrainingJob API コールでイメージのレジストリパスを指定します。詳細については、「SageMaker で Docker コンテナを使用する」を参照してください。

  • AWS Marketplace からサブスクライブしているアルゴリズムを使用する - 詳細については、「AWS Marketplace でアルゴリズムとモデルパッケージを見つけてサブスクライブする」を参照してください。

トレーニングジョブを作成すると、SageMaker は ML コンピューティングインスタンスを起動し、トレーニングコードとトレーニングデータセットを使用してモデルをトレーニングします。結果として得られたモデルアーティファクトおよびその他の出力を、その目的で指定した S3 バケットに保存します。

SageMaker コンソールまたは API を使用してトレーニングジョブを作成できます。API を使用してトレーニングジョブを作成する方法については、「CreateTrainingJob」を参照してください。

API を使用してトレーニングジョブを作成すると、SageMaker がデフォルトでデータセット全体を ML コンピューティングインスタンスにレプリケートします。各 ML コンピューティングインスタンスのデータのサブセットをレプリケートするように SageMaker に指示するには、S3DataDistributionType フィールドを ShardedByS3Key に設定する必要があります。このフィールドは、低レベルの SDK を使用して設定できます。詳細については、 S3DataSource の「S3DataDistributionType」を参照してください。

重要

アルゴリズムコンテナのメモリ競合を防ぐために、ML コンピューティングインスタンス上の SageMaker の重要なシステムプロセス用にメモリが予約されているため、お使いのインスタンスタイプにメモリすべてが割り当てられることは期待できません。