「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Azure Machine Learning]]
--Azure Machine Learningチュートリアル
--[[Azure Machine Learningのアルゴリズム・モデル]]
--[[Azure Machine Learningのモデルのデプロイ]]

* 目次 [#abbe9478]
#contents

*概要 [#f773018b]
[[Azure Machine Learning]](AzML)のチュートリアル。

*準備 [#x70c7c46]

**契約 [#gaa4007d]

***[[Azureの契約>AzureのPoC環境を契約する]] [#rbfcb996]

***AzMLの契約 [#j9de52d5]
[[Azure Databricks>Azure Databricksチュートリアル#cf1e6ce6]]と異なり、無料アカウントが利用できるらしい。

**環境 [#kd691f67]

***[[ワークスペース>Azure Machine Learning#q620b661]] [#r92b5e05]
-作成開始の方法

--ポータルで [リソースの作成] > [AI + Machine Learning] > [Machine Learning] の順に選択

-値を指定

--ワークスペース名~
myazmlwsとか

--サブスクリプション~
任意の値

--リソース グループ~
DplRGとか

--場所(リージョン)
---データ・パープライン系は「West US 2」辺りが良いかも。
---リージョン別の Azure 製品 | Microsoft Azure~
https://azure.microsoft.com/ja-jp/global-infrastructure/services/?products=databricks

--その他、ストレージ系

---ストレージ・アカウント~
新規

---キー・コンテナー~
新規

---Application Insight~
新規

---コンテナ・レジストリ~
新規(なしのままでもOK~
・osscjpdevinfraacr~
・標準~

--ネットワーク
---○:パブリック・エンドポイント
---プライベート・エンドポイント

--詳細~
既定値

-[作成]ボタンを押下~
ワークスペースの作成には数分かかる。
--「デプロイが完了しました」が表示されたら、
--[リソースに移動]ボタンを押下する。
--[スタジオの起動]ボタンを押下する。
--Azure Machine Learning Studioに移動する。
--スタジオ起動後、右上の「⚙」メニューから言語の設定が可能。

-使用量 + クォータ
--Azure Machine Learningのリソース画面で設定可能
--[[インスタンス>#gcec930f]]、[[クラスタ>#g9b08bdf]]作成の時、適宜、増やす必要がある。

-エンドポイントの保護~
パブリック・エンドポイントの場合
--IPアドレス制限
--[[Azure AD>Microsoft Azure Active Directory]]の認証が必要

-IaC化

--[[PowerShell]]で~

---情報なし。

--[[Azure CLI]]で

---v1.0では以下のように作成可能。
 >az login
 >az account subscription list --output table
 >az account set --subscription xxxxx
 >az ml workspace create --workspace-name [名称] --resource-group [既存のRG名] --location [場所(リージョン)]

---v2.0ではYAMLを使用可能になり~
[[Azure Private Endpoint]]を使用するような~
ケースでの対応が容易になる。

---参考~
・https://github.com/OpenTouryoProject/DataPipeline/blob/develop/AiBi/AI/AzML/README.md

-参考

***インスタンス [#gcec930f]
<Azure Machine Learning Studioから>

-作成開始の方法
--左メニューから[コンピューティング]に移動し、
--[コンピューティング インスタンス]タブから[新規]を押下。

-値を指定

--コンピューティング名~
myazmlcompとか

--仮想マシンの種類~
(CPU) or GPU

--仮想マシンのサイズ~
既定値

--詳細 > 設定の構成~
既定値

-[作成]ボタンを押下~
コンピューティング インスタンスの作成には数分かかる。

<スクリプトから>
-[[Azure CLI]]
--割愛
--参考~
https://github.com/OpenTouryoProject/DataPipeline/blob/develop/AiBi/AI/AzML/README.md

-[[Python>Visual Studio Code#red23b04]]

***クラスタ [#g9b08bdf]
<Azure Machine Learning Studioから>

-作成開始の方法
--左メニューから[コンピューティング]に移動し、
--[コンピューティング クラスタ]タブから[新規]を押下。

-値を指定

--場所~
[[ワークスペース>#r92b5e05]]の場所

--バーチャル マシン層~
(専用) or 低優先度

--仮想マシンの種類~
(CPU) or GPU

--仮想マシンのサイズ~
既定値

--設定の構成

---コンピューティング名~
myazmlclstとか

---ノード数~
・最小:0~
・最大:1(クォータによって可変

---スケール ダウンする前のアイドル時間 (秒)~
既定値(120秒

-[作成]ボタンを押下~
コンピューティング クラスタの作成には数分かかる。

<スクリプトから>
-[[Azure CLI]]
--割愛
--参考~
https://github.com/OpenTouryoProject/DataPipeline/blob/develop/AiBi/AI/AzML/README.md

-[[Python>Visual Studio Code#red23b04]]

*学習と推論 [#ab76f981]

**[[Automated ML(自動機械学習>Azure Machine Learning#b956378e]]で、 [#j195b315]

***タイタニック生存者予測 [#fd92483e]
https://aka.ms/titanic0611

をデータセットとして使用。

-データセット

--作成開始の方法
---左メニューから[データセット]に移動し[データセットの作成]を押下。
---[ローカル ファイルから]を選択して、以下の手順でアップロード

--値を指定

---基本情報
・名前:Titanic.csv~
・データセットの種類:表形式~
・説明:任意の文字列~
・[次へ]ボタンを押下

---データストアとファイルの選択~
・[参照] -> [ファイルの参照]でアップロード~
・[次へ]ボタンを押下

---設定とプレビュー~
・設定とプレビューを確認~
・必要に応じて設定を修正~
・[次へ]ボタンを押下

---スキーマ~
・スキーマを確認~
・必要に応じてスキーマを修正~
 ・スキーマの変更~
 ・列の論理削除~
・[次へ]ボタンを押下

---詳細の確認~
・詳細を確認~
・[作成]ボタンを押下

-学習と推論

--作成開始の方法
---左メニューから[自動 ML]に移動し[新しい自動 MLの実行]を押下。
---以下の手順で[新しい自動 MLの実行]を作成。

--値を指定

---データセットの選択~
・データセットを選択~
・[次へ]ボタンを押下

---実行の構成~
・実験名 -> 新規作成 -> 新しい実験名:Titanic-AutoML~
・ターゲット列:Survived (Integer)~
・コンピューティングの種類を選択:コンピューティング クラスタ~
・Azure ML コンピューティング XXXを選択する:[[myazmlclst>#g9b08bdf]]~
・[次へ]ボタンを押下

---タスクと設定の選択~
・タスクと設定の選択:(分類)、回帰、時系列の予測~
・追加の構成設定を表示する -> 終了条件 -> トレーニング ジョブ時間 (時間単位):0.5~
・特徴量化設定の表示 -> 手動での特徴量の設定(除外、型指定、補完方法)

---[オプション] 検証とテスト~
・検証の種類:既定値~
・[終了]ボタンを押下

--実験の実行画面に飛ぶ。

-評価とデプロイ
--左メニューから[実験]に移動し、
--実験名 - > 実験IDから実験を表示する。

--評価

---[詳細]タブ

---[データ ガードレール]タブ~
どんな条件でクロスバリデーションや欠損値の保管が実行されたか?

---[モデル]タブ~
テストされたすべてのモデルの比較、モデルのダウンロード~
・特定のアルゴリズムをクリック:各種メトリクスの確認
・...

---[出力とログ]タブ
---[子の実行]タブ
---[スナップショット]タブ

--デプロイ
---[モデル]タブを選択
---モデル(アルゴリズム名)を選択
---[デプロイ]ボタンを押下~
・Web サービスへの配置~
・色々入力~
 ・名前:mytitanicautoml~
 ・推論クラスタ([[AKS>Azure Kubernetes Service (AKS)]])は~
  高価そうなので[[インスタンス>#gcec930f]]を選択~
 ・念の為、認証は有効にしておく。~
 ・[デプロイ]ボタンを押下
---[ダウンロード]ボタンでダウンロードも。

-WebAPIで推論を実行
--左メニューから[エンドポイント]に移動、
--エンドポイント名をクリックし[使用]タブに移動、
--ココからPythonのコードをコピペする。
--[[NotebooksのHello world>#y90cd938]]の要領で実行する。

***定期預金申込予測 [#ke2a29fa]

-https://learn.microsoft.com/ja-jp/azure/machine-learning/tutorial-first-experiment-automated-ml
-https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/bankmarketing_train.csv

をデータセットとして使用。

***自転車シェアリング需要予測 [#kf9012ec]

-https://learn.microsoft.com/ja-jp/azure/machine-learning/tutorial-automated-ml-forecast
-https://github.com/Azure/azureml-examples/blob/main/python-sdk/tutorials/automl-with-azureml/forecasting-bike-share/bike-no.csv

をデータセットとして使用。

***[[糖尿病データセット>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?%E3%83%87%E3%83%BC%E3%82%BF%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0%EF%BC%88DM%EF%BC%89-%20DataSet#j443d0cb]] [#m26d80dd]
https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?plugin=attach&pcmd=open&file=diabetes.csv&refer=FrontPage

**[[Designer(GUI機械学習>Azure Machine Learning#xd500bfd]]で、 [#dfd4e97c]

***自動車価格の予測 [#jfcc9075]
Automobile price predictionサンプルを選択

-プロジェクト・テンプレートの選択

--作成開始の方法~
左メニューから[デザイナー]に移動し[サンプルの表示数を増やす]を押下。

--Regression - Automobile Price Prediction (Basic)を選択~
(コレはAzure MLのプロジェクト・テンプレートのようなモノか?
>グラフ概要:https://github.com/Azure/MachineLearningDesigner/blob/master/articles/samples/regression-automobile-price-prediction-basic.md

-データセット

--パイプラインの編集
---学習データを[視覚化(データを表示する)]から確認
---必要なら、データセットの差し替えが可能。~
([[登録済みDatasets>#fd92483e]]から追加&差替)

-学習と推論

--パイプラインの編集
---パイプラインを確認(特徴量選択 -> 欠損値の補完 -> データ分割)
---学習のアルゴリズムを確認(線形回帰のアルゴリズム)

--コンピューティング環境の設定~
・「⚙」メニューからコンピューティング環境の設定が可能。~
・既定のコンピューティング先~
 ・コンピューティングの種類を選択:コンピューティング クラスタ~
 ・Azure ML コンピューティング XXXを選択する:[[myazmlclst>#g9b08bdf]]

--[送信]ボタンを押下~
・実験名 -> 新規作成 -> 新しい実験名:APP-Designer~
・[送信]ボタンを押下~
・グラフが順次実行されて行く。

-評価とデプロイ
--左メニューから[実験]に移動し、
--実験名 - > 実験IDから実験を表示する。

--評価
---[グラフ]タブ
---[手順]タブ
---[出力とロク]タブ
---[メトリック]タブ
---[画像]タブ
---[スナップショット]タブ
---[説明]タブ
---[公平性]タブ

--デプロイ
---[公開]ボタンを押下

**[[Notebooks(コーディング環境>Azure Machine Learning#h1c62e43]]で、 [#m571bbec]

-プロジェクト・テンプレートの準備

--作成開始の方法
左メニューから[Notebooks]に移動、

--[ファイル]タブから[Samples]フォルダを作成
--[サンプル]タブからサンプルをクローン
---[[Python>Visual Studio Code#red23b04]]のバージョン毎にフォルダが在る。
---srcにルート(x.xx.x)フォルダを選択してクローンする。
---dstに作成した[Samples]フォルダを選択する。

***Hello world [#y90cd938]

-[ファイル]タブのフォルダから[新しいファイルの作成]を選択
--ファイル名:helloworld.ipynb
--ファイルの種類:ノートブック (*.ipynb)
--[作成]ボタンを押下

-実装

--[[Jupyter Notebook>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?PySpark#y2664b01]]ライクなIDE I/Fが開く。

--メニューのエディターから他のIDE I/Fを選択可能。

---[[Jupyter Notebook>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?PySpark#y2664b01]]

---[[JupyterLab>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?JupyterLab]]

---[[VS Code>#kf972658]]

--以下の実装を行う。
 print('Hello World')

-実行
--コンピューティング:[[myazmlcomp>#gcec930f]]
--セルの左の[実行]ボタンを押下して実行する。

***VS Code [#kf972658]
-[[Python for Visual Studio Code]]にあるように設定する。
-Azure MLからVS Codeを起動するとAzure MLと接続したVS Codeのウィンドウが起動
-クローンなどの操作は、ターミナルのウィンドウから行う事もできる。

***Python、scikit-learn [#k78aa30f]
プロジェクト・テンプレートの選択

-JupyterからTerminalを開き、以下をクローンし、
>https://github.com/yomaki/azure-ml-python-handson

-module2に移動して、順次、進めて行く。
--データセット
--学習

-module3に移動して、順次、進めて行く。
--デプロイ
--推論

*構築系 [#of8a5df8]

**権限 [#d5638001]
[[カスタム ロール>Role Based Access Control (RBAC)#nec899f1]]を割り当てる。

***... [#v5fd9470]

***参考 [#se75ea65]
-ワークスペースでロールを管理する~
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-assign-roles

**VNET [#bb8f5f16]
-VNETテクノロジーでセキュリティ保護することができる。
-複数のサービスが関連しているため、その構成は少し複雑。

***... [#ic7e9cbc]

***参考 [#ob136bfa]
-Azure Machine LearningのVNETデプロイと~
MLFlowによるDatabricksのトラッキング~
https://qiita.com/whata/items/f2483e4759e077848de4

-Azure Machine Learning の Private Link 対応~
https://zenn.dev/keonabut/articles/ad61e4d1da7ceb90862a

-仮想ネットワーク (Vnet) 上で Azure Machine Learningを~
使用する方法について | Japan Machine Learning Support Blog~
https://jpmlblog.github.io/blog/2020/10/28/AML-use-behind-vnet/

-machine-learning-best-practices/architecture.md~
at main · Azure/machine-learning-best-practices · GitHub~
https://github.com/Azure/machine-learning-best-practices/blob/main/technical/architecture.md

*参考 [#fe94a81d]

**Qiita [#od9f0870]

-機械学習(AI)初学者のファーストステップ~
https://qiita.com/tetsu831018/items/433a3b62d81a89580eaa

-Azure Machine Learningのいろは~
https://qiita.com/gnbrganchan/items/43e6c44754cb83220db5

***AutoML [#g8d73b4f]
-Azure Machine Learning で AutoML 使って~
モデル構築 → デプロイまでのハンズオン~
https://qiita.com/Catetin0310/items/e8e86997bd96e0144ced

***Designer [#ff039baf]
...

***Notebooks [#y8234565]
-Azure ML Python SDK を使う
--1:データセットをインプットとして使う - その1~
https://qiita.com/notanaha/items/89fd11fff8eb3fead176
--2:データセットをインプットとして使う - その2~
https://qiita.com/notanaha/items/30d57590c92b03bc953c
--3:アウトプットを Blob ストレージに書きだす - その1~
https://qiita.com/notanaha/items/d22ba02b9cc903d281b6
--4:アウトプットを Blob ストレージに書きだす - その2~
https://qiita.com/notanaha/items/655290670a83f2a00fdc
--5:パイプラインの基本~
https://qiita.com/notanaha/items/6d86631a5dd9956ed011

***デプロイ [#nd451c64]
-Azure Machine Learningからの機械学習モデルのデプロイ(Local/ACI/AKS)~
https://qiita.com/ryokita/items/a65063482cf6367071c4

-Azure Machine Learning で自作モデルをデプロイする~
https://qiita.com/ko10/items/2e702e6b1a1f1e60cc05

-AzureMLで機械学習/推論を実行する~
(データ登録、コンピューティングクラスタでの学習、AKSへのデプロイ)~
https://qiita.com/eisai-bs/items/b68526a8a9e0d05ad702

**YouTube [#o851936b]

***[[Tech Briefing: Azure Machine Learning>Azure Machine Learning#qf7e876c]] [#v3fc0050]
(AutoML & Designer 概要)

***Azure Machine Learning ハンズオンシリーズ [#u4dbee4a]
https://www.youtube.com/playlist?list=PLzmfTuDFwtKEH_W9--AtsD4kwNSPEChPO

-基礎編~
https://www.youtube.com/watch?v=phbcUrWNJy8

--Module
---#1  環境構築
---#2  studio での基本機能の確認

--Resources~
https://speakerdeck.com/konabuta/azure-machine-learning-hanzuonsirizu-ji-chu-bian-zi-liao

-Python による機械学習入門~
https://www.youtube.com/watch?v=VVu7lnE057E

--Module
---#1 Visual Studio Code 入門
---#2 Python と scikit-learn でのモデル学習とチューニング
---#3 様々な環境へのデプロイ

--Resources
---DOC~
https://speakerdeck.com/yomaki/azure-machine-learning-hanzuon-python-niyoruji-jie-xue-xi-ru-men
---Git~
https://github.com/yomaki/azure-ml-python-handson

-テキスト分類~
https://www.youtube.com/watch?v=aJhFJ3tRz5Y

--Module
---#1 テキスト分類に用いるデータの準備
---#2 テキスト分類の考え方とテキスト分類モデル
---#3 モデルトレーニングと推論

--Resources~
スライドなし

-画像分類~
動画なし(https://dllab.connpass.com/event/217506/)

--Module
---#1 画像分類の考え方
---#2 PyTorchによる画像の取扱い
---#3 Azure ML によるモデルトレーニングとデプロイ

--Resources~
スライドなし

-[[モデル解釈>Azure Machine Learningのアルゴリズム・モデル#pbe0695f]]

**Microsoft Docs [#f1fb600a]
-Azure Machine Learning CLI のインストールと使用~
https://docs.microsoft.com/ja-jp/azure/machine-learning/reference-azure-machine-learning-cli

-仮想ネットワークの分離とプライバシーの概要~
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-network-security-overview

-Azure Machine Learning 内に Azure Databricks~
と AutoML を含む開発環境をセットアップする~
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-configure-databricks-automl-environment

***クイックスタート [#p34c8435]
-ワークスペース リソースを作成する~
https://docs.microsoft.com/ja-jp/azure/machine-learning/quickstart-create-resources

***ワークスペースの作成と管理 [#a96ffe14]
-ポータルまたは Python SDK を~
使用してワークスペースを管理する~
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-manage-workspace
-Azure CLI を使用したワークスペースの作成~
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-manage-workspace-cli

***チュートリアル [#c3761469]

-AutoML
--分類モデル~
https://docs.microsoft.com/ja-jp/azure/machine-learning/tutorial-first-experiment-automated-ml
--時系列予測モデル(需要予測)~
https://docs.microsoft.com/ja-jp/azure/machine-learning/tutorial-automated-ml-forecast

-デザイナー

--回帰モデル~
https://docs.microsoft.com/ja-jp/azure/machine-learning/tutorial-designer-automobile-price-train-score

--機械学習モデルをデプロイする~
https://docs.microsoft.com/ja-jp/azure/machine-learning/tutorial-designer-automobile-price-deploy

-Azure Architecture Center

--Azure 上でリアルタイム レコメンデーション API を構築する~
https://docs.microsoft.com/ja-jp/azure/architecture/reference-architectures/ai/real-time-recommendation
--コンテンツ ベースのレコメンデーション システムを構築する~
https://docs.microsoft.com/ja-jp/azure/architecture/example-scenario/ai/scalable-personalization-with-content-based-recommendation-system
--映画のレコメンデーション システムを構築する~
https://docs.microsoft.com/ja-jp/azure/architecture/example-scenario/ai/movie-recommendations-with-machine-learning

***デプロイ [#m0777d36]
-スタジオ UI を使用して自動 ML を設定する~
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-use-automated-ml-for-ml-models

-スタジオを使用して、デザイナーでトレーニングされたモデルをデプロイする~
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-model-designer


**GitHub [#e884a2ee]

***ハンズオン [#d5302ada]
-https://github.com/yomaki/azure-ml-python-handson~
(以下の[[dp100>#t8b5ec12]]の一部を翻訳したもの)

***mslearn-dp100 [#t8b5ec12]
-https://microsoftlearning.github.io/mslearn-dp100/

***リポジトリ [#m59a789d]
-https://github.com/Azure/MachineLearningDesigner
-https://github.com/Azure/MachineLearningNotebooks

----
Tags: [[:クラウド]], [[:BI/AI]], [[:Azure]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS