Amazon SageMaker の支出を分析し、使用量に基づいてコスト最適化の機会を決定する、パート 4: トレーニングジョブ | アマゾン ウェブ サービス

Amazon SageMaker の支出を分析し、使用量に基づいてコスト最適化の機会を決定する、パート 4: トレーニングジョブ | アマゾン ウェブ サービス

2021年に、 AWS サポート プロアクティブ サービス の一部として AWSエンタープライズサポート プラン。 導入以来、私たちは何百ものお客様のワークロードの最適化、ガードレールの設定、機械学習 (ML) ワークロードのコストと使用状況の可視性の向上を支援してきました。

この一連の投稿では、コストの最適化について学んだ教訓を共有します。 アマゾンセージメーカー。 この投稿では、SageMaker のトレーニング ジョブに焦点を当てます。

SageMakerトレーニングジョブ

SageMaker トレーニング ジョブは、ML モデルのトレーニングと最適化のための機能が組み込まれた非同期バッチ プロセスです。

SageMaker トレーニング ジョブでは、独自のアルゴリズムを使用することも、25 を超える組み込みアルゴリズムから選択することもできます。 SageMaker は、さまざまなデータ ソースとアクセス パターン、異種クラスターを含む分散トレーニング、実験管理機能、自動モデル チューニングをサポートしています。

トレーニング ジョブのコストは、インスタンスの実行期間 (秒単位) で使用するリソース (インスタンスとストレージ) に基づきます。 これには、トレーニングが行われる時間が含まれます。 温水プール機能、構成するキープアライブ期間。 で 第1部の使用を開始する方法を説明しました。 AWSコストエクスプローラー SageMaker でのコスト最適化の機会を特定します。 使用量タイプにフィルターを適用することで、トレーニング コストをフィルターできます。 これらの使用タイプの名前は次のとおりです。

  • REGION-Train:instanceType (例えば、 USE1-Train:ml.m5.large)
  • REGION-Train:VolumeUsage.gp2 (例えば、 USE1-Train:VolumeUsage.gp2)

Cost Explorer でトレーニング コストの内訳を表示するには、次のように入力します。 train: の接頭辞として 使用タイプ。 使用時間のみをフィルターすると (次のスクリーンショットを参照)、Cost Explorer はコストと使用量の XNUMX つのグラフを生成します。 このビューは、最適化の機会に優先順位を付け、実行時間が長くコストがかかるインスタンスを特定するのに役立ちます。

Amazon SageMaker の支出を分析し、使用量に基づいてコスト最適化の機会を決定する、パート 4: トレーニングジョブ |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

既存のトレーニング ジョブを最適化する前に、次のベスト プラクティスに従うことをお勧めします。 Amazon SageMaker を使用した機械学習のコストの最適化: コードをローカルでテストして使用します ローカルモード テストには、可能な場合は事前トレーニングされたモデルを使用し、次のことを考慮してください。 マネージドスポットトレーニング (オンデマンド インスタンスよりもコストを最大 90% 最適化できます)。

オンデマンド ジョブが開始されると、開始、ダウンロード、トレーニング、アップロード、完了の XNUMX つのフェーズを経ます。 これらのフェーズと説明は、SageMaker コンソールのトレーニング ジョブのページで確認できます。

Amazon SageMaker の支出を分析し、使用量に基づいてコスト最適化の機会を決定する、パート 4: トレーニングジョブ |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

価格の観点から見ると、ダウンロード、トレーニング、アップロードの各フェーズに対して料金が発生します。

これらのフェーズを確認することは、トレーニング コストを最適化する場所を診断するための最初のステップです。 この投稿では、ダウンロードとトレーニングのフェーズについて説明します。

ダウンロード段階

前の例では、ダウンロード フェーズにかかる時間は XNUMX 分未満でした。 ただし、データのダウンロードがトレーニング コストの大きな要素である場合は、使用しているデータ ソースとアクセス方法を考慮する必要があります。 SageMaker トレーニング ジョブは、次の XNUMX つのデータ ソースをネイティブでサポートします。 AmazonElasticファイルシステム (Amazon EFS)、 Amazon シンプル ストレージ サービス (Amazon S3)、および 光沢のためのAmazonFSx。 Amazon S3 の場合、SageMaker はアルゴリズムがトレーニングにアクセスできる XNUMX つの管理された方法を提供します: ファイル モード (データがインスタンスのブロック ストレージにダウンロードされる)、パイプ モード (データがインスタンスにストリーミングされるため、ダウンロード フェーズの時間が不要になります)高速ファイル モード (既存のファイル モードの使いやすさとパイプ モードのパフォーマンスを組み合わせたもの)。 適切なデータ ソースとアクセス方法の選択に関する詳細なガイダンスについては、以下を参照してください。 AmazonSageMakerトレーニングジョブに最適なデータソースを選択してください.

マネージド スポット トレーニングを使用する場合、中断により発生したダウンロード フェーズの繰り返しには料金はかかりません (したがって、データ ダウンロードの期間に対して XNUMX 回だけ料金が請求されます)。

SageMaker トレーニング ジョブは前述のデータ ソースをサポートしていますが、必須ではないことに注意することが重要です。 トレーニング コードでは、任意のソースからトレーニング データをダウンロードする任意のメソッドを実装できます (トレーニング インスタンスがアクセスできる場合)。 マルチプロセッシングを備えた Boto3 API を使用してファイルを同時にダウンロードしたり、WebDataset や s5cmd などのサードパーティ ライブラリを使用して Amazon S3 からのダウンロードを高速化するなど、ダウンロード時間を短縮する追加の方法があります。 詳細については、以下を参照してください。 s3cmd を使用した S5 ワークロードの並列化.

トレーニング段階

トレーニング フェーズのコストの最適化は、適切なインフラストラクチャ (インスタンス ファミリとサイズ) の選択とトレーニング自体の最適化という XNUMX つのベクトルの最適化で構成されます。 トレーニング インスタンスは、主に深層学習モデル用の高速 GPU ベースと、一般的な ML フレームワーク用の CPU ベースの XNUMX つのカテゴリに大まかに分類できます。 トレーニングに適切なインスタンス ファミリーを選択するためのガイダンスについては、以下を参照してください。 Amazon SageMaker で効率的なコンピューティング リソースを確保する。 トレーニングに GPU インスタンスが必要な場合は、ビデオを参照することをお勧めします。 ディープラーニング用の Amazon EC2 GPU インスタンスを選択する方法.

一般的なガイダンスとして、ワークロードに NVIDIA GPU が必要な場合、お客様は XNUMX つの GPU を使用することで大幅なコスト削減が得られることがわかりました。 アマゾン エラスティック コンピューティング クラウド (Amazon EC2) インスタンスタイプ: ml.g4dn および ml.g5。 ml.g4dn には NVIDIA T4 が搭載されており、メモリあたりのコストが特に低くなります。 ml.g5 インスタンスには NVIDIA A10g Tensor コアが搭載されており、CUDA フロップあたりのコストが最も低くなります (fp32)。

AWS は、ディープラーニング トレーニング向けに特定のコスト削減機能を提供します。

インスタンスのサイズを適切に調整して最適化するには、まず次の点を確認する必要があります。 アマゾンクラウドウォッチ トレーニング ジョブが生成するメトリクス。 詳細については、以下を参照してください。 SageMaker ジョブとエンドポイントメトリクス。 CloudWatch をさらに使用することもできます トレーニングのパフォーマンスを監視するためのカスタム アルゴリズム メトリクス.

Amazon SageMaker の支出を分析し、使用量に基づいてコスト最適化の機会を決定する、パート 4: トレーニングジョブ |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

これらのメトリクスは、リソースのボトルネックまたは過剰プロビジョニングを示す可能性があります。 たとえば、GPU 使用率が低くても CPU が高いことが観察されている場合は、次のようにして問題に対処できます。 異種クラスタ。 別の例としては、ジョブ期間中一貫して CPU 使用率が低いことが挙げられます。これにより、インスタンスのサイズが削減される可能性があります。

あなたが使用している場合 分散トレーニング、さまざまな分散方法 (タワー、Ring-AllReduce、ミラーリングなど) をテストして最大使用率を検証し、それに応じてフレームワーク パラメーターを微調整する必要があります (例については、を参照してください)。 Amazon SageMaker での TensorFlow 1.x アクセラレーション トレーニングのベスト プラクティス)。 SageMaker ディストリビューション API と次のようなライブラリを使用できることを強調することが重要です。 SageMaker 分散データ並列, SageMaker モデル パラレル, SageMaker シャードデータパラレル、AWS インフラストラクチャ向けに最適化されており、トレーニング コストの削減に役立ちます。

分散トレーニングは必ずしも線形にスケールするとは限らず、オーバーヘッドが発生する可能性があり、それが全体の実行時間に影響を与える可能性があることに注意してください。

深層学習モデルの場合、混合精度を使用する別の最適化手法もあります。 混合精度を使用するとトレーニングを高速化できるため、モデルの精度への影響を最小限に抑えながら、トレーニング時間とメモリ使用量の両方を削減できます。 詳細については、「 データ並列とモデル並列によるトレーニング のセクション Amazon SageMaker での分散トレーニング.

最後に、フレームワーク固有のパラメーターを最適化すると、トレーニング プロセスの最適化に大きな影響を与える可能性があります。 SageMaker自動モデル調整 選択した客観的なメトリクスによって測定され、最高のパフォーマンスを発揮するハイパーパラメータを見つけます。 トレーニング時間を客観的なメトリックとして設定し、フレームワーク構成をハイパーパラメーターとして設定すると、ボトルネックを解消し、全体のトレーニング時間を短縮できます。 デフォルトの TensorFlow 設定を最適化し、CPU ボトルネックを除去する例については、を参照してください。 Aeroboticsは、Amazon SageMakerとTensorFlowを使用して、サンプルごとにトレーニング速度を24倍向上させます.

ダウンロード時間と処理時間の両方を最適化するもう XNUMX つの方法は、データのサブセットでのトレーニングを検討することです。 データが複数の重複エントリまたは情報利得の低い特徴で構成されている場合は、データのサブセットでトレーニングして、ダウンロードとトレーニングの時間を短縮したり、より小さなインスタンスを使用したり、 Amazon Elastic Blockストア (Amazon EBS) ボリューム。 例については、以下を参照してください。 データ中心のアプローチを使用して、Amazon SageMaker モデルのトレーニングに必要なデータ量を最小限に抑えるよりも優先されます。また、 AmazonSageMakerデータラングラー トレーニング サンプルの分析と作成を簡素化できます。 詳細については、以下を参照してください。 Amazon SageMaker Data Wranglerを使用して、ランダムで層化されたデータのサンプルを作成します.

SageMakerデバッガー

効率的なトレーニングとリソースの利用を確保するために、SageMaker は次を使用してトレーニング ジョブをプロファイリングできます。 Amazon SageMakerデバッガ。 デバッガのオファー 組み込みルール CPU ボトルネック、GPU メモリの増加、I/O ボトルネックなど、トレーニングに影響を与える一般的な問題について警告することも、独自のルールを作成することもできます。 生成されたレポートにアクセスして分析できます。 Amazon SageMakerスタジオ。 詳細については、を参照してください。 Amazon SageMaker Studio Experiments の Amazon SageMaker デバッガー UI。 次のスクリーンショットは、Studio のデバッガー ビューを示しています。

Amazon SageMaker の支出を分析し、使用量に基づいてコスト最適化の機会を決定する、パート 4: トレーニングジョブ |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

Python 演算子と関数 ( GPU での主な操作 セクション) は、トレーニング ジョブを実行するために実行されます。 トレーニング開始前のデータダウンロードによる過剰なトレーニング初期化時間やトレーニング ループ内のステップ期間の外れ値など、監視フレームワークの操作関連の問題をプロファイリングするためのデバッガー組み込みルール。 組み込みルールの使用は無料ですが、カスタム ルールの料金は、トレーニング ジョブの期間中に構成したインスタンスとそれに接続されているストレージに基づいて適用されることに注意してください。

まとめ

この投稿では、SageMaker トレーニング ジョブを使用して ML モデルをトレーニングする際のコスト分析とベスト プラクティスに関するガイダンスを提供しました。 機械学習が業界全体で強力なツールとしての地位を確立するにつれて、ML モデルのトレーニングと実行はコスト効率を維持する必要があります。 SageMaker は、ML パイプラインの各ステップを促進するための幅広く深い機能セットを提供し、パフォーマンスや俊敏性に影響を与えることなくコストを最適化する機会を提供します。


著者について

Amazon SageMaker の支出を分析し、使用量に基づいてコスト最適化の機会を決定する、パート 4: トレーニングジョブ |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。ディーパリ・ラジャレ AWS のシニア AI/ML スペシャリストです。 彼女は企業顧客と協力して、AWS エコシステムで AI/ML ソリューションをデプロイおよび維持するためのベストプラクティスに関する技術ガイダンスを提供しています。 彼女は、NLP とコンピューター ビジョンを含むさまざまな深層学習のユースケースについて、幅広い組織と協力してきました。 彼女は、組織が生成 AI を活用して使用エクスペリエンスを向上できるようにすることに情熱を注いでいます。 余暇には、映画、音楽、文学を楽しんでいます。

Amazon SageMaker の支出を分析し、使用量に基づいてコスト最適化の機会を決定する、パート 4: トレーニングジョブ |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。ユリ・ローゼンバーグ は、ヨーロッパ、中東、アフリカの AI および ML スペシャリスト テクニカル マネージャーです。 Uri はイスラエルに拠点を置き、ML に関するあらゆる分野で企業顧客が大規模に設計、構築、運用できるよう支援することに取り組んでいます。 余暇には、サイクリング、ハイキング、エントロピーの増大を楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習