新しい Azure Machine Learning Studio と戯れてみる

この記事は [Microsoft Azure Tech Advent Calendar 2019](https://qiita.com/advent-calendar/2019/microsoft-azure-tech) の7日目の記事です。
[昨年](https://qiita.com/yomatsum/items/8d0b56005a556f704939)は体調不良に伴う後追いとなってしまったことを反省し、この記事は前もって作成しております。2020年も何事も早め早めで進めていこうと、今から心に決めている次第です。

[昨年](https://qiita.com/yomatsum/items/8d0b56005a556f704939)の投稿時点では、Azure Machine Learning Service が一般提供開始となり、[Service](https://docs.microsoft.com/ja-jp/azure/machine-learning/service/overview-what-is-azure-ml) と [Studio](https://docs.microsoft.com/ja-jp/azure/machine-learning/studio/what-is-ml-studio)の両方が並立する状況でした。そして、2019年11月、Azure Machine Learning Service が **Azure Machine Learning** に、Azure Machine Learning Studio が **ML Studio (classic)** と名称変更になりました。また、同時に [Azure Machine Learning Studio](https://ml.azure.com/) がプレビュー提供されています。 

そこで、今回は、プレビュー提供されている Azure Machine Learning Studio について、以前の Studio 利用者が気を付けたい ~~(私があれ？と思った)~~ 点をまとめてみたいと思います。

# なぜ、この記事が作成されているのか
新しいサービスに慣れ親しんでおきたい、という（私の個人的な）動機に基づいています。

# 想定している読者
現在、ML Studio (classic) を利用している方、過去に利用したことがあるが、それっきりになっている方など、ML Studio (classic) の知識を主にお持ちの方を想定しています。

# で、何が違うの？違わないの？
[ここ](https://docs.microsoft.com/ja-jp/azure/machine-learning/compare-azure-ml-to-studio-classic) にまとまっていますが、ピックアップして読み解いておきます。

### 変わらない点
どちらも、GUIベースでの機械学習モデル構築のフローを作成することができます。設定画面や操作方法が一部異なってはいるものの、処理の流れを視覚的に理解しながら機械学習モデルを作成できるという良さは引き継がれています。それぞれの外観は以下の通りです。

- Machine Learning Studio
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163305/f6248b7b-b3cc-f1ec-1a88-6b35b3634bbd.png)

- ML Studio (classic)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163305/eeb10128-9c78-cc4a-ff53-86634e8c568f.png)

### 改善された点
データの上限が撤廃されました。ML Studio (classic) においては、モジュールで取り扱えるデータ容量に 10 GB という制限がありました。新しい Studio においては、機械学習のデータ処理を実行させる環境を自分で設定し、十分なメモリを確保させることで 10 GB 以上のデータを取り扱うことが可能になっています。

### つまづきやすい点
上記の改善点の裏返しになのですが、Machine Learning Studio では、データ処理、学習処理のための実行環境を自分自身で準備する必要があります。ML Studio (classic) では自動で準備されていたため、エクスペリメントを作成して実行を押せばすぐに処理が始まったのですが、Machine Learning Studio では、事前に作成しておいた Training Cluster をパイプラインに割り当てて実行環境とする必要があります。

- Machine Learning Studio
    - 事前に Training Cluster を作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163305/6f28d71a-b5f9-2eab-9878-98842fd91cf3.png)
    - パイプラインにクラスターを割り当て
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163305/66ef826b-129c-5a2c-2846-0d1a131037c9.png)

- ML Studio (classic)
画面下部のRUNを押せばOK。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163305/67892f5c-80d2-8bd2-6bf2-a3e95b92f8f0.png)

# さらっと耳慣れない用語が出たような・・・
ここまでの説明でいくつかの用語が出てきたので整理しておきたいと思います。

- モジュール  
Machine Learning Studio のデザイナーや ML Studio (classic) の作成画面で並べる箱状のオブジェクトを指します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163305/cfaf26dc-2fec-d377-2d7b-2c4251e43dfc.png)
- クラスター  
データ加工や学習処理を実行するためのコンピューターリソース群を指します。Azure VM がクラスターの構成要素であるノードとして複数個作成されます。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163305/b110867f-2154-e2d1-a64b-f9505f5a5a31.png)
- パイプライン  
Azure Machine Learning Studio の デザイナーで作成する、機械学習モデル構築のための一連のフローを指します。ML Studio (classic) の場合は、パイプライン=エクスペリメントでした。
- エクスペリメント  
機械学習モデルの作成単位です。ML Studio (classic) の場合には、機械学習モデル構築のための一連のフローを指していました。Azure Machine Learning Studio では、Notebooks、Automated ML、デザイナーそれぞれで構築したモデル作成処理(パイプライン)の結果を束ねて管理する単位としてエクスペリメントが存在します。

# エクスペリメントの意味合いが変わってますよね？
その通りです。というわけで、つまづきやすい点の追加です。

### つまづきやすい点、その2
ML Studio (classic) の場合、一連の処理をエクスペリメントと呼んでいましたが、Azure Machine Learning Studio では、それをパイプラインと呼び、パイプラインの実行結果を管理する単位としてエクスペリメントに関連付けて記録を残します。
この違いを意識しておかないと、パイプラインの内容を変えた後に次々とエクスペリメントを作成してしまい、モデル作成の記録が散在することになってしまいます。

# まとめ
ここまで、プレビュー提供されている Azure Machine Learning Studio について、以前の Studio 利用者が気を付けたい点、として紹介してきました。
計算リソースの差異、管理単位であるエクスペリメントの差異の2点をまずは押さえていただければ、ML Studio (classic) で習得した機械学習の概念（データ成型、分割、学習、スコア付け、評価）を活用して機械学習モデルの構築が始められるのではないかと思います。