Azure NotebooksとノートブックVM（プレビュー）の比較

[Azure Machine Learning](https://machine-learning.connpass.com/event/139028/)のハンズオンへ参加しました。
tottokug氏のハンズオン資料は[こちら](https://github.com/tottokug/AzureMachineLearningHandson2019)。

ハンズオンではMachine Learning サービスのAzure Notebooksを使いましたが、Machine Learningサービスの中には他にもノートブックの機能がある？ようなので、触ってみたメモを残しておきます( ..)φメモメモ

## Machine Learning サービスとは？
要するに機械学習モデルの開発(学習)時に使うサービス。
> 参考：[Azureのドキュメント](https://docs.microsoft.com/ja-jp/azure/machine-learning/service/overview-what-is-azure-ml)

> 機械学習モデルのデータの準備、トレーニング、テスト、デプロイ、管理、および追跡に使用できるクラウドベースの環境が用意されています。 ローカル コンピューターでトレーニングを開始し、その後、クラウドにスケールアウトします。 このサービスは、PyTorch、TensorFlow、scikit-learn などのオープンソース テクノロジを完全にサポートしており、古典的な ml からディープ ラーニング、教師あり学習および教師なし学習まで、あらゆる種類の機械学習に使用できます。

具体的にはノートブックVM、Automated Machine Learning（データからモデルを自動作成）、ビジュアルインターフェイス（KNIMEやSPSSみたいなイメージ？）の機能があるっぽい。
ハンズオンはノートブックを使って、そこからAzureと連携して、Azureポータルからログとか実行結果とか見れるよ！という内容だったが、ノートブックVM（プレビュー）という別機能がありそうなので、それを試してみた。

具体的には以下2つを比べる。
* Azure Notebooks（ハンズオンで使ったノートブック）
* ノートブックVM

## Machine Learning ワークスペースを作る
まずは前準備。
AzureのMachine Learning サービス ワークスペースを使用する。
AzureポータルからMachine Learningで検索すると出てくる。`Machine Learning Studioと間違えないように注意`。
「ワークスペースを作成」ボタンを押下し、必要項目を入力。
ワークスペースは任意名でOK。サブスクリプションやリソースグループは適当に既存のものを使用。リージョンは東日本でOK。
![azure1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490864/e428b18e-d2ec-441b-ae87-30c42813b2f0.png)
「確認および作成」ボタンを押下 → 「作成」ボタンを押下。1分ほどでデプロイ完了。

作成されるリソースは以下
* Machine Learning サービス ワークスペース
* Application Insights
* ストレージ アカウント
* キー コンテナー

## 「実験」を試す
こちらはハンズオンでやったこと。Azure Notebooksというサービスっぽい。
ワークスペースのページ（すべてのリソース → 上記で指定したワークスペース名 から移動）の左側メニューの資産欄の「実験」を選択。
※サブスクリプションIDって隠さなくていい気がするけど、誰か詳しい人いたら教えてください。
![azure2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490864/8718d71f-e956-51c3-8ef6-f6069a750c23.png)

「Azure Notebookを開きます」ボタンを押下すると、下記の画面が出てくる。
ProjectNameは適当な名前、ProjectIDはそのままの値でCloneボタン（下図はボタン押下後なのでCloning..となっているが・・）を押下。
![azure6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490864/65859a3b-4f9c-b6d6-11ed-e9c676978336.png)

ハンズオンはクローンされたプロジェクトの01.run-experiment.ipynbを実施した（内容はハンズオン資料に書いてあるので割愛）。
クローンされたファイルを眺めると、`how-to-use-azureml`にいろいろなチュートリアルがおいてあるじゃないか！
ここにはハンズオンではやらなかった内容が入っていそう。
![azure7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490864/8a525111-b0bd-b069-0713-738a12a1cf01.png)
./how-to-user-azureml
![azure8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490864/ca6f047b-51c6-74fa-6906-21260454e440.png)

まぁ、こまけーことは気になったときに見るとして、ひとまずここまで。


## ノートブックVMを試す
ワークスペースのページ（すべてのリソース → 上記で指定したワークスペース名 から移動）から、「サンプルノートブックを使用して開始する（プレビュー）」を選択。
![azure2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490864/8718d71f-e956-51c3-8ef6-f6069a750c23.png)

左上の新規作成を選択。
![azure3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490864/78dbbc90-5703-8fad-2891-236faddf36d7.png)

名前はノートブック名ではなくjupyter全体のプロジェクト名。とりあえず中身を確認するだけなので仮想マシンは一番小さいやつにした。
![azure4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490864/0e03744e-3951-3de4-44db-9aaf130f10b5.png)

・・・ぜんぜん立ち上がらん・・・（10分経過）
・・・少し休憩すっか・・
・・・戻ってきて確認・・・（30分経過）
・・・立ち上がらねえ！

やり直そうと思ったけど、念のためブラウザをリロードしたら、状態（ステータス）が実行中にかわった。
まぁ・・そういうこともあるよね。
　※再度試行したところ起動は10分くらい


立ち上がると、URIの欄がJupyter/JupyterHubになるので、jupyterのリンクを開く。するとjupyterそのものが立ち上がった（前述のノートブックはAzureに組み込まれたような見た目だったが、こちらはjupyter Notebookそのもの）。
sampleノートブックを見ると、あれ？`ここにもhow-to-use-azuremlがある`じゃん…。
./how-to-use-azureml
![azure5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490864/3a045950-7740-7a6d-eee7-2f173b532b07.png)

ただ、見比べると、こちらのノートブックVMの方がチュートリアルの種類が多かった（training-with-deeplearningが追加）。
VMをGPU付きのやつにすれば、多量データでも学習できそうだな？
たぶんサンプルがあるので、Azure Notebooksと同様に、Azureポータルで実行結果やログを見たりはできそう（試してない）。


## まとめ
|                 | 起動 | Azureポータル連携 | 補足              |
|-----------------|------|------------------|------------------|
| Azure Notebooks | 早い | 対応             |                   |
| ノートブックVM   | 遅い | 対応(？）        | DeepLearning向け？ |

* Azure NotebooksとノートブックVMの違いや使い分けは~~ぶっちゃけよくわからん~~必要スペックを調整したいかどうか
* ノートブックVMはVM起動時間がかかる（10分くらい）
    * きっとGPU対応VMも立てられる

さくっと使いたいときはAzure Notebooks。しっかり使うときはノートブックVM。という感じか？
もうちょっと深いところまで使う気になったら、都度、違いも調べようと思います。
次は自動機械学習モデルが、どれくらいの精度がでるのか見てみます。

## 独り言
ちょっと思うところがあり前のQiitaアカウントを捨てて心機一転、新アカウントにしました。