web-dev-qa-db-ja.com

SageMakerでタスクをスケジュールする方法

毎晩実行したいSageMakerのノートブックを持っています。このタスクをスケジュールするための最良の方法は何ですか。 SageMakerからbashスクリプトを実行してCronジョブをスケジュールする方法はありますか?

6
VicariousAT

Amazon SageMakerは、さまざまな機械学習とデータサイエンスのタスクを支援できるAPIのセットです。これらのAPIは、CLIなどのさまざまなソースから呼び出すことができます [〜#〜] sdk [〜#〜] または特にスケジュールAWS Lambda関数から呼び出すことができます(ドキュメントについてはこちらを参照してください: https: //docs.aws.Amazon.com/lambda/latest/dg/with-scheduled-events.html

Amazon SageMakerの主要部分は、ノートブックインスタンス、トレーニングとチューニングジョブ、およびリアルタイム予測のためのモデルホスティングです。それぞれに、必要になる可能性のあるさまざまなタイプのスケジュールがあります。最も人気のあるものは次のとおりです。

  • ノートブックインスタンスの停止と開始-ノートブックインスタンスはインタラクティブなMLモデルの開発に使用されるため、夜間や週末に実行する必要はありません。 Lambda関数をスケジュールして、営業日の終わり(たとえば、午後8時)に stop-notebook-instance APIを呼び出し、 start-notebook-instance を呼び出すことができます。朝のAPI。ノートブックインスタンスでcrontabを実行することもできることに注意してください(Jupyterインターフェイスからローカルターミナルを開いた後)。
  • MLモデルの更新-常にシステムに流入している新しいデータでのモデルの再トレーニングの自動化は、 SageMakerは簡単に解決できます。スケジュールされたLambda関数から(または既存のモデルのパフォーマンスを監視している CloudWatch Event から) create-training-job APIを呼び出し、S3バケットをポイントします。古いデータと新しいデータが存在し、 更新されたモデルを作成 これを A/Bテスト環境 にデプロイできます。

-----更新(@ snat2100コメントに感謝)-----

  • リアルタイムエンドポイントの作成と削除-リアルタイムエンドポイントが24時間年中無休で必要ない場合(たとえば、平日と営業時間中に働く社内ユーザーにサービスを提供する) 、 エンドポイントを作成 朝、 削除 夜にすることもできます。
15
Guy

Sagemakerでタスクをスケジュールする方法はないと思います。ノートブックは、SageMakerランタイムと対話するためのものです。これは、MLモデルのトレーニングとホスティングに適しています。

私はあなたが毎晩あなたのモデルを再訓練したいと思っていると思います。これを実現するには、モデルを別の場所で再トレーニングしてからS3にアップロードし、外部スクリプトを使用してDockerコンテナーを毎晩再作成する2つの方法があります。または、cronジョブがスケジュールされている独自のDockerコンテナを提供します。それをSageMakerに渡してデプロイします。

3
Raman

AWSコンソールのJupyterページでノートブックターミナルにアクセスできます(右上隅で、[新規]-> [ターミナル]を選択します)。 cronで十分な場合は、そこにあるcrontabで十分かもしれません。

コンテナで実行できる大きくて高価なジョブがある場合は、AWSBatchも検討してください。そこにあなたは例えばすることができます必要なインスタンスにスポット価格を使用してみてください。バッチジョブは、Cloudwatchイベント(cronトリガーなど)によって開始できます。

2
Lauri Laanti