SageMaker ProcessingJobのCLIからのジョブ管理方法 - 弥生開発者ブログ

SageMaker ProcessingJobのCLIからのジョブ管理方法

TL;DR

こんにちは。弥生R&D室の飯田です。R&D室ではSageMakerを使用して機械学習 (ML) のプロジェクトを進めていますが、SageMakerにはProcessingJobというサービスがあり、モデル訓練のような重い処理に適しているため大変便利です。

しかし計算用インスタンス上で実行しているプロセスの管理には直接 pskill を使うことができず、独自のコマンドが必要となるため、よく使うものをこの記事で紹介したいと思います。

実行環境

AWS CLI が動作する環境、および利用するSageMakerのドメインに対応したアクセスキーの設定が必要です。

コマンド集

現在動いているジョブを確認する

ローカルにおける ps に相当するコマンドです。非常によく使います。

aws sagemaker list-processing-jobs --status-equals InProgress

https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-processing-jobs.html#list-processing-jobs

ジョブを作成する

ジョブを作成するためのコマンドです。

実は list-processing-jobs と違い、こちらを使うことは少ないです。

オプションの変数が多すぎるためコマンドラインやシェルスクリプトで管理するのが割と大変で、Pythonラッパーを使って書く方が便利であり、個人としてはそちらをよく使います。

一応、この記事だけでジョブの監視・作成・削除を一通りこなせるようにするために記載します。

aws create-processing-job \
  --processing-job-name $JOB_NAME \
  --processing-resources $RESOURCES \
  --app-specification $APP_SPEC \
  --role-arn $ROLE_ARN

https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-processing-job.html#create-processing-job

不要なジョブを削除する

ローカルにおける kill に相当するコマンドです。こちらも list-processing-jobs との組み合わせでよく使います。

aws sagemaker stop-processing-job --processing-job-name $JOB_NAME

https://docs.aws.amazon.com/cli/latest/reference/sagemaker/stop-processing-job.html#stop-processing-job

まとめ

  • ジョブの確認には list-processing-jobs が便利です
  • ジョブを作るには Pythonラッパー がおすすめです
  • 不要なジョブが生きてたら stop-processing-job でお掃除しましょう

本記事は下記の記事と同じ内容です。 アクセス解析を目的としてマルチポストしています。

qiita.com

また弥生では一緒に働く仲間を募集しています。 ぜひエントリーお待ちしております。

herp.careers