SageMaker Studio Labを触ってみた
はじめに
AWS re:Invent 2021が絶賛開催中ですが、その中で機械学習の実行環境を無料提供する 「SageMaker Studio Lab」 というサービスが発表されました。
https://aws.amazon.com/jp/about-aws/whats-new/2021/12/amazon-sagemaker-studio-lab-no-configuration-ml-service/
本サービスについて簡単に触ってみたので紹介します。
機能概要
「SageMaker Studio Lab」はJupyter Labの実行環境を無料で利用できるサービスとなります。
自身のPC等でJupyter Labの実行環境を整備することなく機械学習の学習や実験をブラウザだけで行える様になります。
Jupyterノートブックを構築するマシンの準備や導入作業がいらずに機械学習の学習/実験が行える様になるので、機械学習を行いたいけど、開発環境の準備にハードルを抱えている方にはうってつけのサービスですね。
実行環境のスペックもある程度整っており、15GBの永続ストレージとメモリは16GB搭載、ランタイムとしてCPUとGPUが選択できます。
実行環境上では既にPythonやRが利用可能で、ライブラリもPyTorchやMXNet、TensorFlowなどの機械学習の主要ライブラリも導入済、且つ追加も可能となっています。
始め方
「SageMaker Studio Lab」を利用するためにAWSのアカウントは不要であり、AWSに対してリクエストを送って承認を受ける事により開始できます。
AWSへのリクエスト時にはメールアドレス程度あれば申し込める状況であり、クレジットカードの情報も不要でした。
そのため、利用のハードルは極めて低いサービスですね。
申し込みは以下から行えます。
https://studiolab.sagemaker.aws/
- 申し込み画面①
- 申し込み画面②
申し込み後は申し込み時に登録したメールアドレス宛に確認メールが送付され、メール記載のリンクを押下する事で申し込みが完了となります。
その後、数時間待つと申し込みが承認されたメールが届き、メール記載のパスワード設定画面でパスワードを設定することで利用が可能となります。
パスワード設定後は以下の「SageMaker Studio Lab」のページからログインが可能となります。
https://studiolab.sagemaker.aws/
Jupyterノートブックの立ち上げ方
ログインすると以下の様なページとなり、「Select compute type」でCPUかGPUを選択して「Start runtime」をクリックするだけで環境が開始されます。
「Start runtime」をクリック後、1分程度で起動します。
起動後「Open project」をクリックすると別タブで「Jupyterノートブック」が実行されます。
軽く触ってみた感想
ターミナル操作は可能であるか
Jupyterノートブックの機能で可能でした。
Jupyter LAB が動作しているマシンへのコマンド操作も可能となります。
ちなみに実行環境のOSはamazon Linux の様です。
(studiolab) studio-lab-user@default:~$ uname -a
Linux default 4.14.252-195.483.amzn2.x86_64 #1 SMP Mon Nov 1 20:58:46 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
マシンペックは?
以下にターミナル上で実行したcpuinfo、meminfo dfコマンド結果の情報を記載します。
- /proc/meminfo
(studiolab) studio-lab-user@default:~$ cat /proc/meminfo
MemTotal: 16233956 kB
MemFree: 7745048 kB
MemAvailable: 15238596 kB
Buffers: 2088 kB
Cached: 7366832 kB
SwapCached: 0 kB
Active: 616696 kB
Inactive: 7168064 kB
Active(anon): 305052 kB
Inactive(anon): 316 kB
Active(file): 311644 kB
Inactive(file): 7167748 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 20 kB
Writeback: 0 kB
AnonPages: 415856 kB
Mapped: 255900 kB
Shmem: 584 kB
Slab: 479240 kB
SReclaimable: 351320 kB
SUnreclaim: 127920 kB
KernelStack: 4320 kB
PageTables: 6556 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 8116976 kB
Committed_AS: 2185656 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 122792 kB
DirectMap2M: 4927488 kB
DirectMap1G: 11534336 kB
- /proc/cpuinfo
(studiolab) studio-lab-user@default:~$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
stepping : 7
microcode : 0x5003103
cpu MHz : 2499.998
cache size : 36608 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 4999.99
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
stepping : 7
microcode : 0x5003103
cpu MHz : 2499.998
cache size : 36608 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 4999.99
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
stepping : 7
microcode : 0x5003103
cpu MHz : 2499.998
cache size : 36608 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 4999.99
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
stepping : 7
microcode : 0x5003103
cpu MHz : 2499.998
cache size : 36608 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 4999.99
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
- df コマンド結果
(studiolab) studio-lab-user@default:~$ df -h
Filesystem Size Used Avail Use% Mounted on
overlay 27G 12K 27G 1% /
tmpfs 64M 0 64M 0% /dev
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
shm 4.0G 0 4.0G 0% /dev/shm
/dev/nvme0n1p1 50G 15G 36G 30% /opt/.sagemakerinternal
/dev/nvme1n1 25G 749M 25G 3% /home/studio-lab-user
devtmpfs 7.8G 0 7.8G 0% /dev/tty
tmpfs 7.8G 0 7.8G 0% /proc/acpi
tmpfs 7.8G 0 7.8G 0% /sys/firmware
ファイルアップロードは可能であるか
Jupyterノートブックの機能で可能でした
ライブラリの導入は可能か
CondaおよびPipパッケージマネージャーの利用が可能となります。
試しにターミナルからboto3をpipでインストールしてみたところ、インストールできました。
(studiolab) studio-lab-user@default:~$ pip install boto3
Collecting boto3
Using cached boto3-1.20.18-py3-none-any.whl (131 kB)
Requirement already satisfied: botocore<1.24.0,>=1.23.18 in ./.conda/envs/studiolab/lib/python3.9/site-packages (from boto3) (1.23.18)
Requirement already satisfied: s3transfer<0.6.0,>=0.5.0 in ./.conda/envs/studiolab/lib/python3.9/site-packages (from boto3) (0.5.0)
Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in ./.conda/envs/studiolab/lib/python3.9/site-packages (from boto3) (0.10.0)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in ./.conda/envs/studiolab/lib/python3.9/site-packages (from botocore<1.24.0,>=1.23.18->boto3) (1.26.7)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in ./.conda/envs/studiolab/lib/python3.9/site-packages (from botocore<1.24.0,>=1.23.18->boto3) (2.8.2)
Requirement already satisfied: six>=1.5 in ./.conda/envs/studiolab/lib/python3.9/site-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.24.0,>=1.23.18->boto3) (1.16.0)
Installing collected packages: boto3
Successfully installed boto3-1.20.18
Git連携は可能か
Git 連携は可能な様です。
Git Cloneの設定も存在していました。
尚、実際の動作は検証していないため、確認ができていません。
利用できる環境の個数は?
1ユーザで1環境のみで、ユーザ毎に環境の共用利用も不可の様です。
ほんとに無料なの?
見る限り課金要素は一切ありませんでした。
AWSアカウントも不要、且つクレジットカードの登録も不要なので、完全に無料で利用が可能でした。
商用利用は可能か?
利用用途は学習と実験のみとなっており、本番利用は禁止されています。
利用に関する制限はあるか?
FAQに記載されている程度の話になりますが、まずは連続利用時間の上限ある様です。
CPUタイプの場合は12時間、GPUタイプの場合は4時間までが上限になっており、その時間を経過するとセッションが閉じられてしまう様です。
ただし、セッションが閉じても再起動すれば利用は再開が可能であり、作業途中のデータも15Gの永続ストレージに全て保存される様です。
最後に
リソースの提供も含めてここまでの環境を無償提供するAWSには素直にすごいなと感じました。
簡単に機械学習の学習ができる環境が利用できるので、機械学習に興味があるけど環境準備にハードルを抱えている方はこの機会に利用してみてはいかがでしょうか?
参考
- 公式FAQページ
- https://studiolab.sagemaker.aws/faq