Check! Deep Learning Lab で学んだ Azure Machine Learning Workbench とデータサイエンス仮想マシンのあれこれ #dllab #azurejp

こんばんは、 @dz_ こと大平かづみです。

Prologue - はじめに
====
今日は、Chainer x Azure Machine Learning の勉強会に行ってきました！機械学習自体はまったくの素人なのですが、前半のハンズオンと、機械学習・深層学習のハッカソンと聞いて集まる方々がどのように利用されるのかを拝見したくて、参加しました。

- [Chainer x Azure ML Hackathon CV編 - connpass](https://dllab.connpass.com/event/83012/)

資料は、Azure のドキュメントと、イベントページの資料一覧に添付されてるものを参照しました。

- [Azure Machine Learning サービス (プレビュー) のドキュメント | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/machine-learning/service/)
- [Chainer x Azure ML Hackathon CV編 - 資料一覧 - connpass](https://dllab.connpass.com/event/83012/presentation/)

学んだこと、気づき
====
Azure 関連
----

- NVIDIA CUDA ドライバが使える NCシリーズについて
    - [Azure Linux VM のサイズ - GPU | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/sizes-gpu)
    - 日本リージョンでは使えないが、**米国西部2 (West US 2)** が近くておすすめだそう（2018/6 時点）
    - VMディスクの種類は、**HDD** で十分（SSDはコスト高い）

深層学習・機械学習関連
----

- Python と Docker が活躍
- 画像のオブジェクトのタギングができるOSSツール
    - https://github.com/Microsoft/VoTT
- おすすめデータセット
    - [Use the sample datasets in Machine Learning Studio | Microsoft Docs](https://docs.microsoft.com/en-us/azure/machine-learning/studio/use-sample-datasets)
    - [Kaggle: Your Home for Data Science](https://www.kaggle.com/)

Azure Machine Learning Workbench
----

- [Workbench をインストールしてログインする - Azure Machine Learning サービスのインストールに関するクイックスタート | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/machine-learning/preview/quickstart-installation#install-and-log-in-to-workbench)
- 実行環境は、下記を利用でき、環境を渡すこともできる
    - ローカルマシンで実行（Workbench の anaconda 内）
    - ローカルマシンの docker で実行
    - DSVMの docker で実行
- 独自のモデルを Azure Container Registry （プライベートレジストリ）に置いて共有できる

### `az ml` コマンドについて

- `az ml` は、通常の Azure CLI でなくて、この Workbench から立ち上げたコマンドプロンプトまたは PowerShell で利用できる
- `az ml` でエクスペリメンテーションを作るとき、ロケーションのエラーが出た場合は、エラーメッセージに利用可能なロケーションが表示されてるので、それを `--location` または `-l` で指定する

```
az ml account experimentation create -n <name> -g <group> -l <location>
```

- DSVM にアタッチする `az ml computetarget attach remotedocker` を実行するとき、SSHキーによるアクセスの場合は、 `--use-azureml-ssh-key --private-key-file <private key file>` でプライベートキーファイルを指定する。
    - private key file の指定は、フルパス（例: `C:\Users\user\.ssh\id_rsa` ）

Data Science Virtual Machine (DSVM)
----
- [Azure での Linux (Ubuntu) データ サイエンス仮想マシンのプロビジョニング | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/machine-learning/data-science-virtual-machine/dsvm-ubuntu-intro#jupyterhub-and-jupyterlab)
- OSについて
    - **Ubuntu** 版がおすすめ
    - Windows 版は docker が動かないそう
        - でも Visual Studio Code がプリインストールされてる点は便利
- DSVM 作成するとき、「ブート診断」「ゲストOS の診断」を有効にしておくと、デバッグ時に便利
- **JupyterHub** を利用するとき
    - `https` でアクセスする（自己署名証明書の警告が表示されるので、理解して進む）
    - OSのアカウントがパスワードログインできる必要がある
    - DSVM 作成時に SSHキーによるログインを選択した場合は、別途 `sudo password <user name>` でパスワードを指定する
- **JupyterLab** へのアクセスは、 `https://your-vm-ip:8000/user/<user name>/lab`
    - ドキュメントに書かれている `https://your-vm-ip:8000/lab` では 404 エラーになる

Visual Studio Code 関連
----
- [Visual Studio Code Tools for AI](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.vscode-ai) エクステンションが、超絶便利だそう
    - Azure Machine Learning と連携できる

Epilogue - おわりに
====
ハッカソンということでビビっていたのですが、実際はもくもく会状態となり、自分のペースで集中して勉強することができました。機械学習はなかなか着手しにくかったので、良い機会になりました！ありがとうございました！