Googleアカウントさえあれば無料でPythonの機械学習プラットフォームが使えるColaboratory(通称Colab)というサービスがある。既に本連載でも何度か紹介したことがあるが、3月末に待望の有料プランが日本でも始まった。有料プランでも制限はあるもののGPUを備えた超高性能マシンが月1072円で使い放題になったのは大きい。実際に有料版を試してみたので使い勝手を紹介しよう。

  • 1072円で高性能マシンが使い放題に

    1072円で高性能マシンが使い放題に

Colabについて復習してみよう

まずは、改めてPythonのColabについて紹介しよう。一言で言うならGoogle Colabはブラウザ上で使えるPythonの実行環境だ。Googleが無料で提供しており、教育用途や研究用に使えるものだ。

そもそもPythonで人工知能(AI)を、特に機械学習を試してみたいという人は多いことだろう。ところが、Pythonや機械学習の実行環境を整えるだけでも大変だ。特にこの分野は発展が目覚ましく、ライブラリのバージョンを気にしたり、特定の環境で動かなかったりとなかなか骨の折れる作業となる。しかし、Colabを使うならブラウザでColabのWebサイトにアクセスするだけで、これらの環境を利用できる。

Colabでは、Pythonに加えて主要な機械学習/深層学習のライブラリがインストールされている。また、画像・動画を扱ったプログラム開発に欠かせないOpenCVも入っている。つまり、Googleアカウントでログインするだけで、すぐにこれらのライブラリを使って開発を始められるので非常に便利だ。

  • Colabでグラフを描画したところ

    Colabでグラフを描画したところ

なお、以前の紹介記事(26回目)でも書いたのだが、GoogleはColab利用者のためにかなり性能の良いマシンを用意してくれる。つまり、機械学習を試してみたいけど、使っているマシンが貧弱だという人でも、ストレスなく機械学習を始めることができる。そのため、機械学習を始めたい人には無条件でオススメできる。

Colabの厳しい利用制限について

無料でも高性能なマシンが使い放題になると聞くと、何かカラクリがあるに違いないと思うことだろう。確かにColabには大きな制約がある。

まずColabには最大利用時間が設定されている。無料版では12時間の制限があり、その時間が経過するとまっさらな状態に初期化されてしまう。また画面を触らないアイドル時間が数十分あったり、うっかりブラウザを閉じてしまったり、ページをリロードしてしまった場合も同様に初期化されてしまう。そうなると、Colabを使うためにアップロードしたデータや作成したファイルは消えてしまう。

そのため、一般的なPCと同じ使い方はできない。しかし、ちょっとプログラムを作ってみようとか、機械学習を実行してその結果だけが得られれば良いという場合には便利だ。それでも、全てのデータが消えてしまう訳ではない。消えてしまうのは、マシン内に保存したデータであって、作成したプログラムやその実行結果は自動的にGoogleドライブにノートブックとして保存される仕組みになっている。

ただし、一般的にプログラムだけが保存されても、生成したデータが保存されなければ意味がないことも多い。そのため、データを保存したい場合は、その都度ダウンロードするか、Googleドライブに接続してファイルを移動しておく必要がある。

有料版(Colab Pro)で嬉しいこと

次に満を持して登場した有料版(Colab Pro)について見ていこう。有料版の料金は、日本円で1072円(原稿執筆時点)だ。有料版(Colab Pro)では次のようなメリットがある。

まず、性能の良いマシンが優先的に割り当てられるようになる。高性能なGPU/TPUを搭載したマシンが使えるようになる。また搭載メモリも二倍に増える。そして何より嬉しいのが有料版では最大24時間接続したままにできるようになる。

ただし、ここで言う「24時間」というのは実際の24時間であり使い放題のマシンが割り当てられて、それがずっと自由に使えるわけではない。無料版では最大12時間使い放題だったのが、倍の時間である24時間になるということだ。つまり、有料版のColab Proにアップグレードしたとしても、占有可能なマシンが割り当てられるわけではなく、24時間後にはまっさらな状態にリセットされる。

とは言え機械学習を実践する場合、データの学習に12時間以上かけたい場合も多いので24時間連続使用できるというのは大きなメリットだ。そもそも自宅のマシンを機械学習のために長時間動かし続けると発熱やファンの騒音がうるさい。そのため、この点でもクラウド上の高性能マシンが低価格で使えるというのは大きいだろう。

なお、無料版と有料版の違いを表にまとめてみた。

比較項目 無料版 有料版
使えるGPUの種類 K80 T4 / P 100 GPU
メモリ 標準(16280MiB) 標準の2倍(TODO)
最大利用時間 12時間 24時間
アイドル時間 数十分でリセット 比較的生じにくくなる
ターミナル機能 なし 利用可能

なおColabで「!nvidia-smi」とコマンドを実行するとGPUの名前を表示できるので、有料版のColab Proにアップグレードする前と後で試してみた。

  • Colab無料版のスペック

    Colab無料版のスペック

  • Colab Pro - 有料版のスペック

    Colab Pro - 有料版のスペック

なお、メモリサイズは無料版でも有料版でも同じ16280MiBになった。実際のところ、無料版でもリソースが余っている場合には良いマシンが割り当てられることがあるようで、たまたま良いマシンに当たったようだ。毎回、Colabでは実行するたびに異なるマシンが割り振られるのもユニークな点だ。

そして、実際に大量のメモリを使いたい場合には、メニューの[ランタイム > ランタイムの変更]をクリックし、ランタイムの仕様から[ハイメモリ]を選ぶ必要がある。この点は、GPUを利用するマシンを選ぶのと同じだ。

  • メモリ容量の変更

    メモリ容量の変更

便利なターミナル

それから、筆者が有料版(Colab Pro)を使おうと思った一番の理由が「ターミナル」の機能だ。有料プランではターミナルからさまざまなコマンドを利用できる。もちろん、無料版でも簡単なコマンドはノートブック上で実行できるのだが、プログラムを走らせながらも、複数のコマンドを同時にターミナルで実行できるのが便利だ。

  • Colabでターミナルを実行しているところ

    Colabでターミナルを実行しているところ

このターミナルは一般的なLinuxのターミナルと同じで、試しにGo言語をインストールして実行してみたところ、問題なくプログラムのコンパイルができた。次いでC言語のコンパイルもしてみると問題なくできた。しかもgccは最初からインストール済みだった。動画エンコーダーのffmpegは最初からインストールされている。

さらに、ターミナル上で動くエディタのvimやnanoをインストールして使う事もできた。aptコマンドを使っていろいろなアプリをインストールできる。またターミナルを起動すると、最初からtmuxが走っており[Ctrl]+[b]キーを押して複数画面を切り替えて作業が可能だ。

それにしても、ターミナル上でエディタやコンパイラが動くとなれば、Pythonは完全にオマケと言える状態だ。24時間でリセットされてしまうという制限さえ乗り越えるなら、月1072円で高性能マシンを使い放題という状態だ。これを活用すれば、格安タブレットやChromebookであっても、Colab Proに接続すればターミナル上で高性能なマシンを使うのと同じ仕事ができてしまう。

有料版Colab Proに大きな可能性

以上、今回はColabの有料版(Colab Pro)を実際に試してみた。とにかく、高性能なマシンが使い放題になるのは気分が良い。もちろん、無料版から制限が緩和されたとは言え、最大利用時間が24時間しかないという最大の欠点はある。それでも、Googleドライブがマウントできるので、実行結果を忘れずにドライブにコピーするなど、工夫すれば制限を回避できるのでうまく活用しよう。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。直近では、「シゴトがはかどる Python自動処理の教科書(マイナビ出版)」「すぐに使える!業務で実践できる! PythonによるAI・機械学習・深層学習アプリのつくり方 TensorFlow2対応(ソシム)」「マンガでざっくり学ぶPython(マイナビ出版)」など。