「[[マイクロソフト系技術情報 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のモデルのデプロイ * 目次 [#eee909ac] #contents *概要 [#r5730792] [[Azure Machine Learning]](AzML)のモデルのデプロイについて。~ (特に、クロスプラットフォームのデプロイについて確認したい。 *詳細 [#r65181a7] **デプロイ先 [#ac386d44] のコンピューティング環境 ***ローカル [#h3901a5a] [[Compute Instance>Azure Machine Learning#e3281bb1]] の [[Jupyter Notebook>AzureのNotebook#u03b2426]] から、同じ VM 上へモデルをデプロイ。 ***[[ACI>Azure Container Instances (ACI)]] [#ub2bd21d] ***[[AKS>Azure Kubernetes Service (AKS)]] [#db2dd952] ***その他 [#acee34ca] -GPU~ リアルタイム画像処理に特化した演算装置 --GPU対応マシンのコンピューティング環境を作成 --PythonのSDKで[[WebAPIとしてデプロイ>#d93a5eb7]]する。 -FPGA~ 製造後に購入者や設計者が構成を設定できる集積回路 --TensorFlow モデルを定義する --SavedModelでモデルをシリアライズ(ZIPへ) --PythonのSDKで、 ---SavedModelでモデルをデシリアライズ(ZIPから) ---TensorFlowグラフを ONNX 形式に変換 ---FPGA対応マシンのコンピューティング環境を作成 ---Dockerイメージ化してコンピューティング環境にデプロイ ---Dockerコンテナは、gRPC と TensorFlow Serving の "予測" API をサポート -[[Cognitive Search]]~ -参考 --GPU~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-inferencing-gpus --FPGA~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-fpga-web-service --FPGA~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-fpga-web-service --Cognitive Search~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-model-cognitive-search **モデルの形式 [#m74a2e78] ***WebAPI [#d93a5eb7] -作成したモデルを [[ローカル>#h3901a5a]] / [[ACI>#ub2bd21d]] / [[AKS>#db2dd952]] のいずれかにデプロイ。 -デプロイは、GUIで行うことも出来るし、コードで行うことも出来る。 -コードで行う場合の方法も、CLIでやる場合と、Pythonでやる場合があり、ややこしい。 --CLI ---エントリ・スクリプトを定義する。~ Web サービスに送信されたデータをモデルに渡す(Python)スクリプト。 ---推論構成をJSONで定義する。~ (エントリ・スクリプトやDockerイメージ、Conda環境の情報を含む) ---デプロイ構成をJSONで定義する。~ (デプロイ先は、前述の選択肢から選択可能) ---以下のCLIのコマンドでモデルをWebAPIとしてデプロイする。 az ml model deploy -n myservice \ -m モデル名:バージョン \ --overwrite \ --ic 推論構成.json \ --dc デプロイ構成.json \ -g <resource-group> \ -w <workspace-name> --Python ---エントリ・スクリプトを定義する。~ Web サービスに送信されたデータをモデルに渡す(Python)スクリプト。 ---Conda 環境をYAMLで定義する。~ (conda env export、conda env createで使う) ---推論構成をSDKで定義する。~ (エントリ・スクリプトやDockerイメージ、Conda環境の情報を含む) ---デプロイ構成をSDKで定義する。~ (デプロイ先は、前述の選択肢から選択可能) ---以下のCLIのコマンドでモデルをWebAPIとしてデプロイする。 from azureml.core.model import Model # Name of the web service that is deployed aks_service_name = 'aks-dnn-mnist' # Get the registerd model model = Model(ws, "tf-dnn-mnist") # Deploy the model aks_service = Model.deploy(ws, models=[model], inference_config=inference_config, deployment_config=gpu_aks_config, deployment_target=aks_target, name=aks_service_name) aks_service.wait_for_deployment(show_output=True) print(aks_service.state) -参考 --機械学習モデルのデプロイ~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-and-where --Web サービスとしてデプロイされるモデル用のクライアントを作成する~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-consume-web-service --デプロイ先~ ・[[ローカル>#h3901a5a]]~ ・https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-local-container-notebook-vm~ ・https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb~ ・[[ACI>#ub2bd21d]]~ ・https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-azure-container-instance~ ・https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.ipynb~ ・https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-multi-model/multi-model-register-and-deploy.ipynb~ ・[[AKS>#db2dd952]]~ ・https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-azure-kubernetes-service?tabs=python~ ・https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.ipynb~ ・https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks-ssl.ipynb~ ・https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/production-deploy-to-aks-gpu/production-deploy-to-aks-gpu.ipynb ***バッチ [#ba8b03f7] -バッチ エンドポイントがプレビューで存在する。 -分散処理の場合は、[[Azure Databricks]]に持って行くとか? ***Docker [#icc3012c] -モデル同梱されたコンテナ~ モデルをデプロイせずに Docker イメージを作成する。 --Dockerイメージをダウンロードして実行 --Dockerビルドに使用するファイルをダウンロード --Dockerコンテナを実行すると[[WebAPI>#d93a5eb7]]を公開する -事前構築済み推論用コンテナ~ モデル デプロイの --待ち時間が短縮される。 --成功率が向上する。 --不要なイメージのビルドを回避できる。 この機能の意味は、モデル デプロイの --待ち時間短縮 --成功率の向上 --不要なイメージのビルド回避 -参考 docker-image-inference --モデルのパッケージ化~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-package-models --推論用の事前構築済み Docker イメージ~ https://docs.microsoft.com/ja-jp/azure/machine-learning/concept-prebuilt-docker-images-inference --事前構築済み Docker イメージを拡張する~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-extend-prebuilt- ***ダウンロード [#vd317616] -[[ONNX>https://techinfoofmicrosofttech.osscons.jp/index.php?ML.NET#df076ea1]]~ ダウンロードしたモデルは、登録できる。 ※ ソースコードのダウンロード手順は、~ エントリ・スクリプトやConda 環境の話。 **開発系の機能別 [#mce0e2d7] 登録されたモデルをデプロイする方法が、~ 開発系の機能毎に差異があるか?と言うと、無さそう。 ***Automated ML [#w3030725] -参考 --スタジオ UI を使用して自動 ML を設定する~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-use-automated-ml-for-ml-models ***Designer [#rd53158d] -参考 --スタジオを使用して、デザイナーでトレーニングされたモデルをデプロイする~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-deploy-model-designer ***Notebooks [#v56df2a0] -参考 --azure-ml-python-handson/module3 deployment targets.ipynb at main · yomaki/azure-ml-python-handson~ https://github.com/yomaki/azure-ml-python-handson/blob/main/module3%20deployment%20targets.ipynb *参考 [#r83a0806] **YouTube [#m5f10aba] -MLOps勉強会 第10回 Part1 MLflow + ONNX~ で実現するクラウドネイティブな MLOps~ https://www.youtube.com/watch?v=8wHcx8_459U **GitHub [#z27570e9] -Azure Machine Learning で作成した~ モデルの推論を実行する方法について~ Japan Machine Learning Support Blog~ https://jpmlblog.github.io/blog/2021/01/13/AML-model-inference/ **Microsoft Docs [#ccc799d8] -概念 > モデルをデプロイする。 --エンドポイント~ https://docs.microsoft.com/ja-jp/azure/machine-learning/concept-endpoints --モデルの移植性(ONNX)~ https://docs.microsoft.com/ja-jp/azure/machine-learning/concept-onnx --事前構築済み Docker イメージ~ https://docs.microsoft.com/ja-jp/azure/machine-learning/concept-prebuilt-docker-images-inference -MLOps:ML モデル管理~ https://docs.microsoft.com/ja-jp/azure/machine-learning/concept-model-management-and-deployment -Azure Databricks ML 実験用の MLflow Tracking~ https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-use-mlflow-azure-databricks ---- Tags: [[:クラウド]], [[:BI/AI]], [[:Azure]]