nikkie-ftnextの日記

イベントレポートや読書メモを発信

イベントレポート | #azuremoku2 にてAzure ML Serviceのクイックスタート・チュートリアルを触りました

はじめに

いつも心は虹色に! nikkieです。
2/9開催の 第三十回 Azureもくもく会 のイベントレポートをお送りします。

勉強会の概要

第三十回 Azureもくもく会 @ 品川 - connpass

Azureに関する作業をもくもく行う会です。 XamarinでAzure連携を試してみる、WebAppsのGitを利用した自動デプロイをSlackに通知してみるのを試す等々、やりたかったこと研究したいことをもくもく作業できる場所です。 初心者の方から既にAzureを利用している玄人の方まで幅広くご参加いただける事を楽しみにしております。

2018年3月以来の約1年ぶりの参加でした。
先日以下のウェビナー1を聞き、Azure Machine Learning Service(以下Azure ML Serviceと略)で手を動かしてみたくなり、今回久しぶりに参加しました。

Connect(); 徹底解説シリーズ!~ AI 編 ~ 最新の環境が最短の開発だ! Azure Machine Learning update 2019年1月版 [ウェビナー]

取り組んだこと

以下3点で手を動かしました。2

達成したこと

手を動かしてわかったことを書いていきます。

前提

  • Workspaceの作成はAzure Portalを操作しています(azコマンドは今回使っていません)
  • Azure NotebookにてPythonコードを実行しています(Python3.6のノートブックを使用)3

※Azure ML ServiceはAzure Notebookからだけでなく、手元のPCのJupyter Notebookからでも扱えそうなので、今後試してみます

クイックスタート

Azure portal を使用したクイック スタート - Azure Machine Learning service | Microsoft Docs

  1. Azure PortalからWorkspaceを作成
  2. WorkspaceのリンクからAzure Notebookを開き、「Getting started」プロジェクトをクローン
  3. Azure NotebookからWorkspaceに接続し、Pythonコードを実行(後述のRun)

モンテカルロ法で円周率を推定しました。
2回実行しての結果がWorkspaceで確認できます。

f:id:nikkie-ftnext:20190209194010p:plain

現時点の理解を書き留めておきます:

  • Workspace:Azure ML Serviceの単位(コンテナレジストリやストレージがラップされている)
  • Experiment:Runを集めたもの。クイックスタートでは2つのRun(2回の推定結果)をもたせた
  • Run:Pythonのコードを実行、機械学習のタスクに対応。クイックスタートでは、1回の円周率の推定

チュートリアル1(MNIST)

イメージの分類チュートリアル:モデルをトレーニングする - Azure Machine Learning service | Microsoft Docs

ロジスティック回帰でMNIST(手書き数字の分類)に取り組みました。
円周率の推定の例との違いは、AzureにVM(CPUマシン)を立てていることです。

  • 円周率の推定:ローカル(Azure Notebook)で実行
  • MNIST:リモート(Azure Machine Learning コンピューティング=AzureのVM)で実行

リモートで実行するために、データや学習に使うPythonコードを送っています。
リモートでどのコードをどのデータに対して実行するかを指定(Runについて指定)したあとは、Azure Notebook上で状況が確認できました。
途中経過からリモートではDockerイメージのプルや途中経過の保存などが行われており、Workspaceがラップしているコンテナレジストリ、ストレージが関わってくるようです。

f:id:nikkie-ftnext:20190209194934p:plain

チュートリアル2(機械学習の自動化)

回帰モデルのチュートリアル: 自動化された ML - Azure Machine Learning service | Microsoft Docs

タクシーの料金を予測する回帰モデルを自動化して作成しました。
dataprep SDKでデータの前処理をしたあと、回帰モデルを自動で作成します。
Azure NotebookのFree CPUだと1イテレーションに1-2分かかったので、泣く泣く5回のうちから選抜しました。

f:id:nikkie-ftnext:20190209194958p:plain f:id:nikkie-ftnext:20190209195009p:plain f:id:nikkie-ftnext:20190209195020p:plain

今後調査したいこと

  • Azure NotebookのFree CPUよりスペックが高い環境で実行する(手元のPC上で実行、または、Azure NotebookからDSVMへ接続)
  • MNISTの例のようにリモート(AzureのVM)で自動化された機械学習を実行するにはどうすればいいのか?(データをまとめて送ればいい?)
  • dataprepを使った前処理が自分で書ける気がしないので、チュートリアルをやる https://docs.microsoft.com/ja-jp/python/api/overview/azure/dataprep/intro?view=azure-dataprep-py
  • または、pandasでタクシーデータを扱ってみる(dataprepがpandasライクに使えないことで、学習コストが上がってしまっている印象です😫)

他の方の取り組みから

感想

Azure ML Service、クイックスタートとチュートリアルでどんな感じのものかはつかめました。
個々のリソースの関係性を言語化するためにも、もう少し触りたいところです。
Kaggleのデータセットなどで使ってみようかな。(ログや性能の管理が楽になることを体感したい)

資格試験が刷新されたなど、Azure周りの情報収集もでき、作業環境も快適(VIP会議室で特に椅子が快適)で大満足です。
運営者、参加者の皆さま、半日ありがとうございました & お疲れさまでした。


  1. https://github.com/aldente-dev/aldente-dev.github.io/blob/master/connect2018/webiner.md より。2/13にDevOps、2/20にk8sとウェビナーは続くようです

  2. ウェビナーで教えていただいた https://docs.microsoft.com/ja-jp/azure/machine-learning/service/ からクイックスタート→チュートリアルの順で取り組んでいます。

  3. クイックスタート用のプロジェクトをクローンすると、チュートリアルソースコード込みで自分のアカウントにコピーされました