弱々理系大学生の日記

自己満弱々理系大学生の日記です

Google Colab でモデルを学習する際のメモ

最近、Google Colabでちょっと重いモデルの学習を行った。

その際に、気になった点がいくつかあったのでメモ。

Colabではモデルの学習時間の比較を行っていけないと思った2つの理由。

(対処法がわかる方は教えていただけると嬉しいです)

colab.research.google.com

90分問題

問題

Colabの有名な特徴の1つ目である、90分問題です。

実行中のノートブックに90分間アクセスしないと、セッションが切れてしまいます

だからといって、いちいち手動でアクセスするのはめんどくさいですね。。。

対処法

こちらの方のコードを参考にしました。

60分に1回、コピペしたURLに飛んでくれるので、途中でセッションが切れることはありません。

ただし、パソコンの電源はきるわけにはいかないのが悲しいですね。

12時間問題

問題

Colabの有名な特徴の2つ目である、12時間問題です。

90分問題を対処しても、最大12時間でプログラムの実行は止まります。

ここに以下のように書いてありました。

ノートブックは、最大存続期間が最長 12 時間の仮想マシンに接続することで実行されます。

これは僕の実体験ですが、12時間も動いたことがないです。

もしかしたら僕のミスなのかもしれませんが、最短3時間弱で実行が終わっていました。

ちょっと大変なモデルを学習させているときは、最大でも7時間弱しか連続で計算できませんでした。

なので、正直僕は12時間という制限を疑っています。

(単に僕が使いすぎで、制限がきついのか、GPUだからか、わかんないな)

あと、12時間問題で実行が終わったあとは、数時間の使用制限があります(GPUだけかも)

あれ、急にプログラムの実行が終わるってことは学習していたモデルも全部パーになっちゃう?!?!

対処法

ちょこちょこモデルを保存しましょう。

なんと!ColabからGoogle Driveにアクセスできます

そこで、1エポックごと等のタイミングでモデルを自分のGoogle Driveに保存することをオススメします。

続きから学習を行うときは、保存したモデルをロードすれば解決します。

GPU2つまで問題

そこまで知られていない問題だと思います。

これは、いくつかのモデルを動かしたい人だけが困っちゃう問題なのですが、

GPUを使って3つのノートブックを実行しようとすると、3つ目が実行されません

使いすぎって怒られちゃいます。

対策はないです。(たぶん)

Proに課金したらいけるんかな。

2つまでで我慢しましょう。

GPUの種類問題

問題

Colabで使用できるGPUは4種類あります。

Colab で利用可能な GPU には、通常 Nvidia K80、T4、P4、P100 などがあります。

と、上のサイトにも書いてあります。

しかし、これらを選択する権利はユーザには与えられません

対処法

僕らユーザができるのは、「!nvidia-smi -L」とうって、GPUを確認することのみです。

学習時間を測りたいなどの人はこのコマンドでGPUを確認することをオススメします。

しかし、Colabでモデルごとの学習時間を比較することはオススメできません

GPUを統一したとしても、です。

理由は次の章です。

メモリの量問題

この問題はあまり見たことがなく、

正直、メモリが問題なのかどうかはわかってないのですが、、、

先日、Colabでいくつかのモデルを学習させていたのですが、

同じモデルを続きから学習させているのに、明らかに学習速度が初回に比べて遅い(または速い)

といった現象がわりと起こりました。(もちろんGPUは同じ)

具体的に1エポックごとの時間を比較してみると、1.5~2倍遅い(または速い)。

原因は正直不明なのですが、

また、追加のメモリを備えた仮想マシンが必要になりそうだということが Colab で検出されると、自動的にメモリの割り当てられる場合があります。

とある(原文そのまま)ので、おそらくメモリが割り当てられたときが速く、そうでないときが遅いのかなと思います。

最後に

なんかColabをディスったみたいな記事になりましたが、大好きですColab!

無料でこんなにGPUを使えるのはありがたすぎる!!

GPUがのったパソコンを買おうかと考えた時がありましたが、Colab Proに課金した方が確実にコスパ良さそうな気がしますね!

見てくれてありがとうね!