Amazon SageMaker Studio とは?
AWS re:Invent 2019で発表された機械学習のための統合開発環境です。詳しくはこちらでも紹介しています。
早速やってみた
AWSマネジメントコーンソールからSageMakerを開き、SageMaker Studio を起動するをクリックします。SageMaker Studioは米国東部(オハイオ)us-east-2から利用できます。
SSOがサポートされていない場合は「IAM で開始する」をクリックし、
IAMロールを設定、
「送信」をクリックします。
Amazon SageMaker Studio domain ID が作成されるまで待ちます。
「InService」になりました。
ユーザープロファイルを作成します。
作成したユーザープロファイルを選び、「Amazon SageMaker Studioを開く」をクリックすることで、新しいタブで起動します。
「Create a Notebook」でNotebookを新規作成しましょう。
Python 3(Data Science)を選んでください!sagemakerやboto3がインポートできるのはこれだけのようです。
こんな感じで、Notebookを始める準備ができました。
左側のメニューは下記のようになっています。
- ファイルブラウザ
- 起動中のターミナルとカーネル一覧
- Git
- コマンド一覧
- SageMakerの実験一覧
- Notebookのツール
- エンドポイント
- タブ一覧
SageMaker AutoPilot
Amazon SageMaker Studio – Amazon SageMaker AutoPilot (part 1) を参考に試してみました。
1.データセットのダウンロード
1%%sh2wget -N https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank-additional.zip3unzip -o bank-additional.zip1Archive: bank-additional.zip2 creating: bank-additional/3 inflating: bank-additional/.DS_Store 4 creating: __MACOSX/5 creating: __MACOSX/bank-additional/6 inflating: __MACOSX/bank-additional/._.DS_Store 7 inflating: bank-additional/.Rhistory 8 inflating: bank-additional/bank-additional-full.csv 9 inflating: bank-additional/bank-additional-names.txt 10 inflating: bank-additional/bank-additional.csv 11 inflating: __MACOSX/._bank-additional 1213--2019-12-16 05:53:18-- https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank-additional.zip14Resolving archive.ics.uci.edu (archive.ics.uci.edu)... 128.195.10.25215Connecting to archive.ics.uci.edu (archive.ics.uci.edu)|128.195.10.252|:443... connected.16HTTP request sent, awaiting response... 200 OK17Length: 444572 (434K) [application/x-httpd-php]18Saving to: ‘bank-additional.zip’1920 0K .......... .......... .......... .......... .......... 11% 419K 1s21 50K .......... .......... .......... .......... .......... 23% 821K 1s22 100K .......... .......... .......... .......... .......... 34% 44.8M 0s23 150K .......... .......... .......... .......... .......... 46% 838K 0s24 200K .......... .......... .......... .......... .......... 57% 50.7M 0s25 250K .......... .......... .......... .......... .......... 69% 71.1M 0s26 300K .......... .......... .......... .......... .......... 80% 70.8M 0s27 350K .......... .......... .......... .......... .......... 92% 81.1M 0s28 400K .......... .......... .......... .... 100% 580K=0.3s29302019-12-16 05:53:19 (1.40 MB/s) - ‘bank-additional.zip’ saved [444572/444572]2.可視化
1import pandas as pd23data = pd.read_csv('./bank-additional/bank-additional-full.csv', sep=';')4pd.set_option('display.max_columns', 500) # Make sure we can see all of the columns5pd.set_option('display.max_rows', 50) # Keep the output on one page6data[:10] # Show the first 10 lines
3.データセットを学習とテストに分けて保存します。
1import numpy as np23train_data, test_data, _ = np.split(data.sample(frac=1, random_state=123), 4 [int(0.95 * len(data)), int(len(data))]) 56# Save to CSV files78train_data.to_csv('automl-train.csv', index=False, header=True, sep=',') # Need to keep column names9test_data.to_csv('automl-test.csv', index=False, header=True, sep=',')1%%sh23ls -l *.csv1-rw-r--r-- 1 root root 257339 Dec 16 05:53 automl-test.csv2-rw-r--r-- 1 root root 4889516 Dec 16 05:53 automl-train.csv4.データセットをS3へアップロードします。
1import sagemaker23prefix = 'sagemaker/DEMO-automl-dm/input'4sess = sagemaker.Session()56uri = sess.upload_data(path="automl-train.csv", key_prefix=prefix)7print(uri)1s3://sagemaker-us-east-2-xxxxxxxxxxxx/sagemaker/DEMO-automl-dm/input/automl-train.csv5.アップロードしたデータセットのS3のパスをコピーしておき、Experiment Listタブへ移動します。「Create Experiment」をクリックし、各項目を入力します。
| Experiment Name | marketing-automl-demo | 任意 |
| S3 location of input data | s3://sagemaker-us-east-2-xxxxxxxxxxxx/sagemaker/DEMO-automl-dm/input/automl-train.csv | アップロードしたデータセットのS3パス |
| Target attribute name | y | 推論対象 |
| S3 location for output data | s3://sagemaker-us-east-2-xxxxxxxxxxxx/sagemaker/DEMO-automl-dm/output/ | 出力先のS3パス |
| Select the machine learning problem type | Auto | Binary ClassificationだがAutoに任せてみる |
| Do you want to run a complete experiment? | Yes |
「Create Experiment」をクリックし作成します。
1回目はエラーで作れませんでした。JSONエラーも出るようになりました。。。
一回閉じて再起動してやったら、問題なく動いているようです。
まとめ
Amazon SageMaker Studio を導入し、Autopilotを少し動かすところまでやりました。
次回は、Amazon SageMaker Studio – Amazon SageMaker AutoPilot (part 2~4)をやっていきたいと思います!
SageMakerの導入ならナレコムにおまかせください。
日本のAPNコンサルティングパートナーとしては国内初である、Machine Learning コンピテンシー認定のナレコムが導入から活用方法までサポートします。お気軽にご相談ください。