colab proを使ってみた

1ヶ月だけcolab proを使ってみたのでメモ

https://jsapachehtml.hatenablog.com/entry/2021/06/16/094213

こちらの記事で少し書いたが、学習に数日かかるものだったため再実行の頻度を下げようと思って一度使ってみることにした

colaboratoryの無料版、有料版の比較は既にweb上にたくさん情報があるので詳細な説明はそちらを見た方がよいが、今回は実際に使ってみた感想ということで自分な理に気づいた点をメモとして残しておく

まずはざっくりした感想としては、とても良いものでした、ということになる

理由としては

  • ほぼ途切れることなくgpuを利用可能
  • 使えるリソースがスケールアップ
  • notebookでつなげてるマシンに対してブラウザ上でcliによるアクセスが可能

ほぼ途切れることなくgpuを利用可能

まず強制的に途切れるまでの利用時間が12h -> 24hと2倍になる。ただ、もっと大きなメリットはそもそも途切れなくなること。最近はinteractive利用のチェックが以前より厳しくなったようで、3時間くらい経つとチェックが入る(ログイン時のロボットじゃないですよね?のやつ)

これはjavascriptで定期的にボタンを押すようにしてあっても、定期的にページのリロードをするようにしておいても変わらず確認された(私が知らないだけで回避する方法はあるのかもしれない)

colab proにした場合、私が使ってる間はこんな感じだった

  • interactive利用のための確認は一度も入らなかった
  • pcがスリープに入ってしまったことがあったが復帰したらまだ実行中だった
    • 少なくとも1時間以上は経ってた
    • 半日以上経ってたことも一度あったさすがにそのときは切れていた
  • スリープにならないようにした上でjavascriptから定期的にボタンを押すようにしておいたところ24h経つまで切れなかった
    • その後すぐに初期化して再実行したところ、同じようにそのまま24h切れなかった
    • 無料の場合、12hぶっ通しで使った後は少なくとも数時間使えなくなったはず
  • 別のnotebook(gpuモード)も開いてそちらでもgpuを使って実行したところ、2~3日目のどこかで使用上限のため~のメッセージで切れた
    • ただし、そのあと1時間くらいしたら実行できるようになった

使っていて思ったが使用上限の判定はおそらくこんな感じなのではないだろうか

  • 使用可能時間が単位時間毎にn秒回復する
    • 実際は秒単位とかで細かく見てるはずだが(gcpがそうなので)ここではわかりやすく1時間毎と考えておく
  • colab proの場合、3600 <= n <= 7200となっているため2つ以上同時に使っている場合は枯渇する
    • ただし、3600 <= n なのでまたすぐに使えるようになる
  • 無料版の場合、n < 3600のためgpu一つの利用でも枯渇し12h使った後は回復の時間が必要になる

基本的に24h毎に再実行する前提ならば、それ以外は途切れることなく実行可能であるように見えた。ただし、24h実行しっぱなしを続けたのはせいぜい3~5日間で、別の学習を始める前は開始までにある程度間があいていた。なので本当に24hを途切れることなく続けた場合はどこかで上限にひっかかるときが来るかもしれない。

使えるリソースがスケールアップ

colab proの場合は無料版に比べて以下のように使えるリソースが良くなっている

  • gpuは基本的にP100 or V100のどちらか
    • 大抵P100でたまにV100というイメージ
  • メモリとストレージは無料版の2倍分

なので大きめのデータセットを試したい場合はcolab proにすることで可能になるものがあるはず

ブラウザ上でcliによるアクセスが可能

無料版だとnotebookを実行している際は他の操作ができないため、以下のようなときに困ったことがあった

  • コンソールには出してない別のログが確認したい
  • 出力ファイルが上書きされていく実装の場合、現状のものを取り出してdriveに保存したい

colab proだと画面左下のアイコンからcliを起動できコマンドラインによる操作が別途可能だったため、上記のような際に簡単に解決できる

まとめ

上記を考えるとこれで$10であれば十分すぎると感じた

実際同じ用途をgcp上でノードを立てて行う場合、P100であればプリエンプティブの料金でも$0.43/hourなので1ヶ月動かしておけたとしてgpuだけで$0.43 x 24 x 30 = $309.6(この他にインスタンス料金などもかかる)

なので1 gpu、2 cpu、メモリとストレージ容量の制約で問題のない規模の学習を行うなら圧倒的にお得だし準備の手間もかからない。そして、おそらく学習を試してみるという程度であれば間違いなくこの規模に収まるので、ちょっと時間がかかる学習などやってみたい場合にとてもよい選択だと思った