Amazon SageMaker トレーニングマネージド型ウォームプールのベストプラクティス

Amazon SageMaker Training Managed Warm Pools を使用すると、ユーザーが定義した期間、基盤となるインフラストラクチャを再利用して保持することを柔軟に選択できます。 これは、コンピューティング インスタンスを管理するという差別化されていない重労働を Amazon SageMaker モデルトレーニング. この投稿では、SageMaker Training Managed Warm Pools によって対処される主な利点と問題点、およびベンチマークとベストプラクティスについて概説します。

SageMaker トレーニングマネージドウォームプールの概要

SageMaker Model Training は、ジョブごとにインスタンスをスピンアップし、モデルをトレーニングし、実行して、ジョブの後にインスタンスをスピンダウンするフルマネージド機能です。 秒までのジョブの期間に対してのみ請求されます。 この完全に管理された機能により、モデルのトレーニング中に、インフラストラクチャ管理などの差別化されていない重労働について心配することなく、自由に機械学習 (ML) アルゴリズムに専念できます。

このメカニズムでは、トレーニング ジョブの起動時間が限られています。 この起動時間は、 コールドスタート起動時間、かなり低いですが、最も要求の厳しい顧客のユースケースの一部では、20 秒未満など、さらに短い起動時間が必要です。 これらの要件を持つ XNUMX つの顕著な使用例があります。

  • XNUMX つ目は、データ サイエンティストによるアクティブな ML 実験です。 アマゾンセージメーカー トレーニング プラットフォーム、特に GPT3 のような大規模なモデルのトレーニング中は、本番環境で使用できる状態にするために複数回の反復が必要です。
  • XNUMX つ目は、スケジュールされた頻度で、同じ種類のインスタンスで多数 (数百または数千のオーダー) の連続したジョブをプログラムによって起動することです。 たとえば、パラメーター検索やインクリメンタル トレーニングなどです。

このようなユース ケースでは、トレーニング ジョブの起動時間などのオーバーヘッドに費やされる XNUMX 秒ごとに、これらすべてのジョブに累積的な影響があります。

SageMaker Training Managed Warm Pools を使用すると、データ サイエンティストと ML エンジニアは、SageMaker トレーニング インスタンスまたはマルチインスタンス クラスターを事前に指定された再構成可能な時間、ウォーム状態に保つことを選択できます (keep_alive_period_in_seconds) 各トレーニング ジョブが完了した後。 そのため、インスタンスまたはクラスターで実行される最初のトレーニング ジョブでコールド スタート ペナルティが発生したとしても、その後のすべてのトレーニング ジョブで、インスタンスはすでに稼働しています。 その結果、インスタンスで開始されるこれらの後続のトレーニング ジョブは、 keep_alive_period_in_seconds 期限が切れても、コールド スタートの起動時間のオーバーヘッドは発生しません。 これにより、トレーニング ジョブの起動時間を約 20 秒未満に短縮できます (P90)。

データ サイエンティストと ML エンジニアは、SageMaker Training Managed Warm Pools を使用して、実験用のトレーニング実行間で単一または複数のインスタンスをウォーム状態に維持したり、同じ単一または複数インスタンスのクラスターで複数のジョブを連続して実行したりできます。 お支払いいただくのは、トレーニング ジョブと再構成可能な期間の料金のみです。 keep_alive_period_in_seconds 単一のインスタンスごとに指定する他の場所と同様です。

本質的に、SageMaker Training Managed Warm Pools を使用すると、SageMaker マネージド インスタンスの使用率と、容量をオプトインしてプロビジョニングし、短い間隔で使用率を自己管理する機能を組み合わせることができます。 これらの間隔はジョブの前に構成できますが、 keep_alive_period_in_seconds 間隔を減らすか増やす必要があります。そうすることができます。 に増加します keep_alive_period_in_seconds インスタンスまたはクラスターの最大期間は 60 日間で、最大 7 分の間隔で実行できます。

温水プールを始めるには、まず ウォーム プール クォータ制限の引き上げをリクエストする、次に指定します keep_alive_period_in_seconds パラメーター 研修の仕事を始めるとき。

ベンチマーク

1.34 GB の TensorFlow イメージ、2 GB のデータ、およびさまざまなトレーニング データ入力モード (Amazon FSx、高速ファイル モード、ファイル モード) を使用して、ジョブの起動レイテンシを測定するベンチマーク テストを実行しました。 テストは、us-east-4 リージョンの m4、c5、m5、c2 ファミリーのさまざまなインスタンス タイプで実行されました。 起動レイテンシは、ジョブの作成からインスタンスでの実際のトレーニング ジョブの開始までの時間として測定されました。 クラスターを開始し、ウォーム プールを作成した最初のジョブの起動待ち時間は 2 ~ 3 分でした。 この待ち時間の増加は、インフラストラクチャのプロビジョニング、イメージのダウンロード、およびデータのダウンロードにかかる時間によるものです。 ウォーム プール クラスターを利用した後続ジョブの起動レイテンシーは、Fast File Mode (FFM) または Amazon FSx で約 20 秒、File Mode (FM) で 70 秒でした。 このデルタは、FM がジョブの開始前に Amazon S3 からデータセット全体をダウンロードすることを要求した結果です。

トレーニング データ入力モードの選択は、ウォーム プールを使用する場合でも、起動時間に影響します。 どの入力モードを選択するかについてのガイダンスは、この投稿の後半のベスト プラクティス セクションにあります。

次の表は、さまざまなトレーニング データ入力モードのジョブ起動レイテンシ P90 をまとめたものです。

データ入力モード 起動待ち時間 P90 (秒)
最初の仕事 ウォーム プール ジョブ (XNUMX つ目以降のジョブ)
FSx 136 19
高速ファイル モード 143 21
ファイルモード 176 70

ウォーム プールを使用するためのベスト プラクティス

次のセクションでは、ウォーム プールを使用する際のベスト プラクティスをいくつか紹介します。

いつ温水プールを使用する必要がありますか?

次のシナリオでは、ウォーム プールをお勧めします。

  • 一連の短いジョブでスクリプトをインタラクティブに実験および調整しています。
  • 独自のカスタムメイドの大規模なハイパーパラメータ最適化を実行しています (たとえば、 シネ・チューン).
  • 毎日または毎週の頻度で、同じ種類のインスタンスで多数 (数百または数千のオーダー) の連続したジョブを実行するバッチ プロセスがあります。 たとえば、都市ごとに ML モデルをトレーニングします。

有効期限が切れる前に誰かがウォーム プールを再利用する可能性が低い場合、ウォーム プールはお勧めしません。 たとえば、自動化された ML パイプラインを介して実行される単一の長いジョブです。

ウォーム プール トレーニング ジョブの起動待ち時間を最小限に抑える

ウォーム プールを再利用するトレーニング ジョブは、ウォーム プールを作成した最初のジョブよりも速く開始されます。 これは、キャッシュされたトレーニング コンテナー Docker イメージを使用してジョブ間で ML インスタンスを実行し続け、コンテナーのプルをスキップするためです。 Amazon エラスティック コンテナ レジストリ (アマゾン ECR)。 ただし、ウォーム プールを再利用する場合でも、すべてのジョブに対して特定の初期化手順が発生します。 これらの手順を最適化すると、ジョブの起動時間を短縮できます (最初のジョブと後続のジョブの両方)。 次の点を考慮してください。

  • トレーニング データ入力モードは起動時間に影響を与える可能性があります – 管理されたトレーニング データ入力チャネルは、トレーニング ジョブごとに再作成されるため、ジョブの起動の待ち時間が長くなります。 そのため、小さなデータセットで初期実験を行うと、起動時間 (およびトレーニング時間) が短縮されます。 実験の後の段階で大規模なデータセットが必要な場合は、初期化時間が最小または固定の入力モード タイプを使用することを検討してください。 たとえば、FILE 入力モードでは、データセット全体がコピーされます。 Amazon シンプル ストレージ サービス (Amazon S3) をトレーニング インスタンスに送信します。これは、大規模なデータセット (ウォーム プールを使用する場合でも) には時間がかかります。 高速ファイル モードは、ワークロードを開始する前に Amazon S3 から読み取る必要があるのは S3 オブジェクト メタデータのみであるため、起動のレイテンシーを下げるのに適しています。 の 光沢のためのAmazonFSxまたは AmazonElasticファイルシステム (Amazon EFS) ファイル システム入力モードでは、ファイル システム内のファイル数に関係なく初期化時間が固定されているため、大規模なデータセットを操作する場合に役立ちます。
    入力チャンネルの選択方法の詳細については、を参照してください。 AmazonSageMakerトレーニングジョブに最適なデータソースを選択してください.
  • パッケージのランタイム インストールを減らす – Python の pip やオペレーティング システムの apt-get など、コンテナーの起動時にソフトウェアをインストールすると、トレーニング ジョブの待機時間が長くなります。 この起動時の待ち時間を最小限に抑えるには、ランタイム インストールの柔軟性とシンプルさと、コンテナーのビルド時のインストールとの間でトレードオフを行う必要があります。 SageMaker で独自の Docker コンテナを使用する場合は、以下を参照してください。 SageMaker で動作するように独自の Docker コンテナを適応させる。 あなたが頼るなら ビルド済みの SageMaker コンテナ イメージ、あなたがする必要があります ビルド済みコンテナを拡張する これらのコンテナを明示的に管理します。 ランタイムのインストールによって起動時の待ち時間が大幅に増加する場合は、これを考慮してください。
  • Docker イメージを頻繁に更新しない – SageMaker で独自の Docker コンテナを使用する場合は、ジョブを実行するたびに更新しないようにしてください。 ジョブの送信の間に Docker イメージが変更された場合、ウォーム プールが再利用されますが、起動プロセスでは、キャッシュされたコンテナ イメージを再利用する代わりに、Amazon ECR からコンテナ イメージを再プルする必要があります。 Docker イメージを更新する必要がある場合は、更新を最後の Docker レイヤーに限定して、Docker レイヤーのキャッシュを利用します。 理想的には、ハイパーパラメーター、データセット定義、ML コード自体など、反復によって変更される可能性が高い Dockerfile コンテンツを削除する必要があります。 変更のたびに Docker イメージを再構築することなく ML コードを反復するには、SageMaker トレーニング ツールキットで提唱されているフレームワーク コンテナー パラダイムを採用できます。 独自のコードでフレームワーク コンテナーを開発する場合は、こちらを参照してください。 Amazon SageMaker チュートリアル.

複数のユーザー間でウォーム プールを共有する

データ サイエンティストの大規模なチームで作業する場合、ウォーム プールを共有できます。 一致するジョブ条件、同じなど AWS IDおよびアクセス管理 (IAM) ロールまたはコンテナー イメージ。

タイムラインの例を見てみましょう。 ユーザー 1 がトレーニング ジョブを開始すると、そのジョブが完了し、新しいウォーム プールが作成されます。 ユーザー 2 がトレーニング ジョブを開始すると、ジョブは既存のウォーム プールを再利用するため、ジョブの起動が高速になります。 ユーザー 2 のジョブがウォーム プールを使用して実行されている間に、別のユーザーがトレーニング ジョブを開始すると、XNUMX つ目のウォーム プールが作成されます。

この再利用動作は、同様のジョブを開始するユーザー間でウォーム プールを共有することにより、コストを削減するのに役立ちます。 ユーザー間でウォーム プールを共有したくない場合は、ユーザーのジョブに 一致するジョブ条件 (たとえば、別の IAM ロールを使用する必要があります)。

ジョブの完了時にユーザーに通知する

実験にウォーム プールを使用する場合は、ジョブの完了時にユーザーに通知することをお勧めします。 これにより、ユーザーはウォーム プールの有効期限が切れる前に実験を再開できます。 stop 不要になった場合は、ウォーム プール。 あなたもすることができます 通知を自動的にトリガーする   アマゾンイベントブリッジ.

迅速な実験とトレーニング ジョブのトラブルシューティングのためのその他のツール

ウォーム プールを使用すると、20 秒未満でジョブを開始できます。 一部のシナリオでは、リアルタイムで実践的なインタラクティブな実験とトラブルシューティングが必要です。 オープンソース SageMaker SSH ヘルパー ライブラリ SageMaker トレーニング コンテナにシェルを作成し、リモートでの開発とデバッグを行うことができます。

まとめ

SageMaker Training Managed Warm Pools を使用すると、指定された期間、すべてのジョブの後、モデル トレーニング ハードウェア インスタンスをウォーム状態に保つことができます。 これにより、モデル トレーニング ジョブの起動レイテンシを最大 8 分の XNUMX に短縮できます。 SageMaker Training Managed Warm Pools は、SageMaker Model Training が利用可能なすべてのパブリック AWS リージョンで利用できます。

開始するには、を参照してください SageMaker マネージド ウォーム プールを使用したトレーニング.


著者について

ロミ・ダッタロミ・ダッタ博士  Amazon SageMaker チームの製品管理のシニア マネージャーで、トレーニング、処理、機能ストアを担当しています。 彼は AWS に 4 年以上勤務しており、SageMaker、S3、および IoT でいくつかの製品管理のリーダーシップの役割を果たしています。 AWS に入社する前は、IBM、Texas Instruments、および Nvidia で、さまざまな製品管理、エンジニアリング、および運用上のリーダーシップの役割を果たしてきました。 修士号と博士号を取得しています。 テキサス大学オースティン校で電気工学およびコンピュータ工学の学士号を取得し、シカゴ大学ブース ビジネス スクールで MBA を取得しています。

Amazon SageMaker トレーニング管理型ウォームプール PlatoBlockchain データインテリジェンスのベストプラクティス。垂直検索。あい。アルン・ナガラジャン Amazon SageMaker チームのプリンシパル エンジニアであり、トレーニングと MLOps の分野に重点を置いています。 彼は立ち上げの年から SageMaker チームに所属しており、リアルタイム推論やモデルモニター製品など、SageMaker のさまざまな分野に貢献することを楽しんでいます。 彼は、太平洋岸北西部地域のアウトドアを探索し、山に登るのが好きです。

Amazon SageMaker トレーニング管理型ウォームプール PlatoBlockchain データインテリジェンスのベストプラクティス。垂直検索。あい。エイミー・ユー AWS SageMaker のソフトウェア開発マネージャーです。 彼女は、ソフトウェア エンジニアのチームをまとめて、お客様が ML モデルをより効率的かつ簡単にトレーニングできるようにする SageMaker Training プラットフォームの新しい機能を構築、維持、開発することに重点を置いています。 彼女は ML と AI テクノロジーに情熱を傾けており、特に大学院での研究で得たイメージとビジョンに関連しています。 余暇には、家族と一緒に音楽やアートに取り組むのが大好きです。

Amazon SageMaker トレーニング管理型ウォームプール PlatoBlockchain データインテリジェンスのベストプラクティス。垂直検索。あい。 リー・シフェイ 彼女は Amazon AI のソフトウェア エンジニアであり、Amazon Machine Learning Platform の構築に取り組んでおり、Amazon SageMaker の立ち上げチームの一員でした。 余暇には、音楽の演奏と読書が好きです。

Amazon SageMaker トレーニング管理型ウォームプール PlatoBlockchain データインテリジェンスのベストプラクティス。垂直検索。あい。ジェナ・ジャオ AWS SageMaker のソフトウェア開発エンジニアです。 彼女は ML/AI テクノロジーに情熱を傾けており、顧客が機械学習モデルを迅速かつ簡単にトレーニングできるようにする SageMaker トレーニング プラットフォームの構築に注力しています。 仕事以外では、旅行や家族との時間を楽しんでいます。

Amazon SageMaker トレーニング管理型ウォームプール PlatoBlockchain データインテリジェンスのベストプラクティス。垂直検索。あい。パラス・メーラ AWS のシニア プロダクト マネージャーです。 彼は、Amazon SageMaker のトレーニングと処理の構築を支援することに専念しています。 余暇には、パラスは家族と過ごしたり、ベイエリアでロードバイクを楽しんだりしています。 あなたは彼を見つけることができます LinkedIn.

Amazon SageMaker トレーニング管理型ウォームプール PlatoBlockchain データインテリジェンスのベストプラクティス。垂直検索。あい。ギリナチュム は、EMEAのAmazonMachineLearningチームの一員として働くシニアAI/MLスペシャリストソリューションアーキテクトです。 Giliは、ディープラーニングモデルのトレーニングの課題と、機械学習が世界をどのように変えているかについて情熱を注いでいます。 暇なときは、ギリは卓球を楽しんでいます。

Amazon SageMaker トレーニング管理型ウォームプール PlatoBlockchain データインテリジェンスのベストプラクティス。垂直検索。あい。オリヴィエ・クルシャン フランスを拠点とするAWSの機械学習スペシャリストソリューションアーキテクトです。 Olivierは、小規模なスタートアップから大企業まで、AWSのお客様が本番環境グレードの機械学習アプリケーションを開発およびデプロイするのを支援します。 余暇には、研究論文を読んだり、友人や家族と一緒に荒野を探索したりしています。

Amazon SageMaker トレーニング管理型ウォームプール PlatoBlockchain データインテリジェンスのベストプラクティス。垂直検索。あい。エミリー・ウェバー SageMakerがリリースされた直後にAWSに参加し、それ以来、世界中にそのことを伝えようとしています。 エミリーは、顧客のために新しいML体験を構築する以外に、チベット仏教の瞑想と勉強を楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習