Python環境構築(Google Colab)

環境構築というよりは、Pythonの開発環境としてのGoogle Colaboratoryの紹介となります。手軽に使えること、GPU環境が利用できること、制限はありますが無料で使えること。Pythonを用いた実行環境としてとても嬉しい環境です。

Google Colaboratoryに利用開始

利用にはGoogle アカウントが必要です。まだ持っていない方は取得してください。Gmailを利用している方はすでにアカウントを持っていますので、そちらを利用しましょう。

Google Colabにアクセスします。Googleにログインしていない場合はログインが必要です。色々と利用方法の説明がありますので参照してください。pythonのnotebookを使ったことがある方でしたら、colab上でnotebookの実行を試してみてください。

Google Colaboratoryとは

Google ColaboratoryとはGoogleのクラウド上で動作しているDockerコンテナです。試しにNotebook上で以下のコマンドを実行してみてください。色々と情報を得ることが出来ます。

%%bash
echo === Dockerコンテナの確認 ===
ls -la /.dockerenv
echo === カレントディレクトリ ===
pwd
echo === ユーザ名 ===
whoami
echo === Linuxディストリビューション ===
cat /etc/issue
echo === カーネル ===
uname -a
echo === HDD ===
df -h
echo === メモリ ===
free -h
echo === CPU ===
cat /proc/cpuinfo

以下の情報が返ってきます。

=== Dockerコンテナの確認 ===
-rwxr-xr-x 1 root root 0 Nov 26 12:59 /.dockerenv
=== カレントディレクトリ ===
/content
=== ユーザ名 ===
root
=== Linuxディストリビューション ===
Ubuntu 18.04.5 LTS \n \l

=== カーネル ===
Linux 9f37c3f2bf59 5.4.104+ #1 SMP Sat Jun 5 09:50:34 PDT 2021 x86_64 x86_64 x86_64 GNU/Linux
=== HDD ===
Filesystem      Size  Used Avail Use% Mounted on
overlay         108G   42G   67G  39% /
tmpfs            64M     0   64M   0% /dev
tmpfs           6.4G     0  6.4G   0% /sys/fs/cgroup
shm             5.8G     0  5.8G   0% /dev/shm
/dev/root       2.0G  1.2G  821M  59% /sbin/docker-init
tmpfs           6.4G   36K  6.4G   1% /var/colab
/dev/sda1        81G   46G   36G  57% /etc/hosts
tmpfs           6.4G     0  6.4G   0% /proc/acpi
tmpfs           6.4G     0  6.4G   0% /proc/scsi
tmpfs           6.4G     0  6.4G   0% /sys/firmware
=== メモリ ===
              total        used        free      shared  buff/cache   available
Mem:            12G        516M         10G        1.1M        1.8G         11G
Swap:            0B          0B          0B
=== CPU ===
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 79
model name	: Intel(R) Xeon(R) CPU @ 2.20GHz
stepping	: 0
microcode	: 0x1
cpu MHz		: 2199.998
cache size	: 56320 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat md_clear arch_capabilities
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa
bogomips	: 4399.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 79
model name	: Intel(R) Xeon(R) CPU @ 2.20GHz
stepping	: 0
microcode	: 0x1
cpu MHz		: 2199.998
cache size	: 56320 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat md_clear arch_capabilities
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa
bogomips	: 4399.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

notebookの保存場所

Google Colaboratoryを始めるとGoogleドライブ上にColab Notebooksというフォルダが作成されます。そして、作成したnotebookはデフォルトでそこに保存されます。

また、ドライブ上のデータもnotebook上で利用できますので、大量のデータを利用する場合はこちらを利用できます。ただ、ドライブへのアクセスは時間がかかります。一方、Colabのローカルドライブへのアクセスは早いのですが、容量が少ないのと、あくまでも一時的なRAMとなりますのでストレージの使い方には十分注意が必要です。

ストレージの利用

Google Colaboratoryは前述の通り、Dockerコンテナとして動作します。Notebookを開いた際にインスタンス化され、一定時間で解放されてしまいますので、ローカルのストレージは揮発性となります。永続的に保存したいデータはGoogleドライブをマウントして、そちらに保存するようにしましょう。Nootbookで以下のコマンドを実行し、リンクをクリックしてGoogleアカウントでログインしてマウントします。

from google.colab import drive
drive.mount('/content/drive')

実行します。

表示されたURLをクリックしてGoogleアカウントでのログインを行います。

表示されているコードをコピーします。(グレーでマスクしている箇所にコードが表示されます)コピーしたコードを「Enter your authorization code:」の箇所に貼り付けてEnterキーを押下します。

これでマウント完了です。マウントしたドライブのPathはフォルダをクリックして表示されるメニューで「パスをコピー」後にNotebookで貼り付けると簡単にアクセスできます。

Google Colaboratoryの注意点

Google ColaboratoryはVMインスタンスとして動作しています。無料/有料に関わらず一定の制限があるので注意が必要です。

  • 一定時間操作がない場合は自動的にインスタンスが破棄されます。長い計算を行う際は、自動読み込みを行うプラグインを利用してください。
  • ローカルストレージは揮発性です。インスタンスの破棄と共になくなります。計算結果等、永続的に保存したい場合は保存場所に注意してください。
  • 足りないパッケージはインストール出来ますが、接続時にVMインスタンスは初期状態となってますので、接続後に毎回インストールが必要です。
  • その他、詳細な制限についてはドキュメントを参照してください。

まとめ

無料で十分使えます。ただ夜中の混んでいる時間はGPUが使えないことが多いです。GPUをどうしても使いたい場合はProへのアップグレードをお勧めします。自分でGPU環境を揃えるよりはコスパは良いと思います。さらに上のPro+というプランもありますので、それぞれ自分にあったプランを選んでください。

ディープラーニングで使っているとGoogleドライブもデフォルトの容量では全然足らなくなるので、こちらもアップグレードが必要かもしれません。