概要
無料で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への保存となり、このハード上に直接保存できそうにありません。
以上より、以下のことが読み取れます。
- ノートブックとリソースは異なるマシンにあること
- 「welcome.ipynb」等のノートブックは全ユーザ共通のノートブック?の位置づけで編集が出来ないこと
- ノートブックの保存はGoogleDrive上であること
つまり、私は誰?の答えとしては、リソースとは異なるマシンにある共有ノートブックである、ということが言えると思います。
まとめ
Google Colaboratoryの実体について調べてみました。考え方としては、ノートブックの保存先はGoogleDrive、計算資源(リソース)はLinuxOS(デビアン系)が提供されている、ということなのだと思います。生データはGoogleDriveもリソース側どちらでも行けそうですが、趣旨的にはGoogleDriveなのだと思います(以下図のイメージ)。なんとなく分かってきたところで、今後はGoogle Colaboratoryをどんどん活用していきたいと思います。