首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python文件中创建Azure ML、Inference_Config和Deployment_Config类对象?

如何在Python文件中创建Azure ML、Inference_Config和Deployment_Config类对象?
EN

Stack Overflow用户
提问于 2021-03-02 18:29:24
回答 3查看 746关注 0票数 1

在使用AZ CLI部署机器学习模型时,命令

代码语言:javascript
运行
复制
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.ymldeployment_config_aks.yml文件来部署模型。

但是,如果我们在Python语言中使用azureml-sdk,则命令如下:

代码语言:javascript
运行
复制
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_configaks_config以便在Python中使用呢?是否有使用YAML定义的.from_file()选项?我的用例是在Azure Pipeline中创建Python步骤作为MLOps工作流!

EN

回答 3

Stack Overflow用户

发布于 2021-03-02 20:19:21

这些可以从Azure ML下载,以Python形式传递到Azure ML SDK中。

所以使用下面的代码来部署:

代码语言:javascript
运行
复制
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模型下载。

代码语言:javascript
运行
复制
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')

我在这个video中解释了更多,完整的笔记本是here

票数 2
EN

Stack Overflow用户

发布于 2021-03-03 04:00:51

UPDATE“我现在得到你想要的了。你想在InferenceConfig类上有一个方法,你可以像传递.yml类一样传递一个CondaEnvironment,对吧?这不受支持,但我同意它应该是一个功能,因为它将使用户更容易采用AML SDK v2。一个变通办法可能是将yaml读取到python字典中,并将这些参数插入到类创建调用中……

Python SDK目前不支持使用YAML配置模型部署配置,但很快就会进入基于YAML的私有预览。这是您正在寻找的内容的almost working version,不久将提供给公众预览。请访问corresponding GitHub repo获取更多信息。

代码语言:javascript
运行
复制
az ml endpoint create --file batchendpoint.yml

batchendpoint.yml

代码语言:javascript
运行
复制
name: myBatchEndpoint
type: batch
auth_mode: AMLToken
deployments:
  blue:
    model: azureml:models/sklearn_regression_model:1
    code_configuration:
      code:
        directory: ./endpoint
      scoring_script: ./test.py
    environment: azureml:AzureML-Minimal/versions/1
    scale_settings:
      node_count: 1
    batch_settings:
      partitioning_scheme:
        mini_batch_size: 5
      output_configuration:
        output_action: AppendRow
        append_row_file_name: append_row.txt
      retry_settings:
        maximum_retries: 3
        timeout_in_seconds: 30
      error_threshold: 10
      logging_level: info
    compute:
      target: azureml:cpu-cluster
票数 1
EN

Stack Overflow用户

发布于 2021-03-03 14:51:26

您可以参考以下教程,尝试设置Python脚本来创建和部署Azure机器学习。

在完成Python脚本之后,您可以尝试在Azure DevOps上的YAML管道中执行该脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66437607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档