SageMaker Studioが東京リージョンで使えるようになりました。 #SageMaker

2020.11.24

せーのでございます。

この度、SageMaker Studioがいよいよ東京リージョンでGAになったのでご紹介いたします。

https://aws.amazon.com/jp/about-aws/whats-new/2020/11/amazon-sagemaker-studio-is-expanded-to-aws-regions-worldwide/

SageMaker Studioとは

SageMaker StudioとはAWSのSageMaker周りの機能を一つの画面から効率的に操作できるようにしたIDE(統合開発環境)のことです。
ブラウザベースなのでOSは問いません。

現在SageMakerは学習したモデルの比較やデプロイ先への最適化など、様々な機能があるのですが、それを一つのIDEから統合的に操作できるのがSageMaker studioです。

使いこなせれば色々楽になりそうです。今回で東京リージョンにお目見えということで、業務などでも使う機会が増えそうです。

ということで、とりあえずサンプルを動かしてみましょう。

動かしてみる

では早速動かしてみましょう。東京リージョンでSageMaker Studioを開きます。

とりあえず何も考えずにクイックスタートで動かしてみます。

VPCも適当にあるもので。

しばらく待つとSageMaker Studioが使える状態になります。「Studioを開く」をクリックしSageMaker Studioを開きます。

ローディング画面を経て

SageMaker Studioが立ち上がりました。

ではせっかくなのでサンプルを少し動かしてみます。FileからNew => Terminalをクリックします。

ターミナルが出てきますので、AWSから提供されているサンプルをダウンロードします。以下のコマンドを叩きます。

git clone https://github.com/awslabs/amazon-sagemaker-examples.git

左パネルよりamazon-sagemaker-examples => aws_sagemaker_studio => getting_started とクリックしていき、サンプルコード「xgboost_customer_churn_studio.ipynb」をダブルクリックするとノートブックが開きます。カーネルの指定パネルが出たら「Python 3 (Data Science)」を選択します。

あとはこれを上から叩いていけば機能を試せるのですが、今回はツアーの通りにSageMaker Experimentsという機能をのぞいてみたいと思います。これは学習の経過や結果をロギングして、複数の学習経過を整理、可視化させて比べる機能です。

まずはSageMaker Experimentsの欄までリンクをクリックしてジャンプします。

その項目より上を全て実行しておきます。Run => Run All Above Selected Cellをクリックします。これで上のブロックが全て実行されます。

次にこのSageMaker Experiments のキモであるExperimentsをCreateします。各ブロックはShiftキー + Enterキーで実行されます。

左ペインにあるビーカーのマークをクリックしてExperimentsができているか確認します。

ハイパーパラメータを設定して、学習を開始します。操作的にはこのブロック2つを実行するだけです。

ポイントは「トライアル」と呼ばれる1学習の結果をロギングする要素をcreateして、学習(fit)時にexperimentsと共に紐付けているところです。

trial = Trial.create(trial_name="algorithm-mode-trial-{}".format(strftime("%Y-%m-%d-%H-%M-%S", gmtime())), 
                     experiment_name=customer_churn_experiment.experiment_name,
                     sagemaker_boto_client=boto3.client('sagemaker'))
xgb.fit({'train': s3_input_train,
         'validation': s3_input_validation}, 
        experiment_config={
            "ExperimentName": customer_churn_experiment.experiment_name, 
            "TrialName": trial.trial_name,
            "TrialComponentDisplayName": "Training",
        }
       )

学習が進むとエラー率がエポックごとに表示されていきます。「Completed - Training job completed」というメッセージが表示されたら完了です。

ロギングしたトライアルを見てみます。左ペインからExperimentsを開き、Traialをダブルクリックします。

[Metrics]を開くと、先程の学習結果がロギングされています。

あとはこのままノートブックを進めていけば複数の実験が紐付いていき、実験結果の比較ができるようになります。

こんな感じでSageMaker Studioを使うと、機械学習を行う時に必要になる機能を簡単に実現できます。

まとめ

ということで、ようやく東京リージョンにやってきたSageMaker Studioをご紹介しました。
SageMakerは高性能なサーバを買わなくても効率的に機械学習が試せるサービスですが、使い勝手が色々あるがゆえに「モデルの精度を上げる」となると色々な仕組みを手で組んでいく必要がありました。SageMaker Studioは機械学習を使えば使うほど欲しくなるIDEですので、ぜひ一度試してみてください。

参考リンク