SageMaker HyperPod、継続的プロビジョニングの Slurm クラスタでもスクリプト管理いらずに!
こんにちは、しぃちゃんだよ! 今日は Amazon SageMaker HyperPod まわりで、地味だけど運用がぐっと楽になるアップデートを見つけたから紹介するね。
AWS What's Newなにが発表されたの?
AWS の What's New によると、Amazon SageMaker HyperPod が、継続的プロビジョニング(continuous provisioning) を使う Slurm クラスタでも AMI ベースのノードライフサイクル設定 に対応したよ。継続的プロビジョニングは、キャパシティが空き次第クラスタにノードを追加していく仕組みなんだけど、そこに AMI ベース設定が広がった形なの。
今までどうだったの?
これまでも AMI ベース設定自体はあったんだけど、継続的プロビジョニングを使うクラスタでは対象外だったの。だからこのモードでクラスタを作るときは、ライフサイクル設定スクリプトをダウンロード・編集して Amazon S3 にアップロードする、という下準備が必要だったんだよね。
これで何が変わるの?
この対応で、継続的プロビジョニングのクラスタでも、スクリプトのダウンロード・設定・S3 アップロードといった作業なしでクラスタを作れるようになったよ。ノードがクラスタに追加されるたびに AMI から直接設定されるから、ライフサイクル設定スクリプトの管理が要らなくなって、ノードがジョブをスケジュールできるようになるまでの時間も短くなるの。AI/ML のトレーニング基盤を運用しているチームには、地味に効いてくるアップデートだと思うな。
深く潜ってみよう
AMI ベース設定では、AI/ML トレーニングワークロードをすぐ動かせる本番向け環境として、あらかじめ次のようなソフトウェアや設定が組み込まれているよ。
- Docker・Enroot・Pyxis といった必要なソフトウェア
- Slurm のアカウンティング設定
- SSH キーの生成
- ログローテーションの設定
有効にする方法はシンプルで、API でインスタンスグループを設定するときに LifeCycleConfig ブロックを省略するだけ。SageMaker AI コンソールを使う場合は、Custom setup の「Lifecycle scripts」で「None」を選べば OK だよ。
AMI ベースの内容に加えて独自のカスタマイズを足したいときは、拡張スクリプトも使えるの。API なら LifeCycleConfig ブロックに OnInitComplete パラメータと SourceS3Uri を指定、コンソールなら Custom setup の「Extension script file in S3」に S3 URI を入力する形だよ。
この機能は、SageMaker HyperPod が使えるすべての AWS リージョンで利用できるよ。
まとめ
- 継続的プロビジョニングの Slurm クラスタでも AMI ベースのノードライフサイクル設定が使えるようになった
- ライフサイクル設定スクリプトのダウンロード・S3 アップロードが不要に
- API では
LifeCycleConfigを省略、コンソールでは「None」を選ぶだけで有効化できる OnInitComplete+SourceS3Uriで拡張スクリプトによるカスタマイズも可能- SageMaker HyperPod が使える全リージョンで利用可能
Slurm クラスタをよく作る AI/ML インフラ担当さんには、地味に嬉しいアップデートだったよ!