スポットインスタンスを利用して、SageMakerのモデルトレーニングをしてみた

Pocket

はじめに

今回は、AWS SageMaker によるモデルトレーニング時にスポットインスタンスが利用できるようになったので、実際に利用し、どれだけコスト削減できるか確認します。
※注意※
本稿は、実際のモデルトレーニング時にスポットインスタンスを利用する方法と、どれだけコスト削減できたかを紹介する記事です。
モデルトレーニング時のスポットインスタンス利用で何が変わるのか、何が利点なのかについては以下の記事でご紹介していますので、参考にしていただけると幸いです。
スポットインスタンスを利用して、SageMaker でのモデル作成コストを最大90%削減する

モデルトレーニング時のスポットインスタンス利用方法

モデルトレーニング時にスポットインスタンスを利用するには、以下の2つの項目を設定することが必須です。
・Enable managed spot training (スポットインスタンスの利用を有効にする)
・Maximum wait time before job terminates optional stopping condition (最大実行時間)
以下、設定方法を説明します。

トレーンングジョブの作成

・SageMaker のサイドバーからトレーニングジョブを選択し、右上のトレーニングジョブの作成をクリックします。

・任意のジョブ名と、適切なIAMを選択します。

・アルゴリズムの設定を行います。今回私は、組み込みアルゴリズムの ObjectDetection を利用します。

・利用するインスタンスタイプと停止条件を設定します。
ストレージボリュームにはトレーニングジョブのチェックポイントを保存できるだけの容量を確保しましょう。

・入力データやハイパーパラメータは各自設定をお願いします。
・次にチェックポイントの保存先を設定します。
これは、スポットインスタンス中断時にチェックポイントの情報をS3に保存し、スポットインスタンス再開時に参照する設定です。
この設定をしないと、スポットインスタンス中断によってトレーニングジョブが一からやり直しになります。

・モデル保存先を設定します。

・スポットインスタンスの利用を有効にし、最大実行時間を設定します。

・設定は以上になります。トレーニングジョブの作成をクリックし、モデル作成を始めましょう。

トレーニングジョブ作成時にエラーが発生した場合

AWS のサービス制限による、エラーの可能性があります。
2019年9月6日時点で、SageMakerのスポットインスタンスについて、制限緩和を行う項目はありません。
SageMakerのスポットインスタンスの制限緩和を行う手順を別途記事にしましたので、以下の記事を参考に制限緩和をお願いします。
SageMakerのスポットインスタンスを利用したモデルトレーニングに関する制限緩和方法について

結果の確認

実行結果は以下の通りでした。

p3.2xlarge のスポットインスタンスは、オンデマンドインスタンスから見たコスト削減割合が70%のため、実行時間288秒に対する請求が、86秒の請求として処理されます。

※東京リージョンの最大コスト削減率は c4 シリーズを利用する際の、75%となります。

おわりに

今回はスポットインスタンスを利用して、SageMakerのモデルトレーニングを行い、実際にどれだけコスト削減できるか確認しました。
モデルトレーニングに重要な時間制限がない場合は、ぜひスポットインスタンスを利用したモデルトレーニングをしてみてください。