やりたいこと
Amazon SageMaker Studioってどんなことができるの?を疑問に、実際に手を動かしてサービスの感触などをつかんでみたい。
参考サイト
SageMaker Studioとは
Amazon SagemakerとAmazon Sagemaker Studioはどのあたりが違うのでしょうか。
上記の参考サイトより:
Amazon SageMaker は、機械学習モデルの構築から
トレーニング〜デプロイまで可能にするマネージド型サービスです。
機械学習を実際におこなっていく上で問題となるインフラ問題やトレーニング、
パラメータの設定やモデルの評価など多くの部分についてやってくれます。
※100%全部やってくれるわけではないし、機械学習に関する知識は必要です
Amazon SageMaker Studioとは、「機械学習のための統合開発環境」です。
Amazon SageMaker Studio はウェブベースのUIを持ち、
機械学習に関連するすべての手順を実行可能です。
モデルの構築、モデルのトレーニング、パラメータの調整やデプロイ、
さらにエンドポイントに作成や推論実行もできます。
これらの作業はすべてAmazon SageMaker StudioのUI上で実行可能です。
詳しくはこちら
やってみる
SageMaker Studioの起動
SageMakerコンソールから「Studio」を選択し、「Create a SageMaker domain」をクリック。Studioの起動には「ドメイン」が必要らしい。
今回はStandartd SetUpを使っていきます。Domain nameを設定し、
IAMロールを作成していきます。ロールに紐づけるS3バケットは事前に作成していたバケット名を指定します。(未作成であればS3コンソールから適当に作成)
ネットワーク部分は、今回はとりあえずインターネットとつなげられるようにPublic-subnetとWebSGを指定してみます。
後はデフォルトで進めていき、最後まで進んだら「Submit」をクリック
無事に作成できました。この画面からStudioを起動できるみたいです。StudioってAppの枠組みになるんですね。
Studioで手を動かしてみる
ひとまず今回用いるコードは上の参考サイト内で公開されていたサンプルコードを使わせていただきます
。
クローンするにはSystem Terminalを選択すればよさそうです。
以下でクローン
$ git clone https://github.com/cH6noota/SageMakerSample.git
無事にクローンして、フォルダ内にファイルも確認できました。このように操作を少し実施しただけでも「統合開発環境」としてのイメージがつきます。
データセット作成
参考サイト内の内容にそって、まずはtrain.ipynb
を実行してみたいと思います。
こちらのファイルを開こうとした際に、以下のようなnotebook環境のセットアップウィンドウがポップアップされました。なるほど、ここでマシンのスペックを決めたりできるんですね。
こんな感じのファイルの中身なので、上から順に素直に実施してみます。
backet_name
を指定しているところだけ、sagemaker-studio-data-01
に変更してみました。
モデルの定義・学習
モデル自体は別ファイルのmain.py
に記載されているみたいです。内容をのぞいてみましょう。
全てはキャプチャーしてませんが、こちらで実施している内容は以下の内容のようです。
今回は、Xceptionで転移学習を行ってます
ノートブックからは、モデルの記述してあるファイル名、入力するパラメータやインスタンスタイプ、フレームワークのバージョンを指定し、fitで学習を行います。
このfitによる学習を実施する部分(上のキャプチャの[69]の部分)にて、以下のようなエラーとなってしまいました。どうやら今回の検証用のStudioではスペックが足りないようです。こちらのLimitを解除するにはAWSサポートからリクエストを送る必要があるとのことでした。(stackoverflow)
続けるか迷いましたが、実際にStudioを起動してみて、「統合開発環境」と言われるゆえんやnotebookなどをネイティブに使えそうな部分が分かったので今回はここまででよしとしようかと思います。
もう少し軽いMLモデルのサンプル、もしくは自分で適当に作ったようなサンプルで今後の検証は実施していこうと思います。
おわりに
このAmazon SageMaker Studioですが、この記事の執筆に際して触れたのはメインのNotebookへの記述の部分でしたが、他にも便利な機能「ExperimentやAutopilot」など豊富にありそうです。少しずつ触れて慣れていきたいと思います。