Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。

Amazon SageMaker Studio Lab でノートブックをバッチジョブとして実行する

最近では、 Amazon SageMakerスタジオ 定期的なスケジュールで実行できるバッチ ジョブとしてノートブックを実行する簡単な方法を開始しました。 AmazonSageMakerStudioラボ もこの機能をサポートしており、SageMaker Studio Lab で開発したノートブックを AWS アカウントで実行できます。 これにより、新しいことを学習したりコードを XNUMX 行変更したりすることなく、より大きなデータセットとより強力なインスタンスを使用して、機械学習 (ML) の実験をすばやくスケーリングできます。

この投稿では、スタジオ ラボ環境を AWS アカウントに接続するための XNUMX 回限りの前提条件について説明します。 その後、Studio Lab からノートブックをバッチ ジョブとして実行する手順について説明します。

ソリューションの概要

Studio Lab には、Studio と同じ拡張機能が組み込まれています。これは、Jupyter オープンソース拡張機能に基づいています。 スケジュールされたノートブック. この拡張機能には、コンピューティング タイプなどの追加の AWS 固有のパラメーターがあります。 Studio Lab では、スケジュールされたノートブックが最初に Amazon シンプル ストレージ サービス (Amazon S3) バケットを AWS アカウントに追加し、選択したコンピューティング タイプでスケジュールされた時間に実行します。 ジョブが完了すると、出力が S3 バケットに書き込まれ、AWS コンピューティングが完全に停止され、進行中のコストが防止されます。

前提条件

Studio Lab ノートブック ジョブを使用するには、接続する AWS アカウントへの管理アクセス (またはこのアクセスを持つ誰かの支援) が必要です。 この投稿の残りの部分では、あなたが AWS 管理者であることを前提としています。そうでない場合は、管理者またはアカウント所有者にこれらの手順を確認するよう依頼してください。

SageMaker 実行ロールを作成する

AWS アカウントに AWS IDおよびアクセス管理 (IAM) SageMaker 実行ロール。 このロールは、アカウント内の SageMaker リソースによって使用され、SageMaker から AWS アカウント内の他のリソースへのアクセスを提供します。 この場合、ノートブック ジョブはこれらのアクセス許可で実行されます。 SageMaker がこのアカウントで以前に使用されていた場合、ロールは既に存在している可能性がありますが、必要なすべての権限が付与されていない可能性があります。 それでは、先に進んで新しいものを作成しましょう。

次の手順は、この AWS アカウントにアクセスする SageMaker Studio Lab 環境の数に関係なく、一度だけ実行する必要があります。

  1. IAMコンソールで、 役割 ナビゲーションペインに表示されます。
  2. 選択する 役割を作成する.
  3. 信頼できるエンティティタイプ選択 AWSサービス.
  4. 他の AWS サービスのユースケース、選択する セージメーカー.
  5. 選択 SageMaker – 実行.
  6. 選択する Next.
  7. 権限を確認し、選択します Next.Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。
  8. ロール名、名前を入力します(この投稿では、 sagemaker-execution-role-notebook-jobs).
  9. 選択する 役割を作成する.
  10. ロールの ARN をメモします。

ロール ARN は次の形式になります。 arn:aws:iam::[account-number]:role/service-role/[role-name] Studio Lab のセットアップに必要です。

IAM ユーザーを作成する

Studio Lab 環境が AWS にアクセスするには、AWS 内に IAM ユーザーを作成し、必要なアクセス許可を付与する必要があります。 次に、そのユーザーのアクセス キーのセットを作成し、スタジオ ラボ環境に提供する必要があります。

このステップは、この AWS アカウントにアクセスする SageMaker Studio Lab 環境ごとに繰り返す必要があります。

管理者と AWS アカウントの所有者は、適切に設計されたセキュリティ プラクティスが可能な限り最大限に守られるようにする必要があることに注意してください。 たとえば、ユーザーのアクセス許可は常に範囲を限定する必要があり、アクセス キーは定期的にローテーションして資格情報の侵害の影響を最小限に抑える必要があります。

このブログでは、 AmazonSageMakerFullAccess 管理ポリシー。 このポリシーは、Amazon SageMaker への広範なアクセスを提供します。これは、必要なものを超える可能性があります。 についての詳細 AmazonSageMakerFullAccess 見つけることができます こちら.

Studio Lab はエンタープライズ セキュリティを採用していますが、Studio Lab のユーザー資格情報は AWS アカウントの一部を形成しないため、たとえば、AWS パスワードまたは MFA ポリシーの対象ではないことに注意してください。

アクセス許可を可能な限り絞り込むために、このアクセス専用のユーザー プロファイルを作成します。

  1. IAMコンソールで、 ユーザー ナビゲーションペインに表示されます。
  2. 選択する ユーザーを追加する.
  3. ユーザー名、名前を入力します。このアカウントを使用する個人に関連付けられた名前を使用することをお勧めします。 これは、監査ログを確認する場合に役立ちます。
  4. AWSアクセスタイプを選択選択 アクセスキー–プログラムによるアクセス.
  5. 選択する 次:パーミッション.Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。
  6. 選択する 既存のポリシーを直接添付.
  7. 検索して選択します AmazonSageMakerFullAccess.Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。
  8. 検索して選択します AmazonEventBridgeFullAccess.Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。
  9. 選択する 次:タグ.
  10. 選択する 次:レビュー.
  11. ポリシーを確認し、選択します ユーザーを作成.Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。ユーザー作成プロセスの最後のページに、ユーザーのアクセス キーが表示されます。 ここに戻ることはできず、これらの詳細が必要になるため、このタブは開いたままにしておきます。
  12. Studio Lab で新しいブラウザー タブを開きます。
  13. ソフトウェア設定ページで、下図のように File メニュー、選択 新しいランチャー、を選択します ターミナル.Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。
  14. コマンド ラインで、次のコードを入力します。
    aws configure

  15. 次のコードを入力します。
    1. IAM コンソール ページからアクセス キー ID とシークレット アクセス キーの値を入力します。
    2. Default region name、 入る us-west-2.
    3. コメントを残す Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure 
      AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: 
      
      (studiolab) studio-lab-user@default:~$

これで、AWS アカウントにアクセスできるように Studio Lab 環境が設定されました。 接続をテストするには、次のコマンドを発行します。

aws sts get-caller-identity

このコマンドは、使用するように構成された IAM ユーザーに関する詳細を返す必要があります。

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

ノートブック ジョブは、Studio Lab 内の Jupyter ノートブックを使用して作成されます。 ノートブックが Studio Lab で実行されている場合は、ノートブック ジョブとして実行できます (より多くのリソースと AWS サービスへのアクセスが必要です)。 ただし、注意すべき点がいくつかあります。

ノートブックを機能させるためにパッケージをインストールした場合は、これらのパッケージをノートブックの上部のセルに読み込むコマンドを追加します。 各行の先頭に & 記号を使用すると、コードがコマンド ラインに送信されて実行されます。 次の例では、最初のセルは pip を使用して PyTorch ライブラリをインストールします。

%%capture
%pip install torch
%pip install torchvision

Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。

ノートブックはトレーニング済みの PyTorch モデルを生成します。 通常のコードでは、モデルを Studio Labs のファイル システムに保存します。

これをノートブック ジョブとして実行する場合、後でアクセスできる場所にモデルを保存する必要があります。 これを行う最も簡単な方法は、モデルを Amazon S3 に保存することです。 モデルを保存するために S3 バケットを作成し、別のコマンド ライン セルを使用してオブジェクトをバケットにコピーします。

Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。 Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。

私たちは、使用 AWSコマンドラインインターフェイス (AWS CLI) ここでオブジェクトをコピーします。 また、 AWS SDK for Python(Boto3) ファイル名のより洗練された、または自動化された制御が必要な場合。 今のところ、ノートブックを実行するたびにファイル名を変更して、モデルが上書きされないようにします。

これで、ノートブック ジョブを作成する準備が整いました。

  1. ノートブック名を選択 (右クリック) してから、 ノートブック ジョブの作成.Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。
    このメニュー オプションがない場合は、スタジオ ラボ環境を更新する必要がある場合があります。 これを行うには、ランチャーからターミナルを開き、次のコードを実行します。
    conda deactivate && conda env remove —name studiolab

  2. 次に、選択して JupyterLab インスタンスを再起動します。 AmazonSageMakerStudioラボ 上のメニューから、 JupyterLab を再起動しますまたは、プロジェクト ページに移動し、ランタイムをシャットダウンして再起動します。
  3. ソフトウェア設定ページで、下図のように ジョブを作成 ページ、 計算タイプで、ジョブに適したコンピューティング タイプを選択します。

    コストを含むさまざまな種類のコンピューティング容量の詳細については、次を参照してください。 Amazon SageMakerの価格 (選ぶ オンデマンド価格 に移動します トレーニング タブ。 また、AWS アカウントのコンピューティング タイプのクォータの可用性を確認する必要がある場合もあります。 サービス クォータの詳細については、次を参照してください。 AWS サービスのクォータ.この例では、3.2 個の vCPU、8 GB のメモリ、Tesla V61 GPU を提供する ml.p100xlarge インスタンスを選択しました。Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。

    このページに警告がない場合は、準備完了です。 警告がある場合は、正しいロール ARN が指定されていることを確認してください 詳細設定について. このロールは、以前に作成した SageMaker 実行ロールの ARN と一致する必要があります。ARN の形式は次のとおりです。 arn:aws:iam::[account-number]:role/service-role/[role-name].

    利用可能な他のオプションがあります 詳細設定について; たとえば、追加のライブラリをインストールする必要なく、必要な構成が既にある特定のイメージとカーネルを選択できます。

  4. このノートブックをスケジュールに従って実行する場合は、 スケジュールに従って実行する ジョブを実行する頻度を指定します。Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。このノートブックを XNUMX 回実行したいので、 今すぐ実行.
  5. 選択する 創造する.
    Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。

ノートブック ジョブ リスト

  ノートブック ジョブ ページには、現在実行中のすべてのジョブと過去に実行されたジョブが一覧表示されます。 このリストは、ランチャーから見つけることができます (選択、 File, 新しいランチャー)、次に選択 ノートブック ジョブ セクションに その他 のセクションから無料でダウンロードできます。

Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。

ノートブック ジョブが完了すると、ステータスが次のように変わります。 Completed (使用 リロード 必要に応じてオプション)。 その後、ダウンロード アイコンを選択して、出力ファイルにアクセスできます。

Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。

ファイルがダウンロードされたら、コード出力と出力ログと共にノートブックを確認できます。 この例では、トレーニング セルの実行時間を計測するコードを追加したため、トレーニング ジョブにかかった時間が 16 分 21 秒であることがわかります。これは、スタジオ ラボ内でコードを実行した場合 (1 時間) よりもはるかに高速です。 、38分55秒)。 実際、ノートブック全体が 1,231 秒 (20 分強) で実行され、コストは 1.30 米ドル (USD) 未満でした。

Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。

W はエポック数を増やし、ハイパーパラメータを調整してモデルの損失値を改善し、別のノートブック ジョブを送信できるようになりました。

まとめ

この投稿では、Studio Lab ノートブック ジョブを使用して、Studio Lab で開発したコードをスケールアウトし、AWS アカウントでより多くのリソースを使用して実行する方法を示しました。

スタジオ ラボ環境に AWS 資格情報を追加することで、ノートブック ジョブにアクセスできるだけでなく、スタジオ ラボ ノートブック内から直接 AWS アカウントから他のリソースにアクセスすることもできます。 AWS SDK for Python を見てみましょう。

Studio Lab のこの追加機能により、達成できるプロジェクトの種類とサイズの制限が解除されます。 この新しい機能を使用して構築したものをお知らせください。


著者について

Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。マイクチェンバーズ AWS の AI および ML の開発者アドボケイトです。 彼は過去 7 年間、ビルダーがクラウド、セキュリティ、および ML を学ぶのを支援してきました。 イギリス出身のマイクは、熱心なお茶好きであり、レゴ ビルダーでもあります。

Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence でノートブックをバッチジョブとして実行します。垂直検索。あい。 ミケーレ・モンクローバ SageMaker チームの AWS のプリンシパル プロダクト マネージャーです。 彼女は生粋のニューヨーカーであり、シリコンバレーのベテランです。 彼女は私たちの生活の質を向上させるイノベーションに情熱を注いでいます。

タイムスタンプ:

より多くの AWS機械学習