📖

SageMaker Studio LabでJuliaを使う

2022/01/08に公開

SageMaker Studio Lab

昨年末AWSから無料で使えるノートブック環境としてSageMaker Studio Labが発表されました。
https://aws.amazon.com/jp/blogs/news/now-in-preview-amazon-sagemaker-studio-lab-a-free-service-to-learn-and-experiment-with-ml/

似たようなサービスとして、Google Colaboratoryがあります。あちらはJupyterに似た独自のノートブック環境を実行するサービスですが、SageMaker Studio LabはJupyterLabそのものという感じです。Colabと違って、ターミナルを使えたり、一つのランタイムで複数のノートブックを作成できたりします。

Studio Labではランタイムを停止してもインスタンスの実行環境は破棄されずそのままになるそうです。そのためデフォルトにないパッケージを多用する場合、毎回それらを入れ直す必要がなくなることになります。これは手軽に無料でJuliaのクラウド実行環境を用意するのに良いのではないかと思い、やってみました。

SageMaker Studio Lab自体の登録はAWS公式の案内通りにやれば良いです。利用申請してから数時間でアカウントが発行されました。

Juliaを使う

まず、公式の手順に従ってJuliaをダウンロードしてパスを通します。ターミナルが使えるので、普通にターミナルからダウンロードします。なお2022/01/08現在の最新であるJulia-1.7.1を使います。

$ wget https://julialang-s3.julialang.org/bin/linux/x64/1.7/julia-1.7.1-linux-x86_64.tar.gz
$ tar zxvf julia-1.7.1-linux-x86_64.tar.gz
$ echo export PATH="$PATH:/home/studio-lab-user/julia-1.7.1/bin" >> .bashrc
$ source .bashrc

JuliaでJupyterLabを使うためにIJuliaを入れます。

$ julia
julia> ]
(@v1.7) pkg> add IJulia
(@v1.7) pkg> build IJulia

jupyter kernelspec list をすると、kernelspecにJuliaが入っていることは確認できるのですが、LauncherにJuliaが表示されません。
何が正解なのかいまいちわかりませんが、以下のように新たにcondaの仮想環境を作成してJupyterを導入し、仮想環境下のカーネルにjuliaのカーネルをコピーすると使えるようになりました。

$ conda create --name julia
$ conda activate julia
$ conda install ipykernel
$ cp -rf ~/.local/share/jupyter/kernels/julia-1.7 ~/.conda/envs/julia/share/jupyter/kernels

以下の記事を参考にしています。
https://zenn.dev/hinastory/articles/475095df067f1f

成功すると画像のようにJulia環境が追加されます。

Studio LabではGPUも使えます。例としてCUDA.jlとFlux.jlを使い、GPU上で自動微分をしてみます。

問題なく動作することが確認できました。

Discussion