[Autopilotも便利すぎ!] Amazon SageMaker Studio 使ってみた – 機械学習 on AWS Advent Calendar 2019
こんにちは、Mr.Moです。
当エントリは『機械学習 on AWS Advent Calendar 2019』の10日目のエントリです。
- クラスメソッド 機械学習 on AWS Advent Calendar 2019 - Qiita
- クラスメソッド 機械学習 on AWS Advent Calendar 2019 | シリーズ | Developers.IO
下記の記事を見て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を今回使うデータセットとして利用させていただきましょう。
今回予測のターゲットとなるのは赤枠で囲っている[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
このデータセットを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)
Create Experiment
下記の画像のように[サイドメニューの実験マークのアイコン] -> [Create Experimentボタン]から進めていきます。
- Experiment Name
- 任意の名前
- S3 location of input data
- トレーニングデータセットの場所(先ほどCSVファイルをアップロードしたs3のパスを指定)
- Target attribute name
- ターゲットのカラム名
- S3 location for output data
- 結果などの出力先
- Select the machine learning problem type
- Autoを選択するとAutopilotがデータを見て下記のアルゴリズムの種類の中から自動で判別するようです。
- https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-problem-types.html
- Do you want to run a complete experiment?
- Autopilotに全てのワークフロー(トレーニング実行まで)をやってもらうか、そこまでやらずに候補生成ノートブックの提供までにとどめるかを選択できます
上記の設定が終わったら右下の[Create Experimentボタン]を押します。
そうするとワークフローが開始されます。
ちなみに先ほどの[Do you want to run a complete experiment?]でNoを選択した場合のワークフローは下記な感じです。
Analizing Data完了後
データの解析が終わると右上に[Open candidate generation notebook]と[Open data exploration notebook]のボタンが出て来ますね。
- Open candidate generation notebook
- ワークフローで実行されているジョブの詳細情報(各試行の情報、データ前処理ステップなど)が書かれています。この候補生成ノートブックを元にさらに手動での検証ができそうです。右上の[Import notebookボタン]を押すと実行ができる状態のノートブックを開くことも可能です。
- Open data exploration notebook
- Autopilotがデータを解析した時の洞察について情報が記載されています。
下記の情報も参考にしてみてください。
Feature Engineering & Model Tuning
何もしなくてもこの後もワークフローはガンガン進んでいきます。 下記は大量のジョブが自動的に生成され実行されているところです。しばらく待っていると全てのジョブの実行が完了します。
全てのジョブ実行が完了したら
実行した[Experiment]を右クリック -> [Open in trial component list]を押すと、ジョブ実行で施行したコンポーネントの一覧が表示されます。
右の方にスクロールしていくとメトリクスなどの情報も記載されていますね。
下記のように詳細情報画面を開くことも可能です。 メトリクスやハイパーパラメータ、モデルの出力先情報など詳細な情報を見ることができます。
モデルのデプロイもここからできるようです。
Model Monitor機能へ繋げる仕組みも用意されてますね!
まとめ
Amazon SageMaker Studioだけで各種機能を一元管理できそうなのが良いですね。 今回は少し触ってみたぐらいなのと、まだGAになっていない機能もありますので下記の記事も参考にしながら今後も色々試してみると新たな発見があるかもしれませんね!