[Autopilotも便利すぎ!] Amazon SageMaker Studio 使ってみた – 機械学習 on AWS Advent Calendar 2019

『機械学習 on AWS Advent Calendar 2019』の10日目のエントリです。
2019.12.10

こんにちは、Mr.Moです。

当エントリは『機械学習 on AWS Advent Calendar 2019』の10日目のエントリです。

下記の記事を見てSageMaker Studioに非常に興味が湧いたので、早速使ってみました。 Amazon SageMaker Autopilotの要素が多めの内容になります!

[速報]ついにSageMekerの統合環境が登場!「SageMaker Studio」が発表されました #reinvent

[レポート]AIM214-R1 – 機械学習のための初のIDE、Amazon SageMaker Studioの紹介 #reinvent

さっそく使ってみる

下記のドキュメントを参考に進めていきます。

https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html

使用するデータの確認

下記のノートブックでも扱っている、Bank Marketing Data Setを今回使うデータセットとして利用させていただきましょう。

https://github.com/awslabs/amazon-sagemaker-examples/blob/master/autopilot/sagemaker_autopilot_direct_marketing.ipynb

今回予測のターゲットとなるのは赤枠で囲っている[y列]になります。

import sagemaker
import boto3
from sagemaker import get_execution_role

region = boto3.Session().region_name

session = sagemaker.Session()
bucket = session.default_bucket()
prefix = 'sagemaker/autopilot-dm'

role = get_execution_role()

sm = boto3.Session().client(service_name='sagemaker',region_name=region)

!wget -N https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank-additional.zip
!unzip -o bank-additional.zip

local_data_path = './bank-additional/bank-additional-full.csv'

import pandas as pd

data = pd.read_csv(local_data_path, sep=';')
pd.set_option('display.max_columns', 500)     # Make sure we can see all of the columns
pd.set_option('display.max_rows', 10)         # Keep the output on one page
data

image.png

このデータセットをSageMaker Studioで利用するために、このタイミングでCSVファイルに出力してs3にアップロードしてしまいましょう。

train_file = 'train_data.csv';
train_data.to_csv(train_file, index=False, header=True)
train_data_s3_path = session.upload_data(path=train_file, key_prefix=prefix + "/train")
print('Train data uploaded to: ' + train_data_s3_path)

image.png

Create Experiment

下記の画像のように[サイドメニューの実験マークのアイコン] -> [Create Experimentボタン]から進めていきます。

image.png

  • Experiment Name
    • 任意の名前
  • S3 location of input data
    • トレーニングデータセットの場所(先ほどCSVファイルをアップロードしたs3のパスを指定)
  • Target attribute name
    • ターゲットのカラム名
  • S3 location for output data
    • 結果などの出力先
  • Select the machine learning problem type
  • Do you want to run a complete experiment?
    • Autopilotに全てのワークフロー(トレーニング実行まで)をやってもらうか、そこまでやらずに候補生成ノートブックの提供までにとどめるかを選択できます

上記の設定が終わったら右下の[Create Experimentボタン]を押します。

image.png

そうするとワークフローが開始されます。

image.png

ちなみに先ほどの[Do you want to run a complete experiment?]でNoを選択した場合のワークフローは下記な感じです。

image.png

Analizing Data完了後

データの解析が終わると右上に[Open candidate generation notebook]と[Open data exploration notebook]のボタンが出て来ますね。

image.png

  • Open candidate generation notebook
    • ワークフローで実行されているジョブの詳細情報(各試行の情報、データ前処理ステップなど)が書かれています。この候補生成ノートブックを元にさらに手動での検証ができそうです。右上の[Import notebookボタン]を押すと実行ができる状態のノートブックを開くことも可能です。

image.png

  • Open data exploration notebook
    • Autopilotがデータを解析した時の洞察について情報が記載されています。

image.png

下記の情報も参考にしてみてください。

https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-notebook-output.html

Feature Engineering & Model Tuning

何もしなくてもこの後もワークフローはガンガン進んでいきます。 下記は大量のジョブが自動的に生成され実行されているところです。しばらく待っていると全てのジョブの実行が完了します。

image.png

全てのジョブ実行が完了したら

実行した[Experiment]を右クリック -> [Open in trial component list]を押すと、ジョブ実行で施行したコンポーネントの一覧が表示されます。

image.png

右の方にスクロールしていくとメトリクスなどの情報も記載されていますね。

image.png

下記のように詳細情報画面を開くことも可能です。 メトリクスやハイパーパラメータ、モデルの出力先情報など詳細な情報を見ることができます。

image.png

image.png

モデルのデプロイもここからできるようです。

image.png

Model Monitor機能へ繋げる仕組みも用意されてますね!

image.png

まとめ

Amazon SageMaker Studioだけで各種機能を一元管理できそうなのが良いですね。 今回は少し触ってみたぐらいなのと、まだGAになっていない機能もありますので下記の記事も参考にしながら今後も色々試してみると新たな発見があるかもしれませんね!

[随時更新中]re:Invent2019で発表された今から試せる新サービスまとめ #reinvent #まとめ