狙い
手元の計算資源では限界を感じている、けれどクラウドリソースは使い方がよくわからないという方向けに Azure Notebooks と Azure Notebooks VM の使い方をまとめる。詳細はAzure公式チュートリアルを紹介するとして、ぶっちゃけ何をどれだけやれば計算資源として利用できるのかというあたりをフォローしたい。
対象者
- kaggle などのコンペ参加ユーザーで、GPU利用やメモリ増量などの環境をクラウドで利用したい方
- 業務などで手元の計算環境では不足を感じている方
前提条件
- (プライベートで利用する場合は)
hotmail.com
やoutlook.com
などのメールアカウント - Azure サブスクリプション(無料Verでも可)
- Azure ML ワークスペースの作成(リンク先マニュアルに沿って作れます)
利用方法
- Azure Notebooks Free compute
- Azure Notebooks VM
- 上記2つの複合利用
1. Azure Notebooks Free compute の利用
仕様
- 利用金額:無料
- マシンスペック:CPU 1 core, 4GB RAM, 7GB Storage
- 言語:R, Python
長所
- 無料で Azure 関連パッケージ(もちろん tensorflow や Keras 、Pytorch も)がインストール済みの Jupyternote 環境が利用できる点
- 起動が早く、すぐに始められる
短所
- 最近の平均的なPCよりスペック低い環境
- たまにフリーズしたり、Runを連打したりするとセキュリティでシステムから何時間か出禁になったりするので、ファイルはこまめにローカルにダウンロードするか、コードの編集はローカルで実施などがよさそう
- R ユーザーも Jupyter 環境での作業になり、使い慣れた R-Studio では利用できない
始め方
- 公式リンクでサインイン
- 初回ログイン時は AzureML に関するチュートリアルの .ipynb ファイルを Github からコピーしてプロジェクトを始めるか聞かれる(チュートリアルは Python Ver のみ)
- Projectという聞きなれない単位が出てくるが単なるディレクトリと考えて、最初は問題ない
- +ボタン → Notebook → [R]か[Python]を選択してスタート
2. Azure Notebooks VM の利用
仕様
- 利用金額:https://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/windows/
- マシンスペック:上のリンクから自由に選択
- 言語:R, Python
長所
- Azure 関連パッケージ(もちろん tensorflow や Keras 、Pytorch も)がインストール済みの Jupyternote 環境が利用できる
- GPU利用や大容量RAMなど、スペックを自由に選べる
- R ユーザーは R-Studio 環境も選べる
短所
- たまにフリーズしたり、Runを連打したりするとセキュリティでシステムから何時間か出禁になったりするので、ファイルはこまめにローカルにダウンロードするか、コードの編集はローカルで実施などがよさそう
始め方
- Azure Portalにログインして、前提条件で作成したワークスペースの画面に移動 → 左側ツールバーの[計算]を選択 → [Notebook VMs]のNewから名前とスペックを選んで作成
- 作成には 10 min 程度かかる
- Status : Running になったら、隣の Application URL から JupyterLab, Jupyter, R-Studio から選択して実行
3. Free compute と VM の複合利用
仕様
- 利用金額:https://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/windows/
- マシンスペック:上のリンクから自由に選択
- 言語:R, Python
長所
- データ前処理は Free compute で、ディープラーニングの学習などは GPU 環境を使うなど、スペックが必要な部分だけ必要な VM を使うことでコストカットできる
- Azure AutoML が利用できるので、いろいろな手法のモデリングやそれらのアンサンブル(平均、スタッキング)で最良のモデルを自動選択できる
短所
- たまにフリーズしたり、Runを連打したりするとセキュリティでシステムから何時間か出禁になったりするので、ファイルはこまめにローカルにダウンロードするか、コードの編集はローカルで実施などがよさそう
- 専用のコーディングがあり、覚えるのが手間
- 前処理は時間的にも大して費用に効かないことも多いので終始 VM でやれば十分という気もする