連載
» 2020年03月17日 05時00分 公開

気になるニュース&ネット記事:Colab Pro登場と、Google ColabユーザーのためのTipsトップ10

Colabは無償で使えるが、実行時間など制限もある。この制限を解除できるColab Proを紹介。さらに、Colabをもっと便利に活用するためのTips(スクラッチパッド、RAM増量ランタイムなど)を紹介する。

[一色政彦,デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「気になるニュース&ネット記事」のインデックス

連載目次

 3月11日(米国時間、日本では12日)にTensorFlowのデベロッパーカンファレンス「TensorFlow Dev Summit 2020」がオンラインで開催された。本稿では、その中から、

というセッションの内容を紹介する。

図1 セッションタイトルとTim Novikoff氏 図1 セッションタイトルとTim Novikoff氏

 このセッションでは、Google Colab(以下、Colab)ユーザーのためのTipsが紹介され、Google ColabのPro版が発表された。どちらも、@IT Deep Insiderの読者にとって有用な情報であるため、記事化して情報を共有することにした。登壇者はTim Novikoff氏である。

 さっそく始めよう。Colabの概要と(セッションの後半で説明された)Colab Proから紹介していく。

Colabの概要

 Colabを知らない人向けに簡単に紹介すると、そもそもColabColaboratory、「コラボラトリー」と読む、直訳すると「共同実験室」)とは、ブラウザー上で任意のPythonコードを書いて実行できる「Jupyter Notebook」環境(独自機能あり)である(図2)。グーグルがホストしており、Googleドライブ(無料)のアカウントがあればすぐに開始でき、しかも何と「無料」で全ての機能が提供されている。そのため、特に機械学習やディープラーニング、データサイエンス界わいでPythonを書く人に人気があり、利用者も多い。

図2 Colabとは 図2 Colabとは

 Colabの詳細は、公式の「Colaboratory へようこそ」やこちらの記事を参考にしてほしい。

Colabの歴史

 ここではColabについての歴史についても紹介しておこう。図3に示すように、Colabは2012年にグーグル社内のデータアナリスト向けに社内ツールとして開始され、2014年には社内でTensorFlowを最初に学ぶための「機械学習」短期集中コースで使われるようになり、2017年に社外にも公開された、とのことである。つまり、グーグル社員が使っているものと同じツールに、世界中の人がアクセスできるようになっている、ということだ。

図3 Colabの歴史(簡易版) 図3 Colabの歴史(簡易版)

Colabの特徴

 Colabは非常に簡単に使えるのが特徴だ。Colabノートブックにアクセスすると、バックエンドでグーグルが管理する大量のVM(仮想マシン)の一つに自動的に接続される(図4のPre-warmed VMs)。無料にも関わらず、(通常は「CPUを使うVM」だが)必要に応じてGPUやTPUが使えるVMも利用できる。また、Python環境だけでなく、GPUでディープラーニングするためのCUDAやTensorFlowを含めて人気ライブラリ数百種類がインストール済みなので(Pre-installed packaged)、すぐに機械学習やディープラーニングの作業を開始できる。本当にメリットだらけなので、一回使い始めたら手放せなくなるツールだと思う(実際に筆者がそうだ)。

図4 Colabはどのように動作するのか? 図4 Colabはどのように動作するのか?

Colabの欠点

 ただし、欠点がないわけではない。具体的には、持続可能性を確保したり、乱用を防いだりするために、リソースに以下のような制限が設けられているのだ(Resource limits)。

  1. GPUを使う場合、高速なGPUがなかなか割り当てられない
  2. 最長12時間、実行すると自動的にリセットがかかる
  3. 大きなデータを読み込んで処理するとメモリ不足に陥る

 実際にこれらの問い合わせが多いとのことである(図5)。

図5 問い合わせが続いている要望: 高速なGPU/より長い実行時間/より大きなメモリ 図5 問い合わせが続いている要望: 高速なGPU/より長い実行時間/より大きなメモリ

 特に影響を受けやすいのが、2番目の実行時間である。例えば筆者の場合、1日中、作業していることはよくある。ところが頻繁に(体感的には数時間間隔、もしくは使っていないアイドルタイムが数十分程度)で突然リセットがかかって、最初から実行し直さなければならなくなることがよくあるのである。公式には「実行時間は最長12時間(アイドルタイムは最長90分)」とされているが、筆者の使用時はそれよりはるかに短い場合がよくあるのだ。ちなみにこの原因は、複数のノートブックを同時に開いて作業しているための影響(どれかのノートブックのアイドルタイムが90分を超えたなど)、あるいは限られたリソースが少数のユーザーに占有されないようにする制限(=直近のリソース使用量が少ないユーザーが優先される結果)などではないかと考えている。

待望のColab Pro登場

 それらの要望を聞き入れて提供開始されることになったのが「Colab Pro」(コラブプロ)である(図6)。

図6 Colab Proのメリット: 高速なGPU/より長い実行時間/より大きなメモリ(Colab Pro公式サイトのスクリーンキャプチャ) 図6 Colab Proのメリット: 高速なGPU/より長い実行時間/より大きなメモリ(Colab Pro公式サイトのスクリーンキャプチャ)

1. 高速なGPU

 無償ユーザーに「NVIDIA Tesla K80」が割り当てられているときに、Proユーザーには優先的に「NVIDIA Tesla T4」や「NVIDIA Tesla P100」が割り当てられる。もちろん使用量には上限はある。だが無償版とPro版ではGPU/TPUの使用量上限に大きな違いがある、とのことである。

2. より長い実行時間

 Pro版では、最長24時間の実行が可能である。また無償版では、使っていないアイドル状態になると(最長90分後に)自動的に接続が切断されるが、Pro版では、そのタイムアウトも生じにくくなっている、とのことである。

3. より大きなメモリ

 Colab Proユーザーには(無償ユーザーよりも)優先的に「ハイメモリ仮想マシン(High Memory VM)」(=RAM増量ランタイム)が割り当てられる。そのVMのメモリやCPUは、標準的なVMの2倍とのこと(具体例をTipsの3位で示す)。

価格は月額9.99米ドル(最初は米国在住者のみ)

 この3点のメリットが得られて、月にたったの9.99米ドル(日本円で約1000円)である。Colabの利用頻度が高い人には「安い」と感じられるのではないだろうか。筆者のように頻繁に実行し直しているようであれば、「Colab Proで時間を買う」方が賢いだろう(と筆者は思う)。

 なお、現時点では米国在住者のみが利用できる。状況を見て、日本を含む世界各国に広げられるだろう。

 この他、Colab Proの詳細は、

を参照してほしい。

Colabの今後について

図7 Colabの今後 図7 Colabの今後

 Colab ProによってColab無償版はなくなることはない、とのことだ。今後も、両方を改善していくと、登壇者のNovikoff氏は約束してくれた。

 今後もフィードバックをユーザーの皆さんから募集しているとのことである。フィードバックは[ヘルプ]メニューから送信できる。また、Colabを使っていると、アンケートやフィードバックの入力画面が表示されることがあるので、そこでフィードバックを送ってもよいだろう(筆者もフィードバックを送ったことがある)。もしくはTwitterの@GoogleColabアカウントに送ってもよい。

 さて、ここからは、セッションの前半にあったColab Tipsをスクリーンキャプチャ中心で紹介していく。

Colab Tipsトップ10

図8 TensorFlowユーザーのためのColab Tipsトップ10 図8 TensorFlowユーザーのためのColab Tipsトップ10

 ちなみに筆者はColabを使い倒しているので、ほとんど知っていたが、5位と3位の機能は知らなかった。皆さんは全ての機能を知っているだろうか?

10位:TensorFlowバージョンの指定

図9 TensorFlowバージョンの指定 図9 TensorFlowバージョンの指定

 現状ではColabノートブックにデフォルトでインポートされるTensorFlowバージョンは1.xである。しかしTensorFlowの最新バージョンは2.xである。間もなく2.xをデフォルトにする予定とのことだが、現時点では%tensorflow_version 2.xマジックコマンドを最初に実行して、明示的にバージョン2.xを指定する必要がある。

 なお。TensorFlow 1.xで動作する古いノートブックの場合は、%tensorflow_version 1.xと記述しておくことで、TensorFlow 2.xがデフォルトでインポートされるようになっても、バージョン1.xで動作し続ける、とのことである。

9位:Colab内でTensorBoardの活用

図10 Colab内でTensorBoardの活用 図10 Colab内でTensorBoardの活用

 基本的にTensorBoardツールは、(学習結果の可視化などが行えるダッシュボードを)HTMLでレンダリングできる。この利点を生かして、Colabの出力セルにも出力できるように対応している。お勧めとのこと。

8位:TensorFlow Lite? 問題なし!

図11 TensorFlow Lite? 問題なし! 図11 TensorFlow Lite? 問題なし!

 TensorFlow Liteは、モバイル端末上で実行できるTensorFlowである。そのTensorFlow LiteのモデルをColab上でトレーニングして、それをモバイル端末にデプロイして使うことは、問題なく可能である。実際これは人気があるやり方、とのことだ。

7位:TPUの活用

図12 TPUの活用 図12 TPUの活用

 Colab上ではCPUだけでなくTPU/GPUも無料だ。しかもドロップダウンから選択するだけで、とても簡単にランタイムのタイプ(CPU)をTPU/GPUに変更できる。

6位:ローカルランタイムの利用(オプション機能)

図13 ローカルランタイムの利用(オプション機能) 図13 ローカルランタイムの利用(オプション機能)

 必要であればローカル環境(ローカルPCやワークステーション、リモートサーバーなど)のランタイム(特にGPU)を使うことも可能だ。機械学習のためのランタイムにはローカルにある強力なハードウェアを使って、ユーザー操作のためのUIにはオンラインのColabを使う、ということである。これも簡単にできる。

 筆者注記:ただし、欠点もある。ローカル環境にはJupyter Notebookをインストールする必要があり、各種ライブラリもローカル環境に自分で用意しなければならない。そのため「すぐに利用できる」というColabのメリットは消えてしまう。あくまで「ColabのUIや使い勝手が、Jupyter Notebookよりも好きだ」という人が活用すべき機能である。

5位:Colabスクラッチパッド

図14 Colabスクラッチパッド 図14 Colabスクラッチパッド

 Colabで新規にノートブックを作ると、「Untitled1.ipynb」などの名前が付けられてGoogleドライブに自動的に保存される。しかし「仮」でノートブックを新規に作ってPythonコードを書いて実行し、使い終わったらわざわざGoogleドライブを開いて(自動作成された)「Untitled1.ipynb」を手作業で消す、ということはよくあるのではないだろうか(少なくとも筆者の場合はよくある)。ここでもし消し忘れると、「Untitled2.ipynb」「Untitled3.ipynb」と増えていってしまう。

 そういう人にはこの機能が役立つ。下記のURLにアクセスすると、「scratchpad」というタイトルの、Googleドライブに自動的に保存されない特殊なColabノートブックが作成される。

 ちょっとしたコードを試して捨てるといった「はぎ取り式メモ帳」(スクラッチパッド)的な使い方をする際にお勧めだ。

4位:ColabのVMにデータをコピー

図15 ColabのVMにデータをコピー 図15 ColabのVMにデータをコピー

 外部ストレージ上のデータを呼び出すよりも、いったん(例えばモデルを訓練する前に)ColabのVM上にデータをコピー&保存して、それを呼び出すようにした方がよい。こうすることで、たとえ1回しかデータを使わないケースでさえも、スピードアップが期待できる。

3位:メモリに注意

図16 メモリに注意 図16 メモリに注意

 Colabを使っていてメモリ(RAM)不足に陥ったことがあれば、特別な「RAM増量ランタイム」へのアップグレード機能に気付いたかもしれない。ちなみに筆者が試したところ、図17のように、(現時点では)通常は12.72GBのメモリが、メモリ不足でセッションがクラッシュした後、[RAM増量ランタイムに切り替えますか?]ダイアログが表示され、それに「はい」と答えると、約2倍の25.51GBになった。

図17 RAM増量ランタイムへのアップグレード手順 図17 RAM増量ランタイムへのアップグレード手順

 しかし増量しても約25GBを超えると再びリソース制限に達するので、最善の方法は、メモリ不足にならないようにすることである。作業時にはメモリに注意を払おう。

2位:作業後はタブを閉じる

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。