今回はウェブ上で分析作業が出来てしまうGoogle社のColaboratoryというサービスを見てみます。
Colab(正式名称「Colaboratory」)では、ブラウザ上で Python を記述、実行できます。以下の機能を使用できます。
・環境構築が不要
・GPU への無料アクセス
・簡単に共有
引用: https://colab.research.google.com/?hl=ja#
分析環境がクリック一つで準備でき、GPUも使えてしまうすごいサービスです。
22/10/4追記 Colabの仕様変更に関して
当ブログのこの記事に訪問されるということはすでにサービス名を聞いたことがある人がほとんどだと思います。
googleアカウントさえあれば使えます。有償版もありますが、個人でさくっと使う分には無償版で十分だと思います。
料金体系は下記図を確認してください。
どのくらいのリソースをどのくらいの時間使うことが出来るかは明言されていません。これはColabの使用量の上限は状況に応じて変動するためのようです。
おおよその無料版Colabと有償版Colabのスペックを比較したサイトはITmediaさんの記事が参考になります。
とはいえ、余裕があればColab Proくらいを契約したいですね 笑
ちなみにColabはJupyterが元になっているので、使い勝手はJupyter notebook/labとほとんど同じです。不満はありません、markdownフォーマットで作業内容を出力が出来るようになるといいなと思うくらいです。
GPUって
そもそもGPUって何でしょうか?最近、ディープラーニングの仕事をするようになったのですが、これまであんまり話題にあがることがありませんでした。
私が調べて理解した内容をまとめると、GPUは単純計算や並列処理が得意でディープラーニングなどの高速化に欠かせない装置のようです。
一方でよく聞くCPUは汎用的な処理や直列処理が専門のようで、大量データの処理には時間がかかるようです。
なので画像処理やディープラーニングなどのニューラルネットの計算を処理させる時にはGPUだと言われているんですね。
Colabのよくある質問を確認
あんまり見る人は少ないと思うのでColaboratoryのFAQを確認してみました。
気になったのは下記です。
1. 使用可能なリソースは変動する可能性がある
Colab のリソースは保証型ではなく、無制限でもありません。使用量の上限が状況に応じて変動します。
全体の使用量の上限、アイドル タイムアウト時間、VM の最大存続期間、利用できる GPU タイプなどの要素は、時間とともに変更される可能性があります。Colab では、変更が頻繁に起きる可能性があることから、これらの上限を公開しません。
あくまでインタラクティブな利用を想定しているからでしょうか、勉強に使うとかであれば問題ないかと思いますが業務で使うのはおすすめできなそうです。
2. GPUやTPUは使いすぎると制限がかかる場合がある
GPU と TPU は、Colab で長期間のコンピューティング処理を行うユーザーではなく、インタラクティブに使用しているユーザー、または直近のリソース使用量の少ないユーザーに優先的に割り当てられる場合があります。その結果、Colab を長期間のコンピューティング処理に使用するユーザーや直近のリソース使用量が多いユーザーは、使用量が上限に達して GPU と TPU へのアクセスが一時的に制限される可能性が高くなります。
長く使っていると制限されることがあるようです。気をつけましょう。
3. 使用量上限を高くしたい場合は有償版を契約するか、ローカルランタイムやGoogle Compute Engine(GCE)でリソースを確保する必要がある
使用量上限がより高くかつ安定したサービスに関心をお持ちの場合は、Colab Pro と Colab Pro+ をおすすめします。高負荷のコンピューティング処理を必要とするユーザーには、独自のハードウェアで動作するローカル ランタイムまたは Colab GCP Marketplace VM で Colab の UI を使用することをおすすめします。
有償版を契約してもリソースは保証される訳ではないが、無償版よりは使用量上限が高くなるようです。
ローカルPCやGCEのリソースを使う場合は詳しくは、ローカルランタイムやGCP Marketplace を介して Colab で GCE VM を起動する手順などの公式記事をご確認ください。
4. 作業が終了したらColabのタブを閉じてリソースを開放する
作業が終了したら Colab のタブを閉じ、作業に不要な GPU を使用しないようにしてください。そうすることで、Colab で使用量の上限に達することが少なくなります。
開きっぱなしはやめましょうという話ですね。
まとめ
FAQに知りたいことがだいたい書いてありました。
GPUが必要な処理はColaboratoryで実行させてあげた方がよさそうですね。
またAutoMLもローカルMacbook Proで実行するより、Colabで実行した方がいいんですかね?
重たい処理を流すときに、毎回PCがウィーンというのが不安な場合はColabを利用しようと思います。