orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

Google Colabが素晴らしい、本当に。

f:id:orangeitems:20190820141454j:plain

 

機械学習の日々

このところ、機械学習にドハマりしています。

手持ちのドスパラのパソコン 、具体的にはCore i7-8700KとGeForce GTX1070Tiの組み合わせを駆使して、トレーニングをぐりぐりまわしています。

夏休みの間はほぼこればかりに時間を費やしていたのですが、途中でやっていて気が付きました。Google Colabという選択肢があったのだと。

Google Colabについては、下記の記事を推薦します。技術的には下記通りやればすぐ使えるようになるはずです。

 

www.codexa.net

機械学習エンジニア界隈で話題沸騰となっているGoogle Colaboratory(グーグル・コラボレイトリー)。本記事では概要とGoogle Colabの知っておくべき基本的な使い方をまとめました!

 

yokonoji.work

「Pythonの開発環境をどうやって構築するか?」この答えが出ましたので、内容をまとめておきたいと思います。環境構築で迷っている方は参考にしてください。

 

今回は、Google Colabを使って一週間ほど経ったのでその特徴をまとめておきたいと思います。

 

Google Colabの特徴

上の記事は読んでいただいたことを前提にそのすばらしさを語ります。

GeForce GTX1070Tiが非力だとは思わないんですが、長時間廻すとファンがブウォーって音を立てるので電気代も不安だし何気に少し騒音を感じます。機械学習は長時間のトレーニングこそ肝なので困っていました。

そこでこのGoogle Colab。12時間の利用限定ですが、「NVIDIA Tesla K80 12GBか、NVIDIA Tesla T4 16GBのどちらか」がクラウドでタダで使えてしまいます!。

聞きなれないGPUだと思うのですが、こちらはサーバーで利用する高級GPUです。

 

 

 

まあ普通に買うと100万はかかる代物です。

これを無料で使えるんだから使わない手はない・・。

なお、T4が当たるかK80が当たるかは、運次第です。Google Colabで割当たるインスタンスはGCPで空いているリソースです。GCPでプリエンティブインスタンスという種類があって24時間で必ず終了させられる種類のサーバーがあるのをご存知であれば、仕組みは似たようなものです。Amazon EC2ではスポットインスタンスですかね。

Google Colabの場合は12時間です。なお一度経験があるのですが、夜中にぶんまわそうとトレーニングを仕掛けて就寝したところ、いきなりセッションがぶち切られて終了していたことがありました。12時間たたなくても無情に取り上げられることもあるのですがこれはアメリカ時間に大量のインスタンスが一時的に必要になったためなんだろうなと理解しています。日本時間ではそういうことは経験したことがないですね今のところ。

なお、Google Colabで動いているOSは、Ubuntu18.04.2 LTSです。また、インターネットにも出られます。2vCPU Memory 12GBです。ディスクは30GBほどを持っていますがたまに300GBくらいの玉を渡されることがあります。

ということで、Jupyter NotebookからシェルやPythonを叩くことさえ慣れてしまえば、何しろGPUが使える。いくら廻しても騒音などありません。クラウドですから。電気代もかからない。

一方で、最長12時間で消えてしまうインスタンスですが、Google DriveをNFSのようにマウントできます。マウントしてしまえば、cpやmvでファイルのコピーや移動も自由自在。GCPの中のせいかこのスピードもすごく早いです。ethtoolで調べたところなんとeth0が10Gbpsでつながっています。これはGCPに準ずるところだと思うのですが速いはずです・・。

ということで、Google Oneを契約し、Google Driveを200GB契約してしまいました。月380円なのでお得です。

 

one.google.com

 

結局、Google Colabのノートブックに環境設定コマンドを保存しておけば、インスタンスがなくなっても瞬時に再初期化できます。

データは定期的にマウントしたGoogle Driveに退避。環境設定のときにインスタンスのディスクに戻します。

ということをやっています。

12時間おきに初期化されるので、インスタンスが消えた時点で環境設定しているのですがGPUがタダで使えるのですから何の不満もありません。

ちなみに、vCPUが2個なのでCPUをたくさん使う作業は不向きです。そこは自宅のCore i7-8700Kが6コア12スレッドですのでこちらにデータを巻き戻して処理するようにしています。

適材適所ということで。

ちなみに、ああこのインスタンス永続的にほしいわあ・・と思ったんですが・・。

f:id:orangeitems:20190820135210p:plain


うーん4万円・・。手が出ない。ただ、プリエンティブインスタンスにすれば1.5万円くらいにんはなるんですがそれでも、24時間で消えるならGoogle Colabと変わらないよなあという具合です。

それぐらい、Google Colabは破格だということです。

 

なんで無料で使えるんだろう

Google Colabですがあくまでもユーザーの研究使用が目的です。

おそらくゴリゴリ長時間廻していると、BANされる可能性もあります。

 

research.google.com

T4 GPU などのハードウェア リソースを利用できないのはなぜですか?

 

最も利用しやすいハードウェアは、Colaboratory を長期間のコンピュータ処理ではなくインタラクティブに使用しているユーザーに優先的に割り当てられます。Colaboratory を長期間のコンピュータ処理に使用しているユーザーは、利用可能なハードウェアの種類やハードウェアの利用時間に関して、一時的に制限される場合があります。コンピュータ処理に特別なニーズがあるユーザーは、Colaboratory の UI をローカル ランタイムで使用することをおすすめします。
なお、Colaboratory を暗号通貨採掘に使用することは認められていません。Colab のご利用を全面的に禁止される可能性がありますので、ご注意ください。

 

暗号通過採掘に使ってはいないのですが、ずーっと使っていたらきっと注意されるんだろうなという雰囲気です。

ローカルランタイムを自分のパソコンに入れて、たまには家のGPUを廻すほうがいいかもなあなんて思いました。ご利用の方は十分ご注意ください。

 

追記

GCP契約しちゃおっかな。無料枠あるし・・。