azure - 如何在 Python 中从 YAML 文件创建 Azure ML Inference_Config 和 Deployment_Config 类对象?
问题描述
使用 AZ CLI 部署机器学习模型时,命令
az ml model deploy --name $(AKS_DEPLOYMENT_NAME)
--model '$(MODEL_NAME):$(get_model.MODEL_VERSION)' \
--compute-target $(AKS_COMPUTE_NAME) \
--ic inference_config.yml \
--dc deployment_config_aks.yml \
-g $(RESOURCE_GROUP) --workspace-name $(WORKSPACE_NAME) \
--overwrite -v
将使用inference_config.yml
anddeployment_config_aks.yml
文件来部署模型。
但是,如果我们azureml-sdk
在 Python 中使用,命令是:
from azureml.core import Environment
from azureml.core.conda_dependencies import CondaDependencies
conda_deps = CondaDependencies.create(conda_packages=['numpy','scikit-learn==0.19.1','scipy'], #for-example
pip_packages=['azureml-defaults', 'inference-schema']) #for-example
myenv = Environment(name='myenv')
myenv.python.conda_dependencies = conda_deps
from azureml.core.model import InferenceConfig
inf_config = InferenceConfig(entry_script='score.py', environment=myenv)
aks_config = AksWebservice.deploy_configuration()
aks_service_name ='some-name'
aks_service = Model.deploy(workspace=ws,
name=aks_service_name,
models=[model],
inference_config=inf_config,
deployment_config=aks_config,
deployment_target=aks_target)
我们究竟如何使用 Conda 依赖文件conda_dependencies.yml
、Inference_Config 文件inference_config.yml
和部署配置文件deployment_config_aks.yml
来创建对象inf_config
并aks_config
在 Python 中使用?是否有.from_file()
使用 YAML 定义的选项?我的用例是在 Azure Pipelines 中创建 Python 步骤作为 MLOps 工作流!
解决方案
这些可以从 Azure ML 下载,以传递到 Python 中的 Azure ML SDK。
因此使用此代码进行部署:
from azureml.core.model import InferenceConfig
from azureml.core.webservice import AciWebservice
from azureml.core.webservice import Webservice
from azureml.core.model import Model
from azureml.core.environment import Environment
inference_config = InferenceConfig(entry_script=script_file_name, environment=myenv)
aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1,
memory_gb = 1,
description = 'Iris classification service')
aci_service_name = 'automl-sample-bankmarketing-all'
aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)
aci_service.wait_for_deployment(True)
AutoML 模型可以下载脚本文件和环境文件。
from azureml.core.environment import Environment
from azureml.automl.core.shared import constants
best_run.download_file(constants.CONDA_ENV_FILE_PATH, 'myenv.yml')
myenv = Environment.from_conda_specification(name="myenv", file_path="myenv.yml")
script_file_name = 'inference/score.py'
best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py')
推荐阅读
- akka.net-streams - 如何将项目排入 akka.net 队列源
- c++ - 如何将 tif 图像从 cv::Mat 数据类型转换为 Eigen::MatrixXf
- javascript - 如何让非 Angular Service Worker 在 Angular 中运行
- python - 如何获取位置参数来处理终端通配符?
- php - Docxpresso 库在渲染中忽略符号和 & 符号
- php - 如何优化 laravel 工作者的高 CPU 使用率?
- mysql - 将 MySQL 表从一个垂直列转换为多个水平列
- python - 从 python pandas 中的嵌套 json 读取特定信息
- python - 如何将元组列表转换为字典的字典
- boost-asio - Boost Async Websocket 服务器问题