2019年8月22日木曜日

Google ColabでJupyterを使ってみる

IT系のブログや記事を見ていると、開発や機械学習でGoogleのColaboratory (Google Colab)というサービスを利用することについて解説してあるのをよく見る。Colaboratoryは、個人が機械学習の教育や研究をするときに使える無償のツールで、Jupyterノートブックの環境として利用できる。googleのアカウントを持っている人だったら、そこから使うことができる。自分はsafariから使ってみたが、chrome, firefox、safariでは検証済みとのことだ。話題になっているのは、機械学習に必要なGPUなどのリソースを無償で使うことができるためのようだ(ただし、連続使用時間は12時間に制限されているらしい。暗号通貨採掘などに使われないようにするためのようだ)。Jupyterは自分で使う場合、pythonの他にRやBashなどのカーネルを利用するようにできるが、Colabではpython2と3のみ提供されている。将来的には他のカーネルを利用することができるようになるかもしれない。

自分のgoogleアカウントに行き、colabを立ち上げてみる。デザインは少し異なるが、Jupyterノートブックのファイルができるので、helloworldしてみる。




使い方はほとんどローカルのJupyterと同じだった。ファイルを保存するとgoogleドライブに.iynb形式でファイルが保存される。ファイルを利用するために、ドライブの設定で、Colabのところにチェックを入れた。


そうすると、利用するアプリとして、google colaboratoryが出てくるようになる。



 Markdownはテキストボックスという名前で利用できる。左側で入力すると、右側に成形された書式で出力される。


実行すると、以下のように出力される。


colabには、よく使われるライブラリがあらかじめ使えるようになっている。numpyをインポートして、行列の演算を行ってみた。


anacondaを導入しても、あらかじめ主要なライブラリを一緒にインストールすることができるが、colabは自分のパソコンで何もしなくてもだいたい必要なものが利用できるようになっているのは便利だと思った。さらに、機械学習などで利用されると思われるコードがあらかじめスニペットとして用意されているようだ。左側のメニューでコードスニペットを選んで、簡単にスニペットのセルをコピーすることができる。


実際に実行してみたところ。これは手間いらずだ。


googleドライブにアップロードしたファイルを参照するときは、ドライブをマウントする必要がある。やり方は簡単で、左側からドライブにマウントのボタンをクリックすると、必要なコードがコピーされ、それを実行すると以下のようになる。リンクをクリックして自分のドライブがあるアカウントにログインすると、キーが表示されるので、コピーして入力する。

以上の作業を行うと、/content/drive/My\ Drive/の下にgoogleドライブがマウントされる。一度colabのノートブックを閉じて再度開いたときもマウントされたので、一定期間はマウントされるのかもしれない。せっかくなので、ランダムドリフトの簡単なシミュレーションをして結果をプロットするスクリプトをアップロードして、colabで実行してみた。

見えているファイルplot.pyを実行する。pythonファイルを実行するときは、%run file.pyでいけるようだ。初期頻度や世代数、集団サイズ、試行回数を入力すると、以下のように結果がプロットされる。図では、初期頻度が0.5で、30世代100個体の集団を4回シミュレーションしている。


すごいサービスだと思った。何も設定しなくても、googleアカウントがあればすぐにJupyterノートブックを使うことができるし、機械学習などの勉強に必要なリソースが無償で利用できるのだから、使ってみる価値があると思った。大学の研究室でpythonを導入したり、学習したりする場合にも、環境の準備をほとんどすることなくいきなり始めることができるわけなので、導入の敷居はとても低くなる。とりあえず、研究室の研究なり学習でよく使うスクリプトなどをライブラリとしてアップロードした上で使えば、使用PCの条件なども問題にすることなく一斉に演習ができるというのは、かなり便利なのではないかと思う。