SageMaker Studio Labを触ってみたら使い勝手が良かった
先日開催されたAWS re:Invent 2021で発表されたSageMaker Studio Lab、なんとなく触っている内にGoogle Colabよりも個人的には使いやすいんじゃないかって思えてきたので、どの辺がよかったのかみたいな感想です。
SageMaker Studio Labについて
数多くのAWSのサービスの一つに機械学習の環境を提供するSageMakerがあります。SageMakerの各機能を利用することで、機械学習を実際に実務レベルまで活用していくときに必要な学習、推論モデルのデプロイやモデル追跡、実験管理などの様々なフェーズを手軽に実現できます。(re:Invent 2021の中でもSageMaker自体に多くの機能追加がありましたね。。。(参考)
自分みたいな初学者がちょろっと趣味とかでデータ分析とか機械学習とか簡単に触ってみたいな〜って思った時、そもそもそう言った環境を準備するのが大変というのがあります。
とりあえず簡単なデータだったりを処理してみるなら最近のノートPCで大丈夫かもしれませんが、ある程度大規模なデータの分析や動画像認識などは初期投資でそれなりに良いスペックのマシンを手元に用意しなきゃいけないですね。
そんなところで数年前かな?GoogleさんがColaboratory(Colab)を出してくれました。これの登場で誰でも簡単にpythonだったりデータ分析だったり機械学習だったりを試せる環境になりました。
今までColabみたいな手軽にコンピューティングできる無料のやつってなかなかなかった気がしますが、満を辞してAWSから今回発表されたのがSageMaker Studio Labなのであります。Colabと同じように無料でデータ分析や機械学習の環境を使えてしまうのです。
AWSのブログでも、
初心者は、予算超過を避けるために、インフラストラクチャのスピンアップ、サービスの設定、請求アラームの実装について心配することなく、すぐに学習を開始したいと考えています。
と言っているので、これはまさにColabの対抗馬になりうる存在なわけであります。
SageMaker Studio Labの特徴とGoogleColabとの比較
Colab内でも無償版、Pro版などあるため、その辺のスペックも見つつということで、ITmediaさんがColabの各バージョンの比較表を出しているのでそちらを参照してください。
【追記】
最近ちゃんとまともにSageMaker Studio Labを使えていませんでしたが、いつの間にか実行時間制限が変更されていました。
突然のインフォメーションとSession:時間
え?いつ変更された?自分全然気づいていませんでした。
公式ドキュメントが一番正確なのでそちらを見ていただいたほうが早いのですが、日本語だと情報がまだ更新されてないっぽかった(2023/08/24時点)ので注意です。
CPUの場合は連続で起動し続けられるのは4時間で、24時間あたり8時間の計算時間
GPUの場合は連続で起動し続けられるのは4時間で、24時間あたり4時間の計算時間
になってしまっています。。。
本当にいつの間に!?という感じですが、最近の生成AIのリソースがガバガバ取られて困ってしまったのかな?
でもSageMaker Studio LabのランディングページのResources and community
のところにHugging Face Hubとかのモデル使ってやりましょうね〜っていう紹介notebookとかあるのでちょっとよくわからないです。
SageMaker Studio Labの気になる特徴を適当に列挙します。
- コラボレーション機能はない
- CPUインスタンスはt3.xlarge
- インスタンスの払い出し時間は
12時間8時間- 連続で起動し続けられるセッションは4時間
- CPUは1 or 2世代のIntel Xeon Platinum 8000
- 参考
- インスタンスの払い出し時間は
- GPUインスタンスはg4dn.xlarge
- インスタンスの払い出し時間は4時間
- 連続で起動し続けられるセッションは4時間
- Tesla T4が使える
- CPUはT3と同様
- 参考
- インスタンスの払い出し時間は4時間
- 15GBの永続的ストレージ
- インスタンスが掃き出されるのでブラウザを閉じてもインスタンスが稼働してくれる
-
ただなんか、特に計算回してないときは12時間以内にインスタンス落ちてる気がするんだよなぁ…夜Startさせて、特に計算回さずに朝確認したら落ちてませんでした!すばらです!
-
- 新しいファイルの追加や環境の更新があったら自動的にそれを保存してくれるので、カスタム拡張機能やパッケージはランタイム終了しても持続できる
ざっとですが、上記の特徴があるためGoogle Colabとは一長一短と言ったところでしょうか。
下記に無料で利用できる環境ということで個人的な比較をまとめると、
気になるところ | SageMaker Studio Lab | Google Colab | 理由 |
---|---|---|---|
性能面 | ◎ | ○ | T4が使えるなんてすごいし、GPUガチャも気にならない |
接続 | ◎ | △ | インスタンスさえ立ち上げておけばいつでも使えるのがすごい |
ストレージ | ○ | △ | いちいちGoogle Driveと接続しなくても良いし、永続ストレージだし。ただしデータのuploadはくっそ遅い(from tokyo)のでinternetから直で落とす必要あり |
共有 | △ | ◎ | 共有機能がないのが残念 |
git連携 | ◎ | ○ | しょぼいけどSageMaker Studioでも使われている簡易git UIがある |
仮想環境 | ◎ | △ | やっぱりconda envできるのいいよね(参考) |
拡張 | △?○? | △ | jupyterlab extensionが使えるけど、まだpreview的な扱いなので未知数なところあり |
デバッグ | ◎ | ○ | visual debuggerが使えて便利 |
まとめ
用意しなきゃいけないこととかgit連携とか、個人が無料で使う分にはColabと比べると分があるような気がしました。
SageMaker Studio Labで今後なんとかしていってほしいな~って思うところは、
- upload速度
- 共有機能
ですかねぇ…
upload速度については単体で1.5GBくらいのファイルあげてみたら、1/3上げるのに15分くらいかかってたからもう計測諦めました。
まだ少ししか使ってないので、もうちょっとSageMaker Studio Labを触り倒していきたいと思います。
参考
CPUインスタンス、GPUインスタンスそれぞれのスペックをコマンドで確認したものをベタ書きします。
CPUインスタンス
(studiolab) studio-lab-user@default:~$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
overlay overlay 27G 12K 27G 1% /
tmpfs tmpfs 64M 0 64M 0% /dev
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
shm tmpfs 4.0G 0 4.0G 0% /dev/shm
/dev/nvme1n1 xfs 25G 4.8G 21G 20% /home/studio-lab-user
/dev/nvme0n1p1 xfs 50G 14G 37G 27% /opt/.sagemakerinternal
devtmpfs devtmpfs 7.8G 0 7.8G 0% /dev/tty
tmpfs tmpfs 7.8G 0 7.8G 0% /proc/acpi
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/firmware
(studiolab) studio-lab-user@default:~$ free
total used free shared buff/cache available
Mem: 16233956 983504 7260724 584 7989728 15023396
Swap: 0 0 0
(studiolab) studio-lab-user@default:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 46 bits physical, 48 bits virtual
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz
Stepping: 4
CPU MHz: 2499.998
BogoMIPS: 4999.99
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 64 KiB
L1i cache: 64 KiB
L2 cache: 2 MiB
L3 cache: 33 MiB
NUMA node0 CPU(s): 0-3
GPUインスタンス
(studiolab) studio-lab-user@default:~$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
overlay overlay 27G 56K 27G 1% /
tmpfs tmpfs 64M 0 64M 0% /dev
tmpfs tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
shm tmpfs 4.0G 0 4.0G 0% /dev/shm
/dev/nvme0n1p1 xfs 50G 14G 37G 27% /usr/bin/nvidia-smi
/dev/nvme2n1 xfs 25G 4.8G 21G 20% /home/studio-lab-user
devtmpfs devtmpfs 7.7G 0 7.7G 0% /dev/tty
tmpfs tmpfs 7.7G 12K 7.7G 1% /proc/driver/nvidia
tmpfs tmpfs 7.7G 0 7.7G 0% /proc/acpi
tmpfs tmpfs 7.7G 0 7.7G 0% /sys/firmware
(studiolab) studio-lab-user@default:~$ free
total used free shared buff/cache available
Mem: 16121320 963264 7271876 616 7886180 14981688
Swap: 0 0 0
(studiolab) studio-lab-user@default:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 46 bits physical, 48 bits virtual
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
Stepping: 7
CPU MHz: 3112.989
BogoMIPS: 5000.00
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 64 KiB
L1i cache: 64 KiB
L2 cache: 2 MiB
L3 cache: 35.8 MiB
NUMA node0 CPU(s): 0-3
lspci
は入ってなかったので、nvidia-smi
で確認
(studiolab) studio-lab-user@default:~/sagemaker-studiolab-notebooks/d2l-pytorch-sagemaker-studio-lab$ nvidia-smi -l
Thu Dec 16 13:31:40 2021
+-----------------------------------------------------------------------------+
| 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 36C P0 58W / 70W | 8603MiB / 15109MiB | 47% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
Discussion