自分のキャリアをあれこれ考えながら、Pythonで様々なデータを分析していくブログです

無料でGPU環境を使えるAmazon SageMaker Studio Labに登録してみた

Data Analytics
Data Analytics

今回はAmazon SageMaker Studio Labというサービスを使ってみようと思います。

CPU環境とGPU環境の両方が無料で使えてしまうサービスで、GoogleのColaboratoryと似たサービスのようです。

登録してから使えるようになるまで最大5営業日かかる場合があるようです (私は2営業日かかりました)。セミナーや勉強会などで利用する場合は余裕をもって登録しておくことをおすすめいたします。

※ 22/11/23 d2l環境の削除方法を追記
※ 22/11/25 GPU runtimeは24時間のうち最大8時間(4時間x2)のセッションに制限されているようです。

GPU runtime is limited to 4 hours per session and a total of 8 hours in a 24-hour period.

※ 23/4/11 GPU runtimeについて詳しく調べた記事へのリンクを追記

※ 23/9/13 CPUもGPUも利用時間がさらに制限されたようです。

利用が増えたからでしょうか?12時間ずつ利用可能だったCPUは4時間ずつ最大8時間/dayになり、GPUは4時間ずつ最大8時間/day利用可能だったのが、最大4時間/dayに変更になったようです。

CPU and GPU runtime limits have changed.
You can use CPU for up to 4 hours at a time with a limit of 8 hours in a 24-hour period.
You can use GPU for up to 4 hours at a time with a limit of 4 hours in a 24-hour period.

スポンサーリンク

Amazon SageMaker Studio Labとは?

サービスの特徴をまとめると下記になります。

・15GBのストレージが使える
・12時間のCPUセッションか4時間のGPUセッションが使える
・各セッションが終わったら、途中作業は自動的にストレージに保存される
・セッションは何回でも始めることができる
・メールアドレスだけの登録で利用可能 (ただしGPUの利用は電話番号の登録が必要)
・Pip、Conda、Mambaのいずれかのパッケージマネージャーの利用が可能

Amazon SageMaker Studio Lab は、無料の機械学習 (ML) 開発環境であり、コンピューティング、ストレージ (最大 15 GB)、セキュリティをすべて無料で提供し、誰でも ML を学んで実験できます。

SageMaker Studio Lab はプロジェクトに CPU または GPU セッションのどちらかを提供します。複雑なアルゴリズムの場合は 12 時間の CPU セッションで、畳み込みニューラルネットワーク (CNN) や循環ニューラルネットワーク (RNN) のような深層学習 (DL) のアーキテクチャーの場合は 4 時間の GPU セッションでノートブックを実行することを選択できます。コンピューティングの回数に制限はありません。1 つのセッションが終わった後、新しいセッションを始められます。
引用: https://aws.amazon.com/jp/sagemaker/studio-lab/

SageMaker Studio Lab requires customers associate their mobile phone number with their account as additional form of identification in order to get GPU resources.
引用: https://studiolab.sagemaker.aws/faq

スポンサーリンク

Amazon SageMaker Studio Labの登録方法

ステップバイステップでまとめましたので、上から順に進めれば使い始めることが出来るかと思います。

https://aws.amazon.com/jp/sagemaker/studio-lab/ にアクセス

amazon SageMaker Studio Labのトップ画面

「Request free account」リンクを押下し、SageMaker Studio Labのアカウントをリクエストする。

リクエストボタン

フォームに必要情報を入力。E-Mailだけ必須のようです。

登録フォームの画面

登録したメールアドレスに認証用のメールが届くので、Verify your email ボタンを押下

認証メール

「Verify your email」ボタン押下後に下記メッセージが表示される。

アカウントリクエストが承認されるまでお待ちくださいという内容です。

Verify your emailボタン押下後の画面

アカウントリクエストを承ったとメールが届きます。アカウント作成が可能になるまで数日待ちます。(私は2営業日待ちました)

Account request confirmed email

5営業日以内にAccount request approvedというタイトルのメールが届きます。

「Create Account」ボタンを押下し、アカウント作成に進みます。

Account request approved email

アカウントを作成します。

必須項目を入力して、「Create account」ボタンを押下

sagemaker studio labのアカウント作成画面

アカウント作業で入力したメールアドレスの確認

create accountボタン押下後の画面

確認メールが届くので、verify your emailボタンを押下する

これで登録は完了しました。あとはログインして使うだけです。

verify your emailメール

スポンサーリンク

Amazon Sagemaker Studio Labを使ってみる

登録が完了したら、sagemaker studio labが使えるようになったはずです。

さっそく動作確認してみましょう

amazon SageMaker Studio Labにアクセスしログインする

https://studiolab.sagemaker.aws/login にアクセスしログインします。

メールアドレスとパスワードは自分で設定したものを使います。

ログイン画面

Compute Typeを選択し、 Start Runtimeボタンを押下

CPU環境かGPU環境かを選んで、Start Runtimeを押下します。

My Project画面

CPUを選んだ場合

CPU+Start runtime押下後の画面

Open Projectを押すとJupyterlabの画面に遷移します。

GPUを選んだ場合、電話番号の入力が必要

+81から始まる国旗アイコンに変更し、ご自分の電話番号(090xxxxxxや080xxxxxxxx)を入力します。最初の0は含んでもいいようです。(国際電話とかだと外したりしますよね)

GPU+Start runtime押下後の画面 (初回)

ショートメッセージに6桁の暗証番号のようなものが届きますので入力します。

電話番号認証の画面

電話番号認証後の画面

My Project画面

「Open Project」ボタンを押下するとJupyterlabが使えます。次のセクションでGPU環境なのかnvidia-smiコマンドで確かめてみます。

さっそくGPUが使えるかの確認

!nvidia-smi
Out[0]
Thu Nov 17 11:37:47 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            Off  | 00000000:00:1E.0 Off |                    0 |
| N/A   34C    P0    26W /  70W |      0MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

疑っていたわけではないですが、ちゃんとGPUが使えるようです。

Tesla T4が使えて、CUDAのバージョンは11.4までサポートされているようです。(※ ただし、Tesla T4はデータセンターGPUで前方互換があるのでaptが利用可能であれば11.5以降もインストールは可能かと思います。)

nvidia-smiコマンドが実行できない場合はCPU環境になっているかも知れないのでご確認ください。

↓ SageMaker Studio LabのGPU環境については下記でもう少し詳しく確認してみました。

Amazon Sagemaker Studio Lab (GPU runtime)の各種情報を確認
本記事の内容はすべて、2022年11月時点の情報です。日々進化しているサービスなので情報が古い可能性がありますが、気づいた時になるべく注意書き追加か記事の更新しようと思います。まだSagemaker Studio Labへの登録が完了してい...

Getting Started.ipynbを確認

sagemaker-studiolab-notebooksフォルダが最初から存在するので、中身をみてみると、Getting Started.ipynbがあるので中身を見てみました。

ディープラーニングの勉強ができるDive into Deep Learning (D2L)という項目が気になりました。

Dive Into Deep Learning (D2L)とはjupyter notebookでコードを実行しながらディープラーニングの勉強ができる教材のようです。世界60カ国の400大学でも利用されているようです。

D2L represents our attempt to make deep learning approachable, teaching you the concepts, the context, and the code. The entire book is drafted in Jupyter notebooks, seamlessly integrating exposition figures, math, and interactive examples with self-contained code.
引用: Getting Started.ipynb

Adopted at 400 universities from 60 countries
引用: https://d2l.ai/index.html

Dive into Deep Learning (D2L)をsagemaker studio labで使えるようにする

Getting Started.ipynbからDive into Deep Learningの環境を簡単にデプロイできるようなのでやってみました。

  1. Clone D2L Notebooksボタンをクリック
Getting Started.ipynbを確認中の画面

  1. そのままCloneをクリック

GUIでgit pullしてくれるようです。便利ですね。

「Clone D2L Notebooks」ボタン押下後

  1. Okをクリック

D2LのプロジェクトのCloneが完了したら、勉強用のconda環境を自動的に構築してくれるようです。

cloneボタン押下後

  1. Okを押すとd2l用のconda環境作成が始まります。
d2l用のライブラリをインストールする
(studiolab) studio-lab-user@default:~$ cd sagemaker-studiolab-notebooks/d2l-pytorch-sagemaker-studio-lab && conda env create -f environment.yml
Out[0]
Collecting package metadata (repodata.json): done
Solving environment: done
・・・省略・・・
Successfully installed Send2Trash-1.8.0 anyio-3.6.2 argon2-cffi-21.3.0 argon2-cffi-bindings-21.2.0 asttokens-2.1.0 attrs-22.1.0 backcall-0.2.0 beautifulsoup4-4.11.1 bleach-5.0.1 certifi-2022.9.24 cffi-1.15.1 charset-normalizer-2.1.1 contourpy-1.0.6 cycler-0.11.0 d2l-0.17.0 debugpy-1.6.3 decorator-5.1.1 defusedxml-0.7.1 entrypoints-0.4 executing-1.2.0 fastjsonschema-2.16.2 fonttools-4.38.0 idna-3.4 importlib-metadata-5.0.0 ipykernel-6.17.1 ipython-8.6.0 ipython-genutils-0.2.0 ipywidgets-8.0.2 jedi-0.18.1 jinja2-3.1.2 jsonschema-4.17.0 jupyter-1.0.0 jupyter-client-7.4.6 jupyter-console-6.4.4 jupyter-core-5.0.0 jupyter-server-1.23.2 jupyterlab-pygments-0.2.2 jupyterlab-widgets-3.0.3 kiwisolver-1.4.4 markupsafe-2.1.1 matplotlib-3.6.2 matplotlib-inline-0.1.6 mistune-2.0.4 nbclassic-0.4.8 nbclient-0.7.0 nbconvert-7.2.5 nbformat-5.7.0 nest-asyncio-1.5.6 notebook-6.5.2 notebook-shim-0.2.2 numpy-1.23.4 packaging-21.3 pandas-1.5.1 pandocfilters-1.5.0 parso-0.8.3 pexpect-4.8.0 pickleshare-0.7.5 pillow-9.3.0 platformdirs-2.5.4 prometheus-client-0.15.0 prompt-toolkit-3.0.32 psutil-5.9.4 ptyprocess-0.7.0 pure-eval-0.2.2 pycparser-2.21 pygments-2.13.0 pyparsing-3.0.9 pyrsistent-0.19.2 python-dateutil-2.8.2 pytz-2022.6 pyzmq-24.0.1 qtconsole-5.4.0 qtpy-2.3.0 requests-2.28.1 six-1.16.0 sniffio-1.3.0 soupsieve-2.3.2.post1 stack-data-0.6.1 terminado-0.17.0 tinycss2-1.2.1 torch-1.8.1 torchvision-0.9.1 tornado-6.2 traitlets-5.5.0 typing-extensions-4.4.0 urllib3-1.26.12 wcwidth-0.2.5 webencodings-0.5.1 websocket-client-1.4.2 widgetsnbextension-4.0.3 zipp-3.10.0
  1. 追加されたカーネルの確認
d2l:pythonというカーネルが使えるようになりました

d2l環境を消して元の状態に戻したい場合

How do I reset Amazon Sagemaker Studio Lab & wipe all data を参考にしました

condaのd2l環境を消去する
studiolab) studio-lab-user@default:~/.conda$ conda remove --name d2l --all
Out[0]

Remove all packages in environment /home/studio-lab-user/.conda/envs/d2l:

## Package Plan ##

  environment location: /home/studio-lab-user/.conda/envs/d2l

The following packages will be REMOVED:

  _libgcc_mutex-0.1-conda_forge
  _openmp_mutex-4.5-2_gnu
  bzip2-1.0.8-h7f98852_4
  ca-certificates-2022.9.24-ha878542_0
  ld_impl_linux-64-2.39-hc81fddc_0
  libffi-3.4.2-h7f98852_5
  libgcc-ng-12.2.0-h65d4601_19
  libgomp-12.2.0-h65d4601_19
  libnsl-2.0.0-h7f98852_0
  libsqlite-3.39.4-h753d276_0
  libuuid-2.32.1-h7f98852_1000
  libzlib-1.2.13-h166bdaf_4
  ncurses-6.3-h27087fc_1
  openssl-3.0.7-h166bdaf_0
  pip-22.3.1-pyhd8ed1ab_0
  python-3.9.13-h2660328_0_cpython
  readline-8.1.2-h0f457ee_0
  setuptools-65.5.1-pyhd8ed1ab_0
  sqlite-3.39.4-h4ff8645_0
  tk-8.6.12-h27826a3_0
  tzdata-2022f-h191b570_0
  wheel-0.38.4-pyhd8ed1ab_0
  xz-5.2.6-h166bdaf_0

Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

d2lのconda環境を削除しました。

あとはgit cloneしたd2lの資材を消去すれば初期状態に戻るはずです。

rm -rf /home/studio-lab-user/sagemaker-studiolab-notebooks/d2l-pytorch-sagemaker-studio-lab/
スポンサーリンク

まとめ

いかがでしょうか?GPUが使える時間が4時間ずつと決まっているのでColabより分かりやすいのかなと思います。

良サービスの予感がします!

タイトルとURLをコピーしました