Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

Amazon SageMaker Studio ノートブックをスケジュールされたノートブック ジョブとして運用可能にする

Amazon SageMakerスタジオ は、データ サイエンティストが機械学習 (ML) モデルをインタラクティブに構築、トレーニング、デプロイするためのフル マネージド ソリューションを提供します。 インタラクティブな ML エクスペリエンスに加えて、データ ワーカーは、コードを Python モジュールとしてリファクタリングしたり、デプロイ インフラストラクチャを自動化するための DevOps ツールやベスト プラクティスを学習したりする必要なく、ノートブックをエフェメラル ジョブとして実行するソリューションも求めています。 これを行うための一般的な使用例には、次のものがあります。

  • モデル推論を定期的に実行してレポートを生成する
  • 小さなインスタンスのデータのサブセットに対して Studio でテストした後、機能エンジニアリング ステップをスケールアップする
  • 一定のリズムでモデルを再トレーニングしてデプロイする
  • チームの分析 アマゾンセージメーカー 通常のケイデンスでの使用

以前は、データ サイエンティストがノートブック上でインタラクティブに構築したコードを取得し、バッチ ジョブとして実行したいと考えていたとき、データ サイエンティストは、 AmazonSageMakerパイプライン, AWSラムダ, アマゾンイベントブリッジまたは 他の解決策 セットアップ、使用、および管理が困難です。

SageMaker ノートブックのジョブ、SageMaker Studio または SageMaker スタジオラボ インターフェース。 これらのノートブックは、スケジュールに従って、またはすぐに実行できます。 エンドユーザーが既存のノートブック コードを変更する必要はありません。 ジョブが完了すると、データが取り込まれたノートブック セルが視覚化されて表示されます。

この投稿では、SageMaker Studio ノートブックをスケジュールされたノートブック ジョブとして運用する方法を共有します。

ソリューションの概要

次の図は、ソリューション アーキテクチャを示しています。 プレインストールされた SageMaker 拡張機能を利用して、ノートブックをジョブとしてすぐに、またはスケジュールに従って実行します。

次のセクションでは、ノートブックの作成、セルのパラメーター化、追加オプションのカスタマイズ、およびジョブのスケジュール設定の手順について説明します。 サンプルの使用例も含まれています。

前提条件

SageMaker ノートブックジョブを使用するには、Studio 内で JupyterLab 3 JupyterServer アプリを実行する必要があります。 JupyterLab 3 にアップグレードする方法の詳細については、次を参照してください。 コンソールからアプリの JupyterLab バージョンを表示および更新する。 必ず SageMaker Studio をシャットダウンして更新する 最新のアップデートを取得するため。

スケジュールに従ってノートブックを実行するジョブ定義を定義するには、SageMaker 実行ロールに追加のアクセス許可を追加する必要がある場合があります。

まず、許可する SageMaker 実行ロールに信頼関係を追加します。 events.amazonaws.com あなたの役割を引き受けます:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sagemaker.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

さらに、インライン ポリシーを作成して実行ロールにアタッチする必要がある場合があります。 以下のポリシーは、非常に寛容なポリシーを補足するものです AmazonSageMakerFullAccess ポリシー。 完全かつ最小限のアクセス許可のセットについては、次を参照してください。 ポリシーと権限をインストールする.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "events:TagResource",
                "events:DeleteRule",
                "events:PutTargets",
                "events:DescribeRule",
                "events:PutRule",
                "events:RemoveTargets",
                "events:DisableRule",
                "events:EnableRule"
            ],
            "Resource": "*",
            "Condition": {
              "StringEquals": {
                "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
              }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "events.amazonaws.com"
                }
            }
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "sagemaker:ListTags",
            "Resource": "arn:aws:sagemaker:*:*:user-profile/*/*"
        }
    ]
}

ノートブック ジョブを作成する

ノートブックを SageMaker ノートブック ジョブとして運用するには、 ノートブック ジョブを作成する のアイコンをクリックします。

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

または、ファイル システムでノートブックを選択 (右クリック) して、 ノートブック ジョブの作成.

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

ジョブを作成 セクションでは、ワークロードに基づいて、スケジュールされたジョブに適切なインスタンス タイプを選択するだけです: 標準インスタンス、コンピューティング最適化インスタンス、または GPU を含む高速コンピューティング インスタンス。 SageMaker トレーニングジョブで利用可能な任意のインスタンスを選択できます。 使用可能なインスタンスの完全なリストについては、次を参照してください。 Amazon SageMakerの価格.

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

ジョブが完了すると、入力されたセルを含む出力ノートブック ファイルと、ジョブの実行からの基になるログを表示できます。

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

セルのパラメータ化

ノートブックを実稼働ワークフローに移行する場合、モジュール性のために異なるパラメーター セットを使用して同じノートブックを再利用できることが重要です。 たとえば、データセットの場所またはモデルのハイパーパラメーターをパラメーター化して、同じノートブックを多くの異なるモデル トレーニングに再利用できるようにすることができます。 SageMaker ノートブック ジョブは、セル タグを通じてこれをサポートします。 右側のペインで二重歯車のアイコンを選択し、 タグ付けする. 次に、タグにパラメーターとしてラベルを付けます。

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

既定では、ノートブック ジョブの実行はノートブックで指定されたパラメーター値を使用しますが、代わりに、ノートブック ジョブの構成としてこれらを変更することもできます。

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

追加オプションの構成

ノートブック ジョブを作成するときに、 詳細設定について ジョブ定義をカスタマイズするためのセクション。 Studio は、ノートブックで使用しているイメージまたはカーネルを自動的に検出し、事前に選択します。 この選択を検証したことを確認してください。

環境変数または起動スクリプトを指定して、ノートブックの実行環境をカスタマイズすることもできます。 構成の完全なリストについては、次を参照してください。 追加オプション.

ジョブをスケジュールする

ジョブをスケジュールするには、 スケジュールに従って実行する 適切な間隔と時間を設定します。 次に、 ノートブック ジョブ ホームアイコンを選択した後に表示されるタブ。 ノートブックがロードされたら、 ノートブック ジョブの定義 タブを使用して、スケジュールを一時停止または削除します。

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

ユースケースの例

この例では、グラウンド トゥルース ソースからデータを準備し、その期間から更新されたモデルをトレーニングし、最新のデータに対して推論を実行して実用的な洞察を生成するエンド ツー エンドの ML ワークフローを紹介します。 実際には、完全なエンド ツー エンドのワークフローを実行することも、ワークフローの XNUMX つのステップを単に運用化することもできます。 スケジュールすることができます AWSグルー インタラクティブセッション 毎日のデータ準備のために、または出力ノートブックで直接グラフィカルな結果を生成するバッチ推論ジョブを実行します。

この例の完全なノートブックは、 SageMaker サンプル GitHub リポジトリ。 このユース ケースでは、利用可能な最新のデータを使用してトレーニングされたモデルに基づいて、顧客離れの可能性を予測するノートブックをスケジュールしようとしている電気通信会社を想定しています。

まず、利用可能な最新の顧客データを収集し、前処理を実行します。

import pandas as pd
from synthetic_data import generate_data

previous_two_weeks_data = generate_data(5000, label_known=True)
todays_data = generate_data(300, label_known=False)

processed_prior_data = process_data(previous_two_weeks_data, label_known=True)
processed_todays_data = process_data(todays_data, label_known=False)

正確な予測を行うために、この更新されたトレーニング データで更新されたモデルをトレーニングします。 todays_data:

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import f1_score, confusion_matrix, ConfusionMatrixDisplay

y = np.ravel(processed_prior_data[["Churn"]])
x = processed_prior_data.drop(["Churn"], axis=1)

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)

clf = RandomForestClassifier(n_estimators=int(number_rf_estimators), criterion="gini")
clf.fit(x_train, y_train)

このノートブックを日次レポートとしてスケジュールする予定であるため、更新されたモデルが検証セットでどの程度うまく機能したかを把握して、将来の予測に自信を持てるようにする必要があります。 次のスクリーンショットの結果は、スケジュールされた推論レポートからのものです。

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

最後に、今日のデータの予測結果をデータベースに取り込み、このモデルの結果に基づいてアクションを実行できるようにします。

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。

ノートブックを理解したら、これを一時的なジョブとして自由に実行してください。 今すぐ実行 前述のオプションを選択するか、スケジューリング機能をテストしてください。

クリーンアップ

この例に従った場合は、ノートブック ジョブのスケジュールを一時停止または削除して、継続的な料金が発生しないようにしてください。

まとめ

SageMaker ノートブック ジョブを使用してノートブックを本番環境に移行すると、データ ワーカーが必要とする差別化されていない重労働が大幅に簡素化されます。 エンドツーエンドの ML ワークフローをスケジュールする場合でも、パズルのピースをスケジュールする場合でも、SageMaker Studio または SageMaker Studio Lab を使用していくつかのノートブックを本番環境に配置することをお勧めします! 詳細については、次を参照してください。 ノートブック ベースのワークフロー.


著者について

ショーン・モーガンショーン・モーガン AWS のシニア ML ソリューション アーキテクトです。 彼は半導体および学術研究分野での経験があり、その経験を利用して、お客様が AWS で目標を達成できるよう支援しています。 余暇には、アクティブなオープン ソースのコントリビューター/メンテナーとして活動し、TensorFlow アドオンの特別利益団体のリーダーを務めています。

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。スメダ・スワミー アマゾン ウェブ サービスのプリンシパル プロダクト マネージャーです。 彼は SageMaker Studio チームを率いて、インタラクティブなデータ サイエンスとデータ エンジニアリングのワークフローに最適な IDE に SageMaker Studio を組み込んでいます。 彼は過去 15 年間、機械学習を使用して、顧客志向の消費者および企業向け製品を構築してきました。 余暇には、アメリカ南西部の驚くべき地質を撮影するのが好きです。

Amazon SageMaker Studio ノートブックを、スケジュールされたノートブック ジョブ PlatoBlockchain Data Intelligence として運用します。垂直検索。あい。エドワードサン アマゾン ウェブ サービスの SageMaker Studio で働くシニア SDE です。 彼は、インタラクティブな ML ソリューションを構築し、カスタマー エクスペリエンスを簡素化して、SageMaker Studio をデータ エンジニアリングおよび ML エコシステムの一般的なテクノロジーと統合することに重点を置いています。 余暇には、エドワードはキャンプ、ハイキング、釣りの大ファンで、家族と過ごす時間を楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習