Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Azure Machine Learning Services (Preview)をさわってみた

1,853 views

Published on

Azure Machine Learning Services (Preview)をさわってみました。あと、スライド中に紹介しているコマンドオプション対応のsshdは以下のBlogで紹介しています。
http://kentablog.cluscore.com/2018/04/sshddockerssh.html
https://qiita.com/kekekekenta/items/2fdbae3afc4670674ddc

Published in: Technology
  • Be the first to comment

Azure Machine Learning Services (Preview)をさわってみた

  1. 1. Azure Machine Learning Services (プレビュー)をさわってみた 2018年4月21日 Azure MVP @kekekekenta
  2. 2. スピーカー あおきけんたろう  Microsoft MVP for Azure  @kekekekenta  JAZUGコアメンバー 2
  3. 3. はじめに • 2018年4月20日段階のサービスとなります。今後サービスが更新 されることがありますので、ご注意願います。 • ほぼ全てがプレビューもしくはプレリリースビルドであるため、 GA時に本ドキュメントのURLは変更されると思います。 3
  4. 4. アジェンダ • Azure Machine Learning Services (サービス) • 本セッションは、これから Azure を触ってみようとしている皆様 向けに、Azure Machine Learning Services の流れをざっくり紹 介します。 4
  5. 5. AZURE MACHINE LEARNING STUDIO 今回の説明は Azure Machine Learning Services の紹介ですが、 これから始める人のために少し Azure Machine Learning Studio の紹介をします 5
  6. 6. Azure Machine Learning の書籍 • Amazonなどで、Azure Machine Learning を検索す るといくつかの書籍が出てき ますが、こちらは全てAzure Machine Learning Studio の 書籍です。(2018/4/20) 6
  7. 7. Azure Machine Learning Studio • Microsoft Azure のポータル から、Machine Learning Studio のワークスペースを作 成 – ワークスペース – Webサービス • https://azure.microsoft.co m/ja-jp/services/machine- learning-studio/ 7
  8. 8. Azure Machine Learning Studio Experiment (実験) 8 • 機械学習の勉強に 最適なUIやサンプ ルを提供 • 作成されたモデル は、そのままWeb サービス化可能 • 左のサンプルは、 自動車価格予測 • データを学習と推 論向けに分けて、 それぞれをポアソ ン回帰とディシ ジョンフォレスト 回帰で比較 • 一目でわかりやす いのが特徴 https://docs.microsoft.com/ja-jp/azure/machine- learning/studio/create-experiment
  9. 9. Azure Machine Learning Studio Web Services 9
  10. 10. Azure Machine Learning Studio の Notebook 10 • Azure Machine Learning Studio には Jupyter Notebook もあ る • Notebook を使 うなら、Azure Notebook の方 がいいかも – https://note books.azure. com/
  11. 11. AZURE MACHINE LEARNING SERVICES 11
  12. 12. Azure Machine Learning Services • Azure Machine Learning Experimentation(実験) – 反復を伴う機械学習の枠組みを提供 • Azure Machine Learning Model Management(モデル管理) – 機械学習により作成されたモデルや、推論向けのREST API コンテナの管理と、デプロイのワークフローを提供 • Azure Machine Learning Workbench(ワークベンチ) – ローカルのマシンで機械学習により作成されるモデルの REST API 開発環境を提供 12
  13. 13. 機械学習の主な流れ(①モデル作成) • 納得のいく精度のモデルができるまで、トライ&エラーを何度も繰 り返す。以下の処理をプログラムで作成する。 13 学習データ 学習向け データ モデル作成 (pickle,hdf5,onnx)
  14. 14. 機械学習の主な流れ(②アプリのデプロイ) • 作成されたモデルをAPI化やアプリに組み込むんで実行環境にデプ ロイする。 14 モデル (pickle,hdf5,onnx) API化や アプリに組み込み 実行環境に デプロイ
  15. 15. Azure Machine Learning Services 各サービスとの関係 • ワークベンチのPCで学習からアプリケーションデプロイまでを実施 実験 モデル管理 ワークベンチ Azure CLI/VS Code 推論 REST API 学習 ②アプリの デプロイ ①モデル作成
  16. 16. 準備 • Machine Learning Experimentation(実験)の作成 – シートは、共同作業するユーザの数を指定 – 同時に、Azure Machine Learning Model Management(モデル 管理)も作成可能 • PCに、Azure Machine Learning Workbench(ワークベンチ)のイン ストール – プロジェクトをgitなどのリポジトリで管理する場合は、Team Projectなどのvisualstudio.comのリポジトリを用意しておく • クイックスタートを参考に! – https://docs.microsoft.com/ja-jp/azure/machine- learning/preview/quickstart-installation 16
  17. 17. モデルを作る 17
  18. 18. ワークベンチでプロジェクトの作成 18 • とりあえず動かして みたい場合は、サン プルを選択 • あやめの分類 (Classifying Iris) はハローワールド的 な存在
  19. 19. データの準備 • csvやExcelデータ を使用する場合は、 ワークベンチで Data Source設定し て、Data Preparation設定の 中でデータクレンジ ングを行い、学習向 けのデータに整える 19
  20. 20. モデル作成のためのプログラム作成 • Data Preparation で設定した ファイルを読み込むとPandas のDataFrameとなる • モデルはPickleでoutputsフォ ルダにシリアライズして保存 20 from azureml.dataprep.package import run iris = run('iris.dprep', dataflow_idx=0) import pickle f = open('./outputs/model.pkl', 'wb') pickle.dump(clf1, f) f.close()
  21. 21. モデル作成のための学習を実行環境 • どこで学習を実行するか – ローカル Conda Python 環境 – ローカル Docker コンテナーの Conda Python 環境 – リモート Linux の Python 環境 • DSVMやDLVMなど – リモート Docker コンテナーの Conda Python 環境 • nvidia-docker利用可能 – HDInsight for Spark 21
  22. 22. 実行環境の構成ファイルを作成 • 構成ファイルはワー クベンチから作成 • Conda Dependenciesは、 Condaの環境をエク スポートすると簡単 に作れる • conda env export > conda.yml 22
  23. 23. 実行 • 実行はワークベンチのUIもしくはコマンドから実行する – az ml experiment submit -c gpudsvm .iris_sklearn.py 0.01 • Dockerを使用した実行で使用するDockerfileは以下のディレクトリ に作られる – C:Users<User>AppDataLocalTempazureml_runs <Image>azureml-setupDockerfile 23
  24. 24. Dockerfile FROM microsoft/mmlspark:plus-0.9.9 USER root RUN mkdir -p $HOME/.cache WORKDIR / COPY azureml-setup/99brokenproxy /etc/apt/apt.conf.d/ RUN if dpkg --compare-versions `conda --version | grep -oE '[^ ]+$'` lt 4.4.0; then conda update conda -c conda- canary; fi COPY azureml-setup/mutated_conda_dependencies.yml azureml-setup/mutated_conda_dependencies.yml RUN conda env create -f azureml-setup/mutated_conda_dependencies.yml # AzureML Conda environment name: azureml_ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ENV PATH $CONDA_HOME/envs/azureml_ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/bin:$PATH COPY azureml-setup/spark_cache.py . RUN $SPARK_HOME/bin/spark-submit "--repositories" "https://mmlspark.azureedge.net/maven,https://azuremldownloads.blob.core.windows.net/repo5qh91kdjs6" "-- packages" "com.microsoft.ml.spark:mmlspark_2.11:0.7.91,com.microsoft.sqlserver:mssql- jdbc:6.2.1.jre8,com.microsoft:dprep_2.11:0.17" "--conf" "spark.app.name=Classifying Iris" "--conf" "spark.yarn.maxAppAttempts=1" "--driver-java-options" "-Dlog4j.configuration=file:./azureml-setup/log4j.properties" "- -conf" "spark.eventLog.enabled=true" "--conf" "spark.eventLog.dir=./azureml-logs" spark_cache.py WORKDIR /azureml-run # AzureML container control script version: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy COPY azureml-setup/container_control_script.py / CMD ["bash"]
  25. 25. WEB APIとしてデプロイする 25
  26. 26. 準備 • デプロイメント環境の作成 – 開発環境やプロダクション環境など、環境の数だけ作成 – コンテナ レジストリとストレージが作られる – az ml env setup -n <environment name> -g <resource group> -l <azure region> • 環境設定 – az ml env set -n <environment name> -g <resource group> – az ml account modelmanagement set -n <model management> -g <resource group> • Web APIの作成 – az ml service create realtime -f <score.py> --model-file <model.pkl> -s <service_schema.json> -n <container name> -r python --collect-model- data true -c aml_configconda_dependencies.yml 26
  27. 27. 作成されたWeb APIの動作確認 • LinuxからWeb APIにアクセス – curl -X POST -H "Content-Type:application/json" --data "{"input_df": [{"petal length": 1.3, "sepal width": 3.6, "sepal length": 3.0, "petal width": 0.25}]}" http://hostname:32770/score • Windows(Power Shell)からWeb APIにアクセス – Invoke-RestMethod -Uri "http://hostname:32770/score" - Method POST -Body "{""input_df"": [{""petal length"": 1.3, ""sepal width"": 3.6, ""sepal length"": 3.0, ""petal width"": 0.25}]}" -ContentType "application/json" 27
  28. 28. コマンドオプション対応のSSHDを 作ってみた ※これはAzure Machine Learningの機能ではありません 28
  29. 29. Multi argument 対応 sshdはなにができる • Linuxのpasswdで設定されているshellの複数引数を有効にしたsshd – man 5 sshd より • /etc/passwd contains one line for each user account, with seven fields – delimited by colons. These fields are: » login name » optional encrypted password » numerical user ID » numerical group ID » user name or comment field » user home directory » optional user command interpreter ←ここを複数引数対応にする – 例えば以下のように記述 • azureuser:x:1003:1003:Ubuntu:/home/azureuser:/bin/bash • kekekekenta:x:1000:1000:,,,:/home/kekekekenta:/usr/bin/docker exec {docker_tty} containername /bin/bash • Blogはこちら、https://qiita.com/kekekekenta/items/2fdbae3afc4670674ddc • ソースコードはこちら、 https://github.com/KentaroAOKI/openssh-portable 29
  30. 30. 例えば、Dockerを設定した場合 • 例えば、dockerを設定すると、ホスト側のユーザ管理で、直接Dockerコンテナ 内に接続できるので – ユーザはホスト側に接続できない(管理者が一元管理できる) – コンテナにsshdを入れる必要はない – scpで直接コンテナ側とファイル送信/受信できる • コンテナにapt-get install ssh-client必要 • みなさんの管理者ポリシーによって使う – 機械学習環境を複数ユーザで使いたい – GPUを割り当てたい – Azure Machine Learning のリモート実行環境(最近追加された機能) 30 ssh
  31. 31. Multi argument 対応 sshdのインストール方法 • ビルド用のパッケージをインストール – apt-get install autoconf automake gcc • インストール – git clone https://github.com/KentaroAOKI/openssh-portable.git – cd openssh-portable – autoconf – autoheader – ./configure(インストール先を変更したい場合は”—prefix”設定) – automake – make install • 設定 – 一般的なsshdと同じ。デフォルトだと、/usr/local/etc/sshd_config • 改善点などあればご連絡ください – @kekekekenta 31
  32. 32. まとめ 32
  33. 33. まとめ • Azure Machine Learning Services は、Deep Learningを含む機 械学習のフレームワークを自由に使える環境 • 学習実行からWeb API開発とデプロイを提供 • コンテナは便利だね! 33

×