Google Colaboratory の使い始めに調べたこと。仮想マシン/制限/シェルコマンド/ディレクトリ/GitHubとの連携
Google Colaboratory とは
- ブラウザ上で Python を記述、実行できる
- GPU を利用できる
- テキストを マークダウン で記述できる
- コードや結果を簡単に共有できる
- 制限はあるが
無料
で利用できる
仮想マシン
コードは 仮想マシン 上で実行される
- なにかしら処理を行うと
仮想マシン
の割り当てがされる - コードの処理は仮想マシン上で実行され、ファイルを生成すると仮想マシン内に生成される
-
仮想マシン
が解放されると生成されたファイルは失われるため、Google Drive をマウントし、そこでファイルを生成するなどで永続化する必要がある
GPU, TPU を利用する
[ランタイム] > [ランタイムのタイプを変更] をクリックし、[ハードウェア アクセラレータ] を GPU または TPU に設定する
制限(無料で利用の場合)
ランタイムの切断(仮想マシンのリセット)
- 仮想マシンを起動して
12
時間 経過する - アイドル状態(操作をしない状態が一定時間)が続いた場合
上記条件でランタイムが切断(仮想マシンのリセット)が起こり、pip でセットアップしたものや生成したファイルなどは無くなる。
再接続 をするとすぐに利用できる。
公式: Colab ではノートブックはどのくらいの時間動作しますか?
GPUの使用の制限
GPUを使用してしばらく時間経過すると制限に達して GPU の利用ができなくなる。
ある程度時間が経過すると再び利用できるようになる。
メモリ・ディスクの制限
割り当てられた仮想マシンによって変動する
シェルコマンド
!
をつけるとシェルコマンドの実行が可能
!pwd
/content
ディレクトリ
カレントディレクトリ
/content
が カレントディレクトリ になっている
📁 をクリックすると /content
以下が表示される
Google Drive のマウント
以下を実行すると '/content/drive' に Google Drive がマウントされる
from google.colab import drive
drive.mount('/content/drive')
GitHubとの連携
Google Colaboratory → GitHub リポジトリ
Google Colaboratory の ファイル(ipynb) を GitHub リポジトリ に保存することができる
-
GitHub で リポジトリ を作成する
Add a README file
にチェックを入れて README.md を生成するようにしておく。 ブランチが作成されていないと保存ができない。 -
Google Colaboratory での作業
-
[ファイル] > [GitHub にコピーを保存] をクリック
初回は GitHub への承認が必要になります。デフォルトでは
パブリックリポジトリ
のみの権限になるため、プライベートリポジトリへ保存する場合は追加の設定が必要になる。
-
設定を行い保存のする
Colaboratory へのリンクを含める を有効にすると GitHub から Google Colaboratory を開くリンクが追加される。
-
プライベートリポジトリ へ保存できるようにする
- Google Colaboratory で ⚙ をクリックして、GitHub の設定で
プライベートレポジトリと組織にアクセス
を有効にする
- GitHub の承認
GitHub への プライベートリポジトリ
の権限の承認を行う。
GitHub リポジトリ → Google Colaboratory
GitHub リポジトリ にある ipynb ファイルのコピーを Google Colaboratory で開くことができる
ダイアログから選択する
Google Colaboratory の [ファイル] > [ノートブックを開く] または http://colab.research.google.com/github にアクセスすると GitHub から開くダイアログが表示される
直接開く
https://colab.research.google.com/github/takeshitayy/google-colaboratory-test/blob/main/Untitled0.ipynb のような URL を開くと、コピーされた状態で開くことができる。
以下のようなバッジを設置して、クリックしてもらうことで簡単に共有することが可能になる。
バッチのソースコードは以下
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/takeshitayy/google-colaboratory-test/blob/main/Untitled0.ipynb)
リンクをクリックするとGoogle Colaboratory で開く。
仮想マシンのスペックの確認
OSの確認
!cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
CPUの確認
!cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU @ 2.30GHz
stepping : 0
microcode : 0xffffffff
cpu MHz : 2299.998
cache size : 46080 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 invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt arat md_clear arch_capabilities
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs mmio_stale_data retbleed
bogomips : 4599.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 : 63
model name : Intel(R) Xeon(R) CPU @ 2.30GHz
stepping : 0
microcode : 0xffffffff
cpu MHz : 2299.998
cache size : 46080 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 invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt arat md_clear arch_capabilities
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs mmio_stale_data retbleed
bogomips : 4599.99
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
GPUの確認
!nvidia-smi
Fri Apr 21 07:09:44 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12 Driver Version: 525.85.12 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |
| N/A 46C P8 9W / 70W | 0MiB / 15360MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Discussion