Aidemy Tech Blog

機械学習・ディープラーニング関連技術の活用事例や実装方法をまとめる、株式会社アイデミーの技術ブログです。

日本語版最速!? jupyter notebookをgoogleが神改造 colaboratoryについてまとめてみた。

こんにちは、たくやです。

最近すっかりニュース担当として定着してしまいましたね。

今回はgoogle が公開した教育と研究のための研究ツールである Colaboratory について解説していきたいと思います。

ざっと検索してみたところ英語版でしかまだ記事が出ていないようでしたので、日本語版最速と題させていただきました。

 

目次

・ニュース概要

・そもそもJupyter notebookとは

・Colaboratoryを使うメリット、デメリット

・実際に申し込みをしてコードを動かしてみた。

・おまけ Colaboratoryの気になるFAQ 

                                      

・ニュース概要

  • ColaboratoryはJupyter notebookを基盤としたオープンソースプロジェクト。
  • 現在、ColaboratoryはChromeのデスクトップ版でのみ動作する。
  • 優れたユーザーエクスペリエンスを提供するために、当初はノートブックの作成や編集へのアクセスを制限している。そのため、利用するには申し込みをしなくてはいけない。
  • ColaboratoryノートブックはすべてGoogleドライブに保存される。
  • 既存のJupyter / IPythonノートブックをColaboratoryにインポートできる。
  •  Colabは長年にわたりgoogle内部で使われるツールであったため依然として内部で使用されるPython 2.7のみをサポートしている。しかし、今後、Python3やRなどにも対応させていきたいとgoogleは考えている。
  •  Colaboratoryを使用すると、Jupiterのノートブックを他の人と共有し、ブラウザ以外のコンピュータでダウンロード、インストール、または実行することなく、共有することができる。
  • Portable Native Client(PNaCl)を使用しているため、安全に共同研究室はネイティブスピードで動作する。よって、新規ユーザーはjupyter notebookを以前より速く使用できるようになる。

PNaClとは

ウェブブラウザ上のウェブアプリケーションをネイティブアプリケーション(端末内の演算装置が直接に演算処理を行うタイプのアプリ)に近い速度で実行することなどを主な目標とした、機械語で書かれたコードを安全に実行できるシステムのこと。

 

                                      

・そもそもJupyter notebookとは

ブラウザ上で使えるプログラム実行環境です。ノートブックと呼ばれるドキュメントを作成し、プログラムの記述と実行、メモの作成、保存と共有などをブラウザ上で行うことができます。

以下Jupyter notebookのどこが魅力を箇条書きで書きます。

  1. Jupyter notebookの最大の特徴は”セル”と呼ばれる単位でコードを書いていける。複雑で冗長なコードも分割して実行することが可能。
  2. コードの実行が簡単。shit+Enter で簡単にコードが実行できる。
  3. 各言語のライブラリを使うことで出力結果を様々な形で表現することができる。例えばPandas というライブラリを使えば表の状態で結果を出力できる。
  4. 「保存・共有・再現」の利便性からデータ分析と非常に相性が良い。 

 

Jupyter notebookのインターフェイス

f:id:meteoputi:20171110004553p:plain

 

Colaboratoryのインターフェイス

f:id:meteoputi:20171110003310p:plain

実際に二つを見比べてみても、とても似ていることがわかると思います。

Colaboratoryのほうが、ちょっとオシャレな感じがしますね。

 

                                      

・Colaboratoryを使うメリット、デメリット

最後に、冒頭で述べたニュース概要から、ColaboratoryがJupyter notebookに比べて、どこが改良されたのかを簡単にまとめます。

  • 実行が早い
  • 異なるスキルセットを持つ人同士での”コラボレーション”が同じツール上で可能となる。
  • ノートブックを複数人で同時に編集することができる。
  • jupyter notebookとよく似ているが、jupyterのようにセットアップが必要ない。

Colaboratoryという名の通り、従来のJupyter notebookに比べて、共有能力が強化されているようです。

しかし、逆にデメリットも存在します。

  • 現状ではPython2.7 にしか対応していない。
  • 最新すぎて公開されている情報が少なすぎるため、困った際に検索しても解決策が出てきにくい。
  • 現段階では申し込みをする必要があり、即時使用はできない。

 

これからデータ分析、AI関係などで開発をする人にとってはとても心強いツールになりそうですね。

早く多言語に対応してくれるのを待つばかりです。

 

                                      

・実際に申し込みをしてコードを動かしてみた。

f:id:meteoputi:20171110044731p:plain

どうやらnumpy は入っているようでしっかり動きました。

 

f:id:meteoputi:20171113194828p:plain

乱数もしっかり発生させることができました。

 

 

f:id:meteoputi:20171113195531p:plain

また、pandasもしっかり使えるようです。

 

f:id:meteoputi:20171110044812p:plain

しかし、kerasは入っていないようです。
(!pip install keras と書いてインストールすることによって動くようです。)

 

f:id:meteoputi:20171110044755p:plain

少し見にくいですがエクセルの読み込みもうまくいきませんでした。

(こちらも!pip install xlrd と書くことによって正常に動くそうです。)

コメントくださった方、ありがとうございました。

 

最後に実際にcolaboratoryを使うと処理が早くなるのかを検証してみます。

・jupyter notebook の結果

f:id:meteoputi:20171110044844p:plain

 

・colaboratory の結果

f:id:meteoputi:20171110044835p:plain

残念ながら、colaboratoryの方が手元のjupyter notebookよりも倍以上時間がかかるという結果になってしまいました。

手元のPCは特段データ解析/ゲーム用に特化していない普通のノートPCなので、うーん。。。という感じですね。

まだまだ、ツールとしては不完全な上に、理論通りにはうまく動いていないのかもしれません。

実際に便利なツールとなるにはもう少し時間がかかりそうです。

                                      

・おまけ Colaboratoryの気になるFAQ

Q. コラボレーションノートを検索するにはどうしたらいいですか?
A. ドライブの検索ボックスを使用します。ノートブックビューの左上にあるColaboratoryロゴをクリックすると、ドライブ内のすべてのノートブックが表示されます。また、最近開いたノートブックを[ファイル] - > [最近開いたもの]を使って検索することもできます。

 

Q. 私のコードはどこで実行されますか?ブラウザのウィンドウを閉じると、実行状態はどうなりますか?
A. コードはあなたのアカウント専用の仮想マシンで実行されます。仮想マシンは、しばらくの間アイドル状態になるとリサイクルされ、システムによって最大限の有効期間が強制されます。

 

Q. データを取り出すにはどうすればよいですか?
A. これらの手順やColaboratoryのファイルメニューからGoogleドライブから作成したColaboratoryノートブックをダウンロードできます。 Colaboratoryノートブックはすべて、オープンソースJupyterノートブック形式(.ipynb)で保存されています。

 

https://research.google.com/colaboratory/faq.htmlk

から引用させてもらいました。

 

参照

https://research.google.com/colaboratory/faq.html

https://deepage.net/machine_learning/2016/12/13/jupyter_notebook.html