Google Colabプラン比較 (Kaggleコンペ用)

はじめに

kaggleのコンペ挑戦を始めてみました。

KaggleのCodeインスタンスではGPUの時間上限があるので、

GPUを手軽に使用できるGoogle Colaboratoryを使用できないか調べてみました。

 

※記載している情報に誤りがあることがあります。

もし情報の誤りを発見されましたら コメントなどで教えていただけますと助かります。

 

 Google Colaboratoryのプラン比較

 調べてみたところ、次のような構成のようです。

 

Colab

Colab Free

Colab Pro

Colab Pro +

GPU

K80(12GB)

K80(12GB) , T4(16GB) and P100(16GB)

K80(12GB) , T4(16GB) and P100(16GB)

runtime

12hr

24hr

24hr

background

×

×

Session Timeout

30min-90min(ばらつきあり)

30min-90min(ばらつきあり)

30min-90min(ばらつきあり)

Mem(DRAM)

16GB

16GB(標準)/32GB(ハイメモリVM

16GB(標準)/52GB(ハイメモリVM

Disk

107.77GB(CPU/TPU)/68.40GB(GPU

225.89GB(CPU/TPU)/147.15GB(GPU

?(調べて出てこなかった)

Terminal

×

Cost

Free

月額1072円 ($9.99 USD)

月額5243円  ($49.99 USD)

 

参考にしたページ:

https://towardsdatascience.com/google-colab-pro-is-it-worth-49-99-c542770b8e56

https://webbigdata.jp/study/post-9927

https://upura.hatenablog.com/entry/2021/08/12/144546

 

考察

コンペにはColab Pro以上は最低限必要のようです。

Kaggleの画像コンペでは訓練/検証データが100GB前後である場合が多いので、Colab Free容量不足のため厳しいです。

・教示データ=127.45GB  :https://www.kaggle.com/c/rsna-miccai-brain-tumor-radiogenomic-classification

・教示データ=98.27 GB : GLR2021 (https://www.kaggle.com/c/landmark-recognition-2021)

 

まとめ

繰り返しコンペにトライする場合、Google Colaboratory Proプランが良いようです。

コンペのsubmissionとコードの記録は履歴を残しておきたいので、次のような感じに使い分けるとよいかもです。

 ◆コンペ開始 (データ入出力やEDAの実施)

 → Kaggle Code

  いろんな方のCodeをその場で実行して感触をつかみます。EDAの段階ではpandasやsklearnでのデータ可視化がメインのため、GPUは不要。

◆コンペ中盤 (モデル試作やハイパーパラメータ試行錯誤)

 → Google Colab Proで実施。githubやGoogleDriveに記録を残す。

◆Submission登録

 → Kaggle Code (Submissionとコードの履歴をセットで残すため)

 

 

参考情報

比較1: Kaggle Codeインスタンス

KaggleのCodeインスタンスは制約があるもののとても使いやすいですね。

<メリット>

・コンペデータをダウンロードする必要がない。

・KaggleのCodeに来歴をつけて残せる。Input/Outputも残せる。

<デメリット>

・20分でセッションが切れる。(openコマンドで対処可能かも?試していないです)

・1か月の利用時間上限がある(41hr/月)。

GPUインスタンスは同時に1つまでしか実行できない。

 

比較2: AWS EC2 (G4dn.xlarge)

 低価格でインスタンスを用意できるAWSを使用した場合のコストを簡単に見積ってみました。

 月10回(週2-3回)の頻度で12hr/回実行すると、g4dn.xlargeでは

 10回/月x12hr/回x0.71USD/hr = 85.2 USD/月 (オンデマンド/東京リージョン)

 スポットインスタンスを使用して、なんとかColab Pro+と同じぐらいのコスト。

 

  <メリット>

 自前で作成したカスタムAMIを使用できる。

 インスタンスを停止させることで必要な時に簡単にインスタンスを起動できる。

 

 <デメリット>

 インスタンスを多重に起動するとコストはN倍化。

 Colab Proプラン以上は同時に複数のNotebookを起動できるので、AWS EC2より得な気がします。

 

参考にしたページ:

https://aws.amazon.com/jp/ec2/instance-types/g4/

https://aws.amazon.com/jp/ec2/pricing/on-demand/