今回は、Googleが機械学習の教育や研究用に提供しているGoogle Colaboratoryについて使い方を紹介する。本連載でも何度か紹介しているが、Pythonのインストールは、とにかく面倒なのだが、Colaboratoryを利用すれば、インストール不要で、かつ、一瞬でPython環境を整えることができる。
Colaboratoryの凄さは始めればすぐ分かる
以前から、GoogleがJupyter Notebookを改良して、独自のPython開発環境を公開していると聞いていた。しかし、今回、実際に使ってみてびっくりした。と言うのも、感覚としては、最初からPythonと機械学習ライブラリがインストールされた仮想Linuxマシンをそのまま貸してもらえるという雰囲気に近いものだったからだ。
これまでも、クラウド上で機械学習を実践できるプロダクトはいくつかあったが、Colaboratoryはカスタマイズ性の高さ、開発開始までに要する時間、費用の点で(無料なので)最強だ。と言うのも、Googleアカウントさえあれば、ColaboratoryのURLにアクセスするだけで、Pythonの機械学習環境を使い始めることができるからだ。
しかも、プログラミング言語の雰囲気を試すために、ただPythonをブラウザ上で動かすことができるというものではない。マシンのCPU(またはGPU)を酷使するディープラーニングを実践する機械学習のプログラムを、すぐに無料で試すことができるからだ。試しに、筆者が以前書いたディープラーニングで手書き数字の画像認識を行うプログラムをコピペして実行してみたところ、何の工夫もなく実行できてしまった。
しかも、Colaboratoryを実行するマシンスペックもそれほど悪くない。筆者は機械学習に関する書籍をいくつか書いており、その執筆に使ったPCのスペックは、CPU 2.2GHz/メモリ8GBだった。だが、本稿筆時点で、Colaboratoryが無料で貸してくれる仮想マシンの性能は、CPU 2.3GHz/メモリ13GBであり、筆者がメインで使っているマシンよりも性能が良いものだった。(ちなみに、Colaboratoryでマシンスペックを調べるには、「!cat /proc/cpuinfo」や「!cat /proc/meminfo」と書いて実行すれば良い。)
Google Colaboratoryを始めよう
それでは、さっそくColaboratoryを使ってみよう。必要なのは、Webブラウザだけだ。HTML5に対応しているブラウザなら、PCである必要もない。試しに、iPadで使ってみたが、問題なく実行できた。つまり、iPhone/iPad/Androidなどのスマートフォンやタブレットでも動かすことができる。
それでは、Webブラウザを起動したら、以下のURLにアクセスしてみよう。
Google Colaboratory
[URL] https://colab.research.google.com/
Googleアカウントでログインして、以下のように「最近のノートブック」の画面が表示されたら、画面の左下から「PYTHON3の新しいノートブック」を選んでクリックしよう。
すると、Colaboratoryの画面が表示される。そこで、三角の実行ボタンの横にあるテキストエディタに「1 + 2 * 3 ** 4」と入力したら、実行ボタンをクリックしてみよう。少し間があって、計算結果が表示される。(なお、3 ** 4は、3の4乗を計算する式だ。)
計算だけでなく、グラフの描画も可能だ。Colaboratoryのメニューから[挿入 > コードセル]をクリックしよう。そして、以下のコードを入力しよう。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 20, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()
実行ボタンを押すと、以下のようにサイン波を描画したグラフが描画される。
外部ライブラリをインストールしてみよう
そして、Colaboratoryの素晴らしさは、その拡張性の高さにある。ColaboratoryはUbuntu上で動いており、Linuxコマンドを実行して、外部ライブラリを自由にインストールすることができる。プログラムの行頭を「!」で始めると、Linuxコマンドを実行する。そのため、パッケージマネージャーのapt-getコマンドやPythonのライブラリをインストールするpipなどのコマンドが利用できる。
例えば、以下は形態素解析器のMeCabというライブラリをインストールする。
!apt-get install mecab libmecab-dev mecab-ipadic-utf8
!pip install mecab-python3
続けて、以下のプログラムを実行してみよう。
import MeCab
tagger = MeCab.Tagger()
result = tagger.parse("庭には二羽鶏がいる。")
print(result)
実行すると、以下のように日本語の文章を形態素(語句の最小単位)に区切って表示してくれる。
まとめ - 便利だが注意点もある
このように、Colaboratoryは拡張性も高く、使い勝手も良い。作成したノートブックは、自動的にGoogle Driveに保存される。
しかし、一定期間(90分)ほど操作しない状態が続くと、仮想マシンは停止し、せっかくダウンロードしたデータやライブラリは初期化される仕様になっている。そのため、連続していろいろなプログラムを試したい時など、PCをスリープしない状態にして、常時タブを開いておくなどの工夫が必要になる。しかし、その場合でも、最大利用期間(12時間)が設定されている。
このように最大利用期間の制限があるとしても、Pythonと機械学習ライブラリが最初からインストールされた仮想マシンを自由に利用できるというのは、大きなメリットだ。機械学習を始めたい人、また、自分のPCのスペックがそれほど高くないが機械学習を実践してみたい人、タブレットやスマートフォンから本格的なプログラミングをしてみたい人などなど、さまざまな人に役立つツールだ。
とにかく、これが無料で使えるというのは本当に素晴らしいことだ。また、筆者の勝手な予想だが、将来的には、高性能GPUが利用できて最大利用期間が撤廃された有料プランが提供されるかもしれない。
自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。