Google Colaboratoryの実体を探ってみた

概要

無料でGPU付きの計算環境を提供してくれるGoogle Colaboratoryですが、普段Jupyter Notebook等を利用している身として、まず思うところが「カレントディレクトリの画面がない!」で、次に思うのが、「ノートブックやファイルはどこにあるのか?」ではないでしょうか。要するに、使い方はなんとなくわかるけど、「ここはどこ?私は誰?」の気分になるのです。Google Colaboratoryの実体について、調べるうちになんとなく分かったので、結果を整理したのが本記事になります。

ここはどこ?

Google ColaboratoryではShellコマンドを入力することが出来ますので、これを使っていろいろ調べていきましょう。以下は、記事作成時点(2018年9月)での結果です。Google Colaboratoryに接続すると「こんにちはColaboratory」というノートブックが開かれるはずです。ここでセルを追加して、まずはpwd(現在のフォルダの場所の確認)を打ってみます。

#入力
pwd
#出力
/content

どうやらルート直下のcontentというフォルダにいるようです。contentには何があるのか確認してみましょう。

#入力
ls
#出力
sample_data/

sample_dataというフォルダの他には何もないようです。sample_dataの中身も見てみましょう。

#入力
ls sample_data/
#出力
anscombe.json*                mnist_test.csv
california_housing_test.csv   mnist_train_small.csv
california_housing_train.csv  README.md*

mnistのデータがおいてあります。本当にサンプルデータのだけのようです。この時点で、今開いているノートブックはどこにあるのかという疑問を感じますが、まずは放置して探索を進めます。
次にルートディレクトリに移動して内容を確認してみます。

#入力
cd ..
ls
#出力
bin/         content/  etc/   lib64/  opt/   run/   sys/    usr/
boot/        datalab/  home/  media/  proc/  sbin/  tmp/    var/
colabtools/  dev/      lib/   mnt/    root/  srv/   tools/

どうやら、何かしらのLinuxのコンピュータの中にいるようであることが分かります。Linuxのバージョンやディストリビュータを確認してみます。

#入力
cat /proc/version 
#出力
Linux version 4.14.33+ (chrome-bot@build12-m2.golo.chromium.org) (gcc version 4.9.x 20150123 (prerelease) (4.9.2_cos_gg_4.9.2-r185-2cdcfd30c27f0d836cc477f2ae9f456287fd6b1b_4.9.2-r185)) #1 SMP Sat Aug 11 08:05:16 PDT 2018

んん、ディストリビュータがよく分かりませんね。もう少し確認してみます。

#入力
cat /etc/redhat-release 
#出力
cat: /etc/redhat-release: No such file or directory

レッドハットではない様子。

#入力
cat /etc/debian_version
#出力
stretch/sid

デビアンのようです。versionは不安定版(最新版)のようですね。デビアンならばaptがあるはずということでチェック。

#入力
!apt
#出力
apt 1.5.2 (amd64)
Usage: apt [options] command

apt is a commandline package manager and provides commands for
searching and managing as well as querying information about packages.
It provides the same functionality as the specialized APT tools,
like apt-get and apt-cache, but enables options more suitable for
interactive use by default.

Most used commands:
  list - list packages based on package names
  search - search in package descriptions
  show - show package details
  install - install packages
  remove - remove packages
  autoremove - Remove automatically all unused packages
  update - update list of available packages
  upgrade - upgrade the system by installing/upgrading packages
  full-upgrade - upgrade the system by removing/installing/upgrading packages
  edit-sources - edit the source information file

See apt(8) for more information about the available commands.
Configuration options and syntax is detailed in apt.conf(5).
Information about how to configure sources can be found in sources.list(5).
Package and version choices can be expressed via apt_preferences(5).
Security details are available in apt-secure(8).
                                        This APT has Super Cow Powers.

確かにaptが反応しますね。
つまり、「ここはどこ?」の結論としては、何かしらのDebian系Linuxの環境が提供されていて、その上にいる、ということだと言えます。

私は誰?

また、今使っている「welcome.ipynb」があるか調べてみましょう。

#入力
!find / -name 'welcome.ipynb'
#出力

どうやら「welcome.ipynb」は見つからないようです。また、保存しようとするとGoogleDrive又は、GitHubへの保存となり、このハード上に直接保存できそうにありません。
以上より、以下のことが読み取れます。

  1. ノートブックとリソースは異なるマシンにあること
  2. 「welcome.ipynb」等のノートブックは全ユーザ共通のノートブック?の位置づけで編集が出来ないこと
  3. ノートブックの保存はGoogleDrive上であること

つまり、私は誰?の答えとしては、リソースとは異なるマシンにある共有ノートブックである、ということが言えると思います。

まとめ

Google Colaboratoryの実体について調べてみました。考え方としては、ノートブックの保存先はGoogleDrive、計算資源(リソース)はLinuxOS(デビアン系)が提供されている、ということなのだと思います。生データはGoogleDriveもリソース側どちらでも行けそうですが、趣旨的にはGoogleDriveなのだと思います(以下図のイメージ)。なんとなく分かってきたところで、今後はGoogle Colaboratoryをどんどん活用していきたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA