トレーニングのスケーリング - Amazon SageMaker AI

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

トレーニングのスケーリング

以下のセクションでは、トレーニングをスケールアップするシナリオと、 AWS リソースを使用してトレーニングをスケールアップする方法について説明します。次のいずれかの状況でトレーニングをスケールできます。

  • 単一の から多数の GPUへのスケーリング GPUs

  • 単一インスタンスから複数インスタンスへのスケーリング

  • カスタムのトレーニングスクリプトの使用

単一の から多数の GPUへのスケーリング GPUs

機械学習で使用するデータの量やモデルのサイズによって、モデルのトレーニング時間が待てないほど長くなる状況が生じることがあります。また、モデルやトレーニングデータが大きすぎるため、トレーニングがまったく機能しないことがあります。1 つの解決策は、トレーニングに使用する の数を増やすGPUsことです。8 つの を持つ などGPUs、複数の p3.16xlargeを持つインスタンスではGPUs、データと処理は 8 つの に分割されますGPUs。分散トレーニングライブラリを使うと、モデルのトレーニングにかかる時間内がほぼ直線的に高速化されます。1 つの p3.2xlargeで処理されていた時間の 1/8 をわずかに超えますGPU。

インスタンスタイプ GPUs
p3.2xlarge 1
p3.8xlarge 4
p3.16xlarge 8
p3dn.24xlarge 8
注記

SageMaker トレーニングで使用される ml インスタンスタイプは、対応する p3 インスタンスタイプGPUsと同じ数です。例えば、 の番号ml.p3.8xlargep3.8xlarge - 4 GPUsと同じです。

単一インスタンスから複数インスタンスへのスケーリング

トレーニングをさらにスケールする場合は、より多くのインスタンスを使用できます。ただし、インスタンスを追加する前に、より大きなインスタンスタイプを選択してください。前の表を確認して、GPUs各 p3 インスタンスタイプの の数を確認します。

GPU の 1 つの から の 4 つの GPUs p3.2xlargeにジャンプしたがp3.8xlarge、より多くの処理能力が必要であると判断した場合、インスタンス数を増やすp3.16xlarge前に を選択すると、パフォーマンスが向上し、コストが低下する可能性があります。使うライブラリによっては、トレーニングを 1 つのインスタンスで維持すると、複数のインスタンスを使うシナリオよりもパフォーマンスが向上し、コストが低くなります。

インスタンス数をスケールする準備ができたら、 を設定することで SageMaker AI Python SDKestimator関数でこれを行うことができますinstance_count。例えば、instance_type = p3.16xlargeinstance_count = 2 を設定すると、1 つの GPUsで 8 つの の代わりにp3.16xlarge、2 つの同一のインスタンスGPUsに 16 個の があります。次の図は、1 つのインスタンスで 8 から始まり、合計 256 の で 64 インスタンスに増加するスケーリングとスループットGPUsを示していますGPUs。

Chart showing how throughput increases and time to train decreases with more GPUs.

カスタムトレーニングスクリプト

SageMaker AI では、インスタンス数と のデプロイとスケーリングが簡単になりますがGPUs、選択したフレームワークによっては、データと結果の管理が非常に難しい場合があるため、外部サポートライブラリがよく使用されます。この最も基本的な分散トレーニングでは、データ分散を管理するためにトレーニングスクリプトを変更する必要があります。

SageMaker AI は、Horovod と、各主要な深層学習フレームワークにネイティブな分散トレーニングの実装もサポートしています。これらのフレームワークの例を使用する場合は、 SageMaker AI の Deep Learning Containers コンテナガイドと、実装を示すさまざまなサンプルノートブックに従うことができます。