Google ColabはGoogleが無償で提供している計算環境であるということはこの記事の読者の方ならご存知だと思います。有料版のColab Proが日本でも使えることになったことでも話題になりました。
この記事では、Google Colabをハブにして、Googleが運営する他のサービス、具体的にはGoogle Cloud Storage (GCS)とGoogle Driveの連携について紹介します。
Google Driveをマウントする方法
まず簡単な方からということで、Google ColabからGoogle Driveをマウントする方法について紹介します。
サービスが出始めた頃は、セルにちょっとしたスクリプトを書いて実行する必要があったのですが、現在その操作は自動化されています。
まず、この赤く囲んであるボタンをクリックします。
そうすると、このノートブックがGoogle Driveにアクセスしてもいいのか聞かれますので、「GOOGLEドライブに接続」をクリックします。
少しすると、こちらのように先程まではなかった「drive」が追加されるようになります。これだけでColabとGoogle ドライブをつなげることができました。
Google Cloudと連携する方法
Google Cloud Platform (GCP) は、Googleが提供するクラウドサービスです。その中にはさらに計算を行うためのGoogle Compute Engine (GCE) や、データを貯蔵するGoogle Cloud Storage (GCS) をはじめ、多数のコンテンツに分かれています。
生命医学研究での主な使い方としては、GCEで何かしらの計算を行いその結果をGCSに入れておくということが多いと思います。
そこでこの記事では、このGCSのデータに入れてあるデータをColabから読み書きする方法を見ていきましょう。例として、GCSの中にbiomedidcalhacksというバケットを作り、その中にtest.xlsxというファイルがあります。
まず、ColabとGCPを接続しなければいけません。次のコードをColabで実行します。
from google.colab import auth
auth.authenticate_user()
すると、このような画面が出てきますので、提示されているリンクをクリックします。
Googleのアカウントにログインした後、一番下にある「許可」をクリックすると、コードが出てくるので、それを上の図の「入力」と書かれているところにはりつけEnterキーを押します。
次に、GCPのプロジェクトIDと紐付ける必要があります。プロジェクトIDは次のように調べることができます。
まずGCPの一番上にあるこの赤く囲んだ三角のボタンをクリックして
そうすると、プロジェクトの名前の右側にプロジェクトIDが表示されています。
IDを調べたら次のコードを実行します。
project_id = 'プロジェクトIDを入力'
!gcloud config set project {project_id}
!gsutil ls
これがうまくいけば、そのプロジェクトIDに紐付いているGCSバケットの一覧が表示されることになります。
先頭に「!gsutil」をつける必要はありますが、後は概ね普通のシェルコマンドが使えます。例えばlsコマンド (のGoogle Cloud SDK版) を使うには
!gsutil ls gs://biomedicalhacks/*
とすることでファイルの一覧を取得できますし、GCSのファイルをGoogle DriveにコピーしたければcpコマンドのCloud SDK版を使うことで
!gsutil cp gs://biomedicalhacks/* /content/drive/My\ Drive/test.xlsx
のようにすればこの例だとGoogle Driveの直下にtest.xlsxという名前でコピーすることができます。
もちろん、Google DriveにあるファイルをGCSにコピーすることも可能です。
まとめに代えて
この記事では、Google ColabとGoogle Drive、GCPの連携方法について解説しました。特にGoogle Driveとはマウスクリックだけでつなげることができるようになり、大変便利になりました。
自分で計算環境を用意しなくても、ColabとDriveがあれば多くのことをクラウド上で完結させることができます。Googleが運用するサービスの賢い使い方についてはネットにもいろいろありますし、データサイエンスについて詳しく書かれた「スケーラブルデータサイエンス データエンジニアのための実践Google Cloud Platform」などの良書もあります。
Colabがその真価を発揮するのはちょっとした機械学習・深層学習を行いたいときであり、ColabではGPUが利用できるのでわざわざ自分で高額なGCPを用意しなくてもいいというのが最大のメリットだと思います。
ColabやGCPを使った機械学習モデル構築は生命医学研究者のみならず多くの方々が試みていることであり、「Google Cloud Platformではじめる機械学習と深層学習 」などの解説本も登場し始めています。
Colabを賢く使っていきたいものです。
今日も【生命医学をハックする】 (@biomedicalhacks) をお読みいただきありがとうございました。当サイトの記事をもとに加筆した月2回のニュースレターも好評配信中ですので、よろしければこちらも合わせてどうぞ