Amazon SageMaker Studio Lab環境とCondaの使い方:Amazon SageMaker Studio Lab入門
無料で使えるStudio Labは、どうやって使えばよいのか。Studio Labプロジェクトランタイムの起動から、CondaによるPython環境の操作やエクスポートなどについて説明する。
前回は、「Amazon SageMaker Studio Lab」(以下、Studio Lab)の機能概要や特徴、スペック、利用上の注意事項などについて説明した。筆者自身が感じた「Studio Labは無料なのにすごい!」ということをお伝えしたわけだが、興味を持っていただけただろうか。
今回は、具体的に「Studio Labは、こんな感じで使えるよ」ということをお伝えしたい。できるだけスクリーンキャプチャーを多めにすることで、図とコードを見るだけで、説明はあまり読まなくてもよい短い記事にしたいと考えている。
とはいえ「Studio Labの使い方」は、はっきり言って難しくない。Studio Lab環境自体は直観的に使えるし、Conda(=AnacondaやMinicondaで使えるパッケージ管理ツール)やJupyterLab(=Python/Rコードが実行できるノートブック環境)に詳しければ、本稿で書いている内容は初歩的なのでほとんど読み飛ばせると思う。逆にそれらをよく知らない人が、使い始めるきっかけとして本稿を利用してもらえればと考えている。なお、JupyterLabのノートブックの使い方については本稿では説明しない(こちらの記事はColabの使い方だが、基本的には同じなので参考になるだろう)。
本稿で説明する内容は、
にも詳しく記載されている。本稿はそのエッセンスをまとめて一気読みできるようにしたものと考えてほしい。それでは、
- Studio Lab環境の基本的な使い方
- Condaの基本的な使い方
の順で説明していこう。一部は前回と同じような説明や図の再掲となる点をご了承いただきたい。
Studio Lab環境の基本的な使い方
サインインとプロジェクト概要ページ
まず、
すると、プロジェクト概要ページが開かれる(図1)。
プロジェクトの基本的なUI(JupyterLab)
図1の手順でプロジェクトランタイム(以下、単に「ランタイム」)を開始し、プロジェクトを開いたのが図2である。
見た通り、JupyterLabそのままのUIそのままであり、直感的に操作できるので詳しい説明は割愛する。
CPUとGPUを切り替えるには?
Studio Labのプロジェクトランタイムは1つしかない。そのため、CPUとGPUを切り替えたい場合は、最初のプロジェクト概要ページを開いてCPU/GPUを選択し直すと、図3のように再起動(Restart)が要求される。
Condaの基本的な使い方
コマンドを実行できるターミナル
Studio Lab上で、Condaのコマンドを利用するには、基本的にターミナルを利用すればよい。ターミナルは、図4の手順で起動できる。
起動したターミナルでは、各種シェルコマンドを実行できる(図5)。
コマンドを実行できるコンソール
また、ノートブックの実行環境に対するコンソールでcondaなどの各種コマンドを実行することもできる。図6は、前掲の図4にある「default:Python」という名前のコンソールを起動して、コマンドを実行してみた例である。
「default」という名前が出てきたが、これがConda仮想環境名である。「default:Python」という表記で、「defaultという名前のConda仮想環境における、Jupyter用のPythonカーネル(ipykernel:IPython Kernel for Jupyter)であること」を意味している。ちなみに前回は、R言語の環境としてJupyter用のRカーネル(irkernel:R kernel for Jupyter)をインストールする方法を紹介した。なお、カーネル(Kernel)とは、ノートブックのコードを実行するための「計算エンジン」である。IPythonとは、対話型(Interactive)Pythonシェルのことだ。
コマンドを実行できるノートブックのコードセル
さらに、ノートブック上のコードセルでもcondaなどの各種コマンドを実行することができる。図7がその例で、コードを実行するためのカーネルは右上から選択できる。
コマンドの先頭に!を付けているが、これはシェルコマンドを実行するためにビルトインで定義されているマジックコマンドである。実際には、conda自体がマジックコマンドとして定義されているので、!は付けなくてもよい。※ちなみに、どういうマジックコマンドが定義されているかは%lsmagicコマンドで調べられる。
Studio Labで初期のConda仮想環境について
前回も説明したが、Studio Labでは、最初から下記の3つのConda仮想環境が作成されている。
- default: JupyterLabノートブックのコードが実行される仮想環境(主にコンソールで利用)
- studiolab: Studio LabのJupyterLab環境が構築された仮想環境(主にターミナルで利用)
- base: Condaがデフォルトで作る仮想環境(※基本的に使わない)
Conda仮想環境を作成したり操作したりする場合は、基本的にターミナルを使用すればよい。
Python環境にパッケージをインストールしたり各種ファイルを操作したりする場合は、基本的にコンソールを使用すればよいだろう。とはいえ決まりがあるわけでもないので、ターミナルでアクティブな仮想環境を「studiolab」から「default」に切り替えて使っても全く問題はない。
ここでは、図5のターミナルを使って、基本的なcondaコマンドの使い方を説明していく。
Conda仮想環境の一覧を表示するには?
前掲の図5/図6/図7で使っていたコマンドである。
conda env list
# もしくは
conda info --envs
なぜ同じことをするコマンドが2つあるのか、と思ったかもしれない。conda envの方が古いコマンドであるが、まず「Conda 環境 リスト」と非常に分かりやすいコマンドで覚えやすいので、今でもよく使われているというのが、ここで使っている理由の一つだ。
また、残念ながらcondaコマンドは同じようなことができるコマンドが新旧で2種類用意されており、現時点(2022年1月25日時点)で旧バージョンもしく新バージョンでしか使えない機能というのが幾つか存在しているので、どちらか一方の利用に絞ることができない。例えば後述する「Conda仮想環境をエクスポートしたYAMLファイル」を使って新たな仮想環境を作成するには、新しいconda createではなく、古いconda env createを使う必要がある(※このような混乱状態に対してのIssueが立てられているが解決する見込みはまだない)。
どちらを使ってもよい場合なら、覚えやすいconda envを使う方が楽である。筆者自身はそういう考え方であるが、Studio Labも同じような考えのようで、公式ドキュメントではconda env listやconda env createといったenv系が使われている。※なお、本稿のコマンドはStudio Lab公式ドキュメントに準拠させてあり、特殊というわけではないので安心してほしい。
独自のConda仮想環境を作成するには?
Python 3.9環境のConda仮想環境を構築するには、リスト2のコマンドになる。
conda env create --name <仮想環境名> python=3.9
指定のConda仮想環境をアクティブにするには?
作成したConda仮想環境を利用したい場合には、その環境をアクティブにすればよい(リスト3)。
conda activate <仮想環境名>
指定のConda仮想環境にPythonパッケージをインストールするには?
アクティブになったConda仮想環境に、Pythonパッケージをインストールするには、基本的にconda installコマンドを使う(リスト4)。
conda install <パッケージ名>
# バージョン(x.x.x)を指定したいときは
conda install <パッケージ名>==x.x.x
# インストールできないときは
pip install <パッケージ名>
パッケージ名は、Pythonパッケージ管理ツールであるpipコマンドで指定できるパッケージ名(=PyPIの各パッケージ名)と同じでよい。※なお、Condaでインストールできるパッケージは、conda-forgeチャンネルのパッケージリポジトリで探せる。
全てのPyPIパッケージが、conda-forgeチャンネルに用意されているわけではない。利用できないパッケージがある場合は、pip installコマンドを使えばよい。
※ちなみに筆者自身はpip install pandasなど、Conda仮想環境にPyPIパッケージをインストールしているが、何も問題が起きたことがない。なので、例えば間違ってpip installコマンドでインストールしてしまっても、大きな問題はない場合が多いのではないかと思う。万が一、インストールなどで環境が壊れた場合は、頑張って修復するよりも、仮想環境ごと新たに作り直す方が早いかもしれない。
インストールしたPythonパッケージを確認するには?
conda list
# 特定のパッケージのバージョンなどを確認したいときは
conda list <パッケージ名>
リスト5のconda listを実行すると図7のように表示される。
「pypi」はpipコマンドでインストールしたPyPIのパッケージで、「conda-forge」はcondaコマンドでインストールしたconda-forgeチャンネルのパッケージである。
Pythonパッケージをアップデートするには?
conda update <パッケージ名>
Pythonパッケージをアンインストールするには?
conda uninstall <パッケージ名>
# もしくは
conda remove --name <仮想環境名> <パッケージ名>
指定のConda仮想環境をYAMLファイルにエクスポートするには?
Copyright© Digital Advantage Corp. All Rights Reserved.