連載
» 2021年12月20日 05時00分 公開

無料でPython/機械学習できるAmazon SageMaker Studio Labとは? Colabと比較Amazon SageMaker Studio Lab入門

メールアドレスだけで無料で使えるStudio Labは、同種のColabとどう違うのか。Studio Labプロジェクトランタイムのスペック(CPU/GPUや、実行時間、メモリ、ディスクサイズなど)や機能(ランタイムの保存と再開など)について説明する。

[一色政彦,デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Amazon SageMaker Studio Lab入門」のインデックス

連載目次

 Python/Rコードの実行や機械学習/データサイエンスの実装を無料でオンライン実行できる環境といえば、Google Colaboratory(略してColab)が特に有名である。2021年12月1日、そのColabに強力なライバルが現れた。「Amazon SageMaker Studio Lab」(アマゾン・セージメーカー・スタジオ・ラボ)だ*1

*1 日本語では「ラボ」だが、英語では「ラブ(Lab)」と発音するのが普通。「スタジオ」は英語では「ステューディオ(Studio)」。「セージ(Sage)」とは、ハーブや花の名前ではなく「学び経験を積んだ賢者(Wise old man、例えばハリー・ポッターのダンブルドア校長は魔法の賢者)」のことで、賢者は「機械学習モデル」を暗喩すると思われるが、一説にはマーケティング目的で独自用語にするためにランダムな単語生成で命名されたという噂(うわさ)もあり、両方とも正しい説なのかもしれない。


 「Colabのライバル」という表現だけで、Colabを使っている人ならある程度の内容は予想できるだろう。そこで本稿では、Colabとの違いも示しつつAmazon SageMaker Studio Labの概要と利点/欠点、ハードウェアスペック(CPU/GPU、メモリ、ディスク容量など)、基本機能(ランタイムの保存と再開など)を紹介する。次回で、その使い方を説明する。

Amazon SageMaker Studio Labとは?

 クラウドプラットフォーム「AWS」が提供するAmazon SageMaker Studio Labとは、Python言語やR言語などが使える、無料の機械学習(ML:Machine Learning)/データサイエンス(DS:データサイエンス)のオンライン作業環境である。その環境の中身はJupyterLabであり、Webブラウザー上でJupyterLabのノートブックを含む任意のファイルを作成して編集可能で、「(そのノートブックの実行環境に対する)コンソール(Console、ターミナル、コマンドプロンプト)」も利用できる。

 図1に示すように、Jupyter Notebookや、その次世代バージョンであるJupyterLabを既に使っている人には使いやすいUIである(一方のColabは、独自の使いやすさを求めて機能が変更/強化されている部分がある。どちらが使いやすいかは人によって違うと思われる)。

図1 Amazon SageMaker Studio Labの基本的なUI(JupyterLabそのままのUI) 図1 Amazon SageMaker Studio Labの基本的なUI(JupyterLabそのままのUI)

 使い勝手や機能はJupyterLabそのもので、図2に示すようにランチャー(Launcher)から、

  • ノートブック(Notebook): 「default:Python」「default:R」(=デフォルトカーネルのPython/R言語環境)
  • コンソール(Console): 「default:Python」「default:R」
  • その他(Other): 「(JupyerLab環境の実行環境に対する)ターミナル(Terminal)」「テキストファイル」「Markdownファイル」「Pythonファイル」「Rファイル」「コンテキストヘルプの表示(Show Contextual Help)」

といった各種機能を実行できる。通常はPython環境だけでR言語の環境はないが、ノートブック上でconda install -c r r-irkernel -yというコマンドで「r」と「r-irkernel」をインストールすることで図2のように使用可能になる。

図2 Amazon SageMaker Studio LabのLauncher(JupyterLabそのままの機能) 図2 Amazon SageMaker Studio LabのLauncher(JupyterLabそのままの機能)

 なお「Amazon SageMaker Studio Lab」という名前だが、非常に長いので、公式ドキュメントでは「Studio Lab」と略している。本稿でも、この略語を使用する。また、その略語では分かりづらいコンテキストでは、「SageMaker Studio Lab」と略されている場合もある。

 ちなみにAWSには、Amazon SageMaker Studio(以下、Studio)という有償の環境が既に存在する。Studio LabはStudioに「Lab」(実験室:Laboratory)という言葉が足されており(こういうところも、Colab=「Co-Laboratory:共同実験室」と似ている)、Studio LabがStudioの一部機能(JupyterLab部分)のみを限定的に切り出したサブセットであることを示唆している。なお本稿の最後で、「StudioとStudio Labの違いと移行方法」について説明している。

Studio Labの利点と欠点

 Studio Labの利点と欠点について、筆者が印象深く感じたものを紹介する。

利点:メールアドレスのみで使える!

 Studio Labは、現在はプレビュー版で、利用申請を下記のリンク先の[Request free account]で受け付けている。

 利用申請では、「メールアドレス」が必須で、オプションで「姓と名」「国名」「会社名/組織名」「職業(学生/先生/データサイエンティスト/プログラマー/ML愛好家/その他)」「なぜ興味があるか(学校/仕事/趣味/ハッカソン/その他)」を入力する。筆者が試した限りでは、利用申請の数日後にアカウント登録のメールが届き、期日内に登録を済ませる必要があった。

 Studio Labは、機械学習やデータサイエンスの経験を積みたい初心者をメインターゲットとしているが、上記の「職業」の選択は幅広いので、恐らく誰でも使えると思われる。

 Colabとの違いとして、ColabはGoogleアカウントが必須なのに対し、Studio LabはAWSアカウントが不要(つまりクレジットカードも不要)で、メールアドレスさえあればよいという自由さがある。これは、多くの学生に機械学習を教える必要がある教育現場では非常に魅力的な特長だろう。

利点:柔軟性と使いやすさ

 前述の通り、JupyerLabそのままの機能が使えることは大きな利点である。非常に柔軟性が高く、何でもできる

 本稿の比較対象であるColabでも、「何でもできる」と言えばできるのだが、作業のしやすさが段違いだ。Colabだと、プロジェクトの内に複数のノートブックを作成して切り替えるなどがしづらい。Studio Labでは、ファイルブラウザーからまるでWindows OSやmacOSで作業しているようにファイルを管理できる。

利点(欠点?):condaコマンド

 また、Studio LabのPython実行環境は、データサイエンティストに愛されているConda(=AnacondaやMinicondaで使えるパッケージ管理ツール)による仮想環境で管理されている(詳細後述)。Condaのcondaコマンドは、(筆者の感想では他のPython仮想環境に比べて)忘れることがほとんどないほど直感的で短いコマンドになっており、非常に使いやすい(「Python仮想環境はどれがよいか」は、宗教論争の火種で「Python標準機能のvenvが一番良い」などさまざまな意見がそれぞれの人にあり、Condaであることが利点になる人と欠点になる人がいると思うが、ここでは筆者視点で利点の一つとして挙げておいた)。

 condaの基本的な使い方は次回で説明する。

利点:複数の仮想環境の管理/運用

 「仮想環境である」ということは、デフォルトの環境以外に、必要に応じて任意のPython/R環境を作成できるということだ。

 機械学習のコードは、各種ライブラリーなどのバージョンに細かく依存する場合がよくあり、Pythonや機械学習フレームワークなどのバージョンを細かく指定してインストールすることが要求されるケースが多い。そういったケース・バイ・ケースで個別の作業環境を用意したい場合に、仮想環境は有用である。環境構築に失敗した場合には、それを削除して、新たに真っさらな新環境を構築することも、仮想環境なら簡単だ。

 完成したConda仮想環境は、YAML形式のファイルにエクスポートして再利用することも可能である(その方法は次回で説明)。これもColabにはない大きなメリットである。

欠点(利点?):真っさらなランタイム

 欠点としては、ノートブックなどの実行環境となるプロジェクトランタイム(project runtime、実体は「Amazon EC2」インスタンス)には最初、フレームワークやライブラリーがほとんどインストールされていないことだ。具体的には下記のもの以外は、全て自分でインストールする必要がある。

  • Python 3.9
  • bzip2
  • build-essential
  • curl
  • git
  • libgl1-mesa-glx
  • nano
  • rsync
  • unzip
  • wget
  • ca-certificates
  • pip
  • ipykernel-6.4

 上記のライブラリーは、公式サイトの「Manage your environment - Amazon SageMaker」を参考にしたが、筆者がconda listというコマンドで、conda管理のパッケージとpip(PyPI)管理のパッケージの一覧を出力してみると、もっと多くのものが表示された。

 サポートが明言されている機械学習のライブラリーは、以下の通りである。これらのライブラリーは、2021年12月16日時点のもので、随時変更される可能性があるので注意してほしい。サポートされていないからといって、必ずしも使えないわけではない。

  • TensorFlow 1.15 & 2.6
  • MXNet 1.8
  • Hugging Face
  • AutoGluon 0.3.1
  • scikit-learn 0.24
  • PyTorchエコシステム
  • OpenCV
  • SciP
  • NumPy

 一方のColabは、多くのライブラリーが事前にインストールされているので、scratchpadなどにアクセスするだけで数秒で新しい仮想マシン(VM=Studio Labのプロジェクトランタイムに相当)上で機械学習のコードを書いて実行できる。「すぐに使う」という点ではColabが圧倒的に有利である。しかしこれは上記のメリットである柔軟性とトレードオフにあり、どちらが良いとは言い切れないところもある。

 この他、プロジェクトランタイムのハードウェアスペックや、それに関連するStudio Labの機能も、Colabと比較すると、一長一短があり、一概には言えないので、次章で1つずつ内容を見ていくことにしよう。

Studio Labプロジェクトランタイムのスペック&機能と、Colabとの比較

 Studio Labのスペック&機能を、まずは一覧表にまとめ、比較対象としてColabの内容も併記した。

AWS vs. Google Studio Lab Colab無償版
CPU 例:Xeon Platinum 8259CL @ 2.50GHz
(2コア4スレッド)
例:Xeon @ 2.20GHz
(1コア2スレッド)
GPU 例:Tesla T4 例:Tesla K80
実行時間 12時間(CPU)/4時間(GPU) 最長12時間
メモリ 例:15.48GB(CPU)/
15.37GB(GPU)
例:12.69GB
ディスク 例:24.99GB 例:107.72GB(CPU/TPU)/
78.19GB(GPU)
ターミナル/コンソール ○使える ×
プロジェクトランタイム
/仮想マシン(VM)
の保存と再開
○できる ×
表1 Studio Labプロジェクトランタイムのスペック&機能の一覧(Colab無償版との比較)

 この表は、比較しやすいように、「Colab Pro/Pro+とは? 無料版との違い、比較表:Google Colaboratory入門」という記事の表1と同じような構成にした。有償のColab Pro+版ではバックグラウンド実行ができるが、Colab無償版やStudio Labではできないので掲載を省略した。費用はどちらも無料なので、これも省略した。

 各項目の詳細についてそれぞれ説明していこう。各数値やGPUは2021年12月16日現在のもので、筆者が試した範囲でしかなく、常にこの数値のままとは限らないので注意してほしい。

CPU

図3 Studio LabでCPUの情報を取得した例 図3 Studio LabでCPUの情報を取得した例

 Studio Labでは基本的に、

  • Intel Xeon Platinum 8259CL @ 2.50GHz(2コア4スレッド

というCPUを搭載したランタイムが割り当てられる(図3)。

 一方のColab無償版では、Intel Xeon @ 2.20GHz(1コア2スレッド)が割り当てられる。つまりStudio Labは、Colabより基本的に2倍以上、性能が良い。

GPU

図4 Studio Labでnvidia-smi(NVIDIA GPUデバイス監視)コマンドを実行した例 図4 Studio Labでnvidia-smi(NVIDIA GPUデバイス監視)コマンドを実行した例

 Studio LabでGPUを使う場合は基本的に、

というGPUを搭載したランタイムが割り当てられる(図4)。

 一方のColab無償版では、Tesla K80(GPUメモリ:12GB)が割り当てられる。同じT4は、有償のColab Pro版で割り当てられる。つまりStudio Labは、無料にもかかわらず良い性能のGPUを提供してくれているということだ。

 なお、Studio LabでのCPU/GPUの指定や切り替えは、

で、ランタイムを開始するタイミングで行える(図5)。

図5 CPU/GPUを切り替えるための設定 図5 CPU/GPUを切り替えるための設定

 Amazon公式の説明では、CPUとGPUで下記の使い分け指針が示されている。

  • CPU: 通常の科学計算タスク(例:scikit-learn)や、並列処理しないアルゴリズム、シーケンシャルに処理するアルゴリズム(例:再帰型ニューラルネットワーク)などに最適
  • GPU: GPU上で動作するように最適化されたアルゴリズム(ディープラーニングやXGBoostなど)に最適

実行時間

図6 Studio Labのプロジェクト概要ページに表示される残り時間の例 図6 Studio Labのプロジェクト概要ページに表示される残り時間の例

 Studio Labでは、

  • 12時間(CPU選択時)
  • 4時間(GPU選択時)

でランタイムの実行が自動的に停止させられる(図6)。

 一方のColab無償版では、CPUでもGPUでも「最長」12時間であるが、時間前にタイムアウトになるので、実行時間でもStudio Labの方が良い。ただしGPUの場合は、わずか4時間で短いという欠点がある。

メモリ

図7 Studio Lab(CPU/GPU)でメモリ(RAM)サイズを取得した例 図7 Studio Lab(CPU/GPU)でメモリ(RAM)サイズを取得した例

 Studio Labでは、

  • 15.48GB(CPU選択時)
  • 15.37GB(GPU選択時)

のメモリサイズのランタイムが割り当てられる(図7。あくまで筆者が得た数値で、CPUとGPUでわずかに違うのは誤差だと思われる。公式ドキュメントでは16GBと記載されている)。ちなみに、このメモリサイズをオーバーフローすると、カーネル(Kernel)が自動的に再起動してしまい、実行が止まってしまう。

 一方のColab無償版では12.69GBなので、メモリ(RAM)サイズでもStudio Labの方が良い。

ディスク

図8 Studio Labでディスクサイズを取得した例 図8 Studio Labでディスクサイズを取得した例

 Studio Labのユーザーコンテンツ領域には、

  • 24.99GB

のディスクサイズのランタイムが割り当てられる(図8)。

 一方のColab無償版では107.72GB(CPU/TPU選択時)/78.19GB(GPU選択時)と4倍近くもあるので、ディスクサイズに関してはColab無償版の方がかなり良い。

ターミナル/コンソール機能

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。