機械学習エンジニア界隈で話題沸騰となっているGoogle Colaboratory(グーグル・コラボレイトリー)。本記事では概要とGoogle Colabの知っておくべき基本的な使い方をまとめました!
すでに機械学習をやっている方や、これから機械学習を学んでみたいと考えている方で、下記のような事を感じたことはありませんか?
「訓練やデータ処理をやるのにローカルPCだと処理に時間がかかりすぎる」
「機械学習用にクラウド環境を立てたけど…思ったより費用が高い」
「機械学習は色々とライブラリが多くて環境構築がしんどい」
もし一つでも当てはまるものがあれば、Google Colabがそんな悩みを解決してくれます!機械学習の開発環境の新基準となる可能性も高いGoogle Colab、概要や基本的な使い方をみていきましょう。
Google Colabの利用で環境構築が不要、オンラインで実行が可能な機械学習入門チュートリアルを公開中!機械学習の世界へ飛び込んでみませんか?
この記事の目次
Google Colaboratoryとは?
Google Colab(略式した呼称でグーグル・コラボと読みます)とは、教育や研究機関へ機械学習の普及を目的としたGoogleの研究プロジェクトの一つでです。
端的にまとめると、Google Colabとは、Jupyter Notebookを必要最低限の労力とコストで利用でき、ブラウザとインターネットがあれば今すぐにでも機械学習のプロジェクトを進めることが可能なサービスです。(参照:Jupyter Labとは?)
Google Colabのメリット・デメリット
Google Colabのメリットとデメリットについて簡潔にまとめてみました。
- 環境構築がほぼ不要
Google Colaboratoryはジュピター・ノートブックをクラウド上で動かしますが、PythonやNumpyなど、機械学習で必要なほぼ全ての環境がすでに構築されています。必要なのはブラウザのみで、すぐに機械学習を始めることが可能です。 - チーム内での共有が簡単
Google Colabで書いたコード(ノートブック)は、グーグルドライブで保存されます。ですので、チーム内でノートブックの共有などが非常に簡単で、かつ権限管理などGoogle Drive上で行えるので安心でもあります。 - GPUを含めて無料で利用が可能
そうなんです、Google Colabがこれだけ話題になったのも、なんとGPU(Tesla K80 GPU)が無料で使えるためです。機械学習では大規模なデータを、高負荷がかかる計算をすることが多々あります。自身のパソコンで処理を行う場合、訓練に12時間かかることも多々ありますが、Google ColabのGPU環境を使うことで、時間短縮が可能です。・・・しかも無料で使えるんです。
上記の3つのメリットを考えると、Google Colabを使わない理由がないように感じますが、逆にデメリットはあるのか考えてみました。
- データの読み込みなどで特殊な処理を覚える必要がある
今までローカルで使っていたデータセットなどを読み込む際に、一つ処理を加えてあげる必要があります。Google DriveのAPIを利用したり、PyDriveなどのラッパーを利用してデータを読み込む必要があります。難しい処理ではありませんので、一度覚えてしまえば特に問題にはなりません。 - Jupyter Notebookと使い勝手が多少異なる
これもデメリットという訳ではありませんが、すでにJupyter Notebookに慣れ親しんだ方だと…少し最初は戸惑うことがあるかと思います。ショートカットキーの設定を変更したり、セルの追加や削除などの基本的な操作方法に慣れる必要があります。
デメリットを考えたのですが、正直、あまりデメリットと思える部分がありません!上記で書いたデメリットも「強いて挙げるのであれば」程度で、全く支障にはなりません。
Google Colabを使ってみよう
では、早速Google Colabを使ってみましょう。まずはGoogleアカウントにログインをして、Google DriveでGoogle Colab用の新規フォルダーを作成しましょう。
次は、作成したGoogle Drive上のフォルダーとGoogle Colabの連携をしてあげましょう。下のキャプチャのように、フォルダ名のドロップダウンをクリックして「アプリで開く」>「アプリを追加」をクリックしましょう。
次画面のポップアップの検索窓で「colaboratory」と調べると、Google Colabのアプリが結果で絞り込みが可能です。こちらの「接続」をクリックしましょう。
これで新規作成したGoogle DriveのフォルダーとGoogle Colabの連携が完了しました。では、早速、Google Colabで新しいノートブックを作成してみましょう!(*ノートブックとはJupyter Notebookをさしており、このノートブック上でコードを書いたり動かして、機械学習を行います。)
「右クリック」 > 「その他」>「Colaboratory」で新規ファイルを作成しましょう。
クリックをするとポップアップ画面でGoogle Colabが立ち上げります。新規作成したノートブックですが、名前を変更してあげましょう。
では、次のセクションではGoogle Colabの基本的な操作方法を一緒にやってみましょう。
Google Colabのセルの基本操作
ノートブックも無事にGoogle Colab上で立ち上がりましたので、次は基本的な操作方法を一緒にやってみましょう。
こちらのメニューバーですが、Google Colabのタイトル直下で見つけることが可能です。Jupyter Notebookですが、セル単位でコーディングを行います。セルには主に「コード」と「テキスト」の二種類あります。(本家のJupyter Notebookではcode、Markdown、Rawの三種類あります)
上の図のメニューバーでセルの追加や移動が可能です。
- コードボタン – 新しいコードセルをノートブックに追加(赤枠)
- テキストボタン – 新しいテキストセルをノートブックに追加(青枠)
- 上下矢印 – 選択されたセルの上下の移動(緑枠)
次にセル周りの操作方法について簡単にみていきましょう。下記のセルですが、「コード」のセルとなっています。新規でノートブックをColabで立ち上げるとデフォルトで最初の一行目として用意されているはずです。
- 各セルにはセルの実行ボタンがついています。セルの入力欄にて記載したコードですが、こちらのボタンをクリックすることで実行することが可能です。またはショートカットキーでSHIFT + ENTERでも可能です。
- 右側にはセルのその他の操作がまとまっています。本家のJupyterにはありませんでしたが、セル毎にコメントの挿入が可能です。これはチーム内で作業を行うときは便利ですね!
では、次は「テキスト」のセルも確認してみましょう。テキストのセルですが、チームメンバー内でコードを共有する際に活用します。
使い方はそれぞれですが、一般的な流れとして、コードの説明やデータの処理の特筆事項、また自分へのメモなどのために利用します。時には外部リンクを参照したり、画像をつけて説明をしたりと、後ほどコードを見返した時に短時間でミスなくコードの内容を把握するために記載を行います。
では、次はGoogle Colabの最大の目玉のGPUの環境設定を行ってみましょう!
Google ColabでGPUを使ってみよう
Google Colabで無料で使える超高性能なGPUの使い方についてみていきましょう。Google Colabで使えるGPUですが、Nvidia社のTesla K80 GPUの利用が可能です。
そもそもGPUって何?とお考えの方もいるかも知れませんので、簡単に説明をします。GPUとはGrapics Processing Unitの略で、画像処理などの高負荷な演算処理などで利用されています。CPUよりも多数のコアを搭載しており、機械学習などの大規模データで負荷の高い演算を行う際にも使われています。
市場には様々なGPUが出回っており、手頃なもので言えば数万円で購入も可能です。高性能な高価なGPUだと数十万円以上することもざらにあり、個人で用意するには少しハードルの高い環境な訳です。
そんな機械学習エンジニアが憧れるGPUが…なんと無料で使えてしまう訳です!
Google Colabですが、立ち上げのデフォルトの場合はCPUとなっています。設定を変更しなくてはGPUの利用が出来ませんので、設定方法を一緒にやってみましょう。
ノートブックのメニューバーから「編集」>「ノートブックの設定」をクリックしましょう。こちらの画面でGPUの選択が可能ですので、GPUを選択しましょう。また、ランタイムのタイプではPython2とPython3の設定も可能ですので、こちらもPython3を選択してあげましょう。
実際にGPUが走っているかどうか、下記のコードを実行することで確認が可能です。下のコードをご自身のGoogle Colabのコードセルに入力して、実行してみましょう。
# TensorFlow経由でデバイス設定の確認が可能です from tensorflow.python.client import device_lib device_lib.list_local_devices()
ご覧の通り、GPUが動いているのが確認できますね!ノートブックを立ち上げた際のデフォルトはCPUですので、高負荷な処理などを行う際はGPUへ設定を変更してあげましょう。
ノートブックの共有
次はGoogle Colabの便利な使い方の一つでもある「共有」についてです。すでにGoogle Driveを使ったことがある方であれば、使い方は一緒ですので本セクションは飛ばしても問題ないかと思います。
ノートブックの共有ですが、Google Colaboratoryの右上に「共有」のメニューがありますので、こちらをクリックしましょう。こちらで、Eメールアドレスごとに共有権限の管理が行えます。
共有メニューの右下の「詳細設定」をクリックすることで、より詳細の確認が可能です。こちらで、どのユーザーがどのような権限を持っているのかの詳細が確認です。センシティブな情報などを扱うプロジェクトの場合は、しっかりノートブックの権限を確認しておきましょう。
Google Colabでライブラリの追加インストール
冒頭でもお話した通り、Google Colabには機械学習に必要なライブラリがインストールされており、すぐに機械学習が始められる環境が構築されています。参考までにですが、下記のライブラリは全てインストール済みです。
- numpy(Numpy 使い方講座)
- matplotlib(Matplotlib 使い方講座)
- pandas(Pandas 使い方講座)
- seaborn
- Tensorflow
下記のコードをGoogle Colab上のセルで実行すると、インストールされている全てのライブラリとそのバージョンの確認が行えます。
# Google Colabでインストールされているパッケージの確認 import pip installed_packages = pip.get_installed_distributions() installed_packages_list = sorted(["%s==%s" % (i.key, i.version) for i in installed_packages]) print(installed_packages_list)
人気の高いライブラリはインストールされていますが、それでも、プロジェクトに応じて、追加でライブラリのインストールを行う必要が出てきます。素晴らしいことにGoogle Colabでは、追加のライブラリのインストールも非常に簡単に行えます。
では、実際にGoogle Colabにパッケージを追加インストールしてみましょう。私がColabを使っている際に、実際にインストールしたパッケージの一つに「 pandas_profiling 」がありました。 pandas_profiling ですが、 pandas のデータフレームを解析して、様々な角度からデータを解析してくれる pandas の追加パッケージとなっています。
今までは初めて扱うデータは探索的データ解析(EDA)を自分で行なっていましたが、最近は pandas_profiling で一発でやってしまっています。(参考:探索的データ解析とは?)
では、実際にこのパッケージを追加でインストールしてみましょう。下記のコードをセルで実行するだけ、インストールが行えます。
# Google Colabにpandas_profilingを追加でインストールする !pip install pandas_profiling
これで、 pandas_profiling がcolab上のノートブックでも利用が可能になります。
パッケージの特定のバージョンへ変更する
次はすでにインストール済みのパッケージのバージョンの変更方法をやってみましょう。Googleの機械学習ライブラリ「TensorFlow(テンソルフロー)」を例に実行してみましょう。
まずはTensorFlowのバージョンの確認です。
# 現在インストールされているバージョンの確認 !pip show tensorflow
Name: tensorflow
Version: 1.2.0
Summary: TensorFlow helps the tensors flow
Home-page: http://tensorflow.org/
Author: Google Inc.
Author-email: opensource@google.com
License: Apache 2.0
Location: /usr/local/lib/python3.6/dist-packages
Requires: markdown, protobuf, six, wheel, bleach, backports.weakref, numpy, html5lib, werkzeug
上記が現在のバージョンとなっていますので、こちらを最新のバージョンに更新してみましょう。
# TensorFlowの最新バージョンへ更新 !pip install --upgrade tensorflow
Found existing installation: tensorflow 1.2.0
Uninstalling tensorflow-1.2.0:
Successfully uninstalled tensorflow-1.2.0
Successfully installed tensorflow-1.7.0
現行のTensorFlow1.7.0へ更新が行われました。次は、チーム内で統一して使っているバージョン1.2.0へ戻してあげましょう。
# ライブラリの特定のバージョンへ変更する !pip install tensorflow==1.2
Found existing installation: tensorflow 1.7.0
Uninstalling tensorflow-1.7.0:
Successfully uninstalled tensorflow-1.7.0
Successfully installed markdown-2.2.0 tensorflow-1.2.0
チームでプロジェクトを行う際などは、ラリブラリのバージョンを統一しておく必要があります。またローカルの環境とGoogle Colabの環境が若干異なると、不要なエラーやミスに繋がりかねません。頻繁に使っているライブラリのバージョンは足並み揃えておくと良いかと思います。
データをGoogle Colabで読み込む
次は自身のデータをGoogle Colabで使う操作方法をやっていきましょう。今回はローカルのコンピューターからファイルを直接アップロードする方法と、Google DriveからPyDrive経由でデータを取得するためのユーザー認証をやってみましょう。
ローカルのファイルをGoogle Colabに直接アップロードする方法
こちらのエラーですが修正されたようです。現在はFirefox、Chromeの両ブラウザーで問題なくファイルのアップロードが行えます。(追記:2018年5月22日)
まずは下記のコードをGoogle Colabで実行してあげましょう。
# ローカルファイルを直接アップロードする from google.colab import files uploaded = files.upload()
ノートブックの作成者に関する警告メッセージを承諾すると、下記のようにGoogle Colabのセル上にファイルアップローダーの入力フォームが現れます。「ファイル選択」をクリックして、使いたいファイルをアップロードしてあげましょう。
今回は test.csv というファイルをPCからアップロードしました。下記のようなメッセージが出てくれば、正常にアップロードが完了しています。念のため次のセルで ls を実行してみると、 test.csv が新しくディレクトリーに追加されているのが確認できます。
Google DriveとColabの連携する方法
さて、次はGoogle Driveに格納しているファイルをAPI経由で使うための認証作業をやってみましょう。認証後はGoogle DriveのAPI通りにコードを書くことで、ファイルがColabで使えるようになります。
# ユーザー認証 from google.colab import auth auth.authenticate_user()
上記のコードを実行すると下記のようにGoogleのユーザー認証を行うURLが生成されます。こちらをクリックすると、次画面でGoogleアカウントへのログインフォームが出てきます。そちらで、使用したいGoogle Driveのアカウントを選んでログインをしましょう。
ログインが完了すると、Google Clund SDKのリクエスト確認の画面へ遷移します。内容をしっかりとご確認いただいて、問題なければ「許可」をクリックします。
アクセスの許可を与えると、下の画面のように認証用コードが発行されます。こちらのコードをコピーして、Google Colabの「Enter Valification Code」の欄に入力をすることで、Google Driveとの連携が行えます。
これでGoogle Driveとの連携が完了です。あとはGoogle DriveのAPIをインポートして、ファイルIDを指定してファイルを読み込むことが可能です。詳しくは、こちらの公式ドキュメントにもサンプルコードがありますのでご参照ください。
まとめ
いかがでしたでしょうか?今回はGoogle Colaboratoryの概要と基本的な使い方についてまとめました。実際にcodexaの機械学習チームでも個人的に利用する機会が増えており、特に大量の画像を処理する際などの負荷が高い処理に使われています。
また、Google Colabですが、初期の環境設定の煩わしさがないため、機械学習の初学者にもってこいのサービスだと思います。機械学習入門チュートリアルを公開していますので、是非Google Colabで機械学習の世界へ飛び込んでみましょう!
以上となります!