Amazon SageMaker Studio Lab 使ってみた!
こんにちは、宮内です。
11月29日~12月3日に開催されたAWSの一大イベントre:Invent 2021はご覧になりましたでしょうか?
今年も多くのサービスのプレビュー公開やGA、機能のアップデートなど、ホットな情報がたくさんありました!
今回は、re:Invent 2021でプレビュー公開された「Amazon SageMaker Studio Lab」を使ってみたいと思います。
Amazon SageMaker Studio Labとは
Amazon SageMaker Studio Lab(以下、Studio Lab)のコンセプトは
「機械学習を学び、実験できる無料のサービス」
となっています。Studio Labの利用においてはAWSアカウントも必要ありませんので、メールアドレスだけ用意できれば、誰でも無償で使用できるサービスとなっています。公式の紹介ページ(URL)を記載しておきます。
早速、アカウントの作成から始めてみましょう!
アカウント作成手順
アカウントを作成するには以下のURLへアクセスし、アカウント作成のリクエストを送る必要があります。
https://studiolab.sagemaker.aws/requestAccount
【手順①】アカウント作成のリクエストを送る
上のURLへ実際にアクセスすると、アカウント作成に必要な項目を入力するページへ遷移します。
メールアドレスのみ必須入力で、他の項目は入力無しでも問題ありません。
項目名(Enter your …)の後ろに * が付いている項目が必須入力となります。

リクエストを送ると、入力したメールアドレス宛てにリクエスト承認のメールが届きます。
リクエストを送ってから、1~5営業日を目安に承認されるようです。(私は申請の翌日に承認されました)
ちなみに、アカウント承認が行なわれた場合でも、何もせずに7日が過ぎると失効扱いとなりますので、それまでに次のアカウント作成を行いましょう。
【手順②】アカウントを作成する
リクエストが承認されると、アカウント作成用ページのリンクが記載されたメールが送られてきます。
アクセスすると次のようなページが開きます。

こちらの項目は全て必須入力となっています。
パスワードポリシーは、
- 8桁以上
- アルファベットの大文字、小文字、数字、記号( ! @ # $ % ^ & * () <> [] {} | _+-=)の中から3種類以上を含む
となっています。
パスワードを忘れてしまった場合でも、パスワードの再発行は可能です。
【手順③】アカウント作成を承認する
入力後、アカウント作成(Create account)のボタンを押下すると、入力したメールアドレス宛てに登録確認のメールが届きます。

メールに記載のリンクを押下すると、認証が完了します。
認証後からStudio Labへログインできるようになります。
Studio Labへログイン
下記のURLから、Studio Labのログイン画面へ遷移できます。
https://studiolab.sagemaker.aws/login
ログイン画面にて、登録したメールアドレスまたはユーザ名、パスワードを入力してログインします。

ログインすると次のような画面が開きます。
ここからJupyterノートブックを起動することができます。

Jupyterノートブックを起動する際には、CPUかGPUを選択します。
基本的にはCPUで問題無いと思いますが、TensorFlowといったパッケージではGPUを要求されることがありますので、使い分けが必要になりそうです。
とりあえず、CPUを選択して「Start runtime」をクリックしましょう。
クリックするとJupyterノートブックの起動が開始します。30秒ほどで完了します。

完了すると、ステータスが起動状態(Running)となります。
Jupyterノートブックの使用時間には制限が設けられており、CPUは12時間、GPUは4時間となっています。時間を過ぎると自動的にセッションが切断されますが、作業状況は保存されていますので、再起動することで作業を続きから始めることができます。
それでは、「Open project」のボタンがクリックして、Jupyterノートブックへアクセスしましょう!

アクセスすると、スタートページが開きます。(2回目以降は、最後に開いていたノートブックが開きます)
JupyterノートブックはMarkdown形式でテキストを記載したり、Pythonのプログラムコードを記載して実行することができます。ファイルは自由に作成できますが、ユーザ毎に15GBの永続ストレージが用意されているとのことなので、無制限に作ることは出来ないと思われます。
ちなみに、記事作成時点でPythonのバージョンは3.9でした。

また、Gitのソースを連携することもできるようです。
機械学習に関連したソースをクローンして、実行してみるのも面白そうですね。

少しだけお試し
私が入社1年目の時に作成した、手書き数字認識の機械学習モデルをStudio Labで動かせるか試してみました。
このモデルでは、KerasというTensorFlow上で動く深層学習用のモジュールの他、数値計算用モジュールであるNumpy、学習結果のグラフを表示するためのMatplotlibを使用します。
今度は、GPUを選択してJupyterノートブックを起動します。
pipコマンドによるモジュールのインストール
pipコマンドは制限されていないか心配でしたが、モジュールのインストールができるか試したところ、正常にコマンドが実行できました!
(下の画像はインストールコマンドを実行した2回目の結果のため、既にインストール済みであることがログに出ています)

MNISTデータセットの利用
手書き数字認識ではおなじみのMNISTデータセットは標準で使用できました。
インポートするだけで使えるのはありがたいですね。

機械学習モデルのビルド、及びコンパイルと結果の確認
モデルのビルドやコンパイルも問題無くできました。

結果も見ることができたので、問題なしですね!

ちなみに、作成したモデルや重みパラメータをファイル出力することもできました!
これでモデルの再利用も簡単にできるので、かなり使いやすいですね。

さいごに
今回は、SageMaker Studio Labを使ってみました。
自前でPythonによる機械学習の開発環境を作ろうとすると手間がかかりますが、Studio LabはAWSアカウントが不要、かつ無料で使用できるので、これから機械学習を学ぼうと思っている方には特にオススメできるサービスです。
個人的な所感ですが、Studio Labを使用する上での注意点として、
- 使用用途が学習と実験に限られている。(本番環境としての利用は禁止)
- 使用できるCPU、GPUに制限がある。(非常に高いパフォーマンスを要する機械学習は難しいかもしれない)
- ログインのセッションが5分程で切れてしまう。(ただし、Jupyterノートブックは起動状態のまま)
の3つがあると思いました。
英語のサイトになりますが、Studio LabのFAQページがありますので、こちらもご覧ください。
https://studiolab.sagemaker.aws/faq
Studio Labで色々とお試しして、SageMaker Studioも本格的に使ってみたいと思います!