「[[マイクロソフト系技術情報 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]]