0

我目前正在尝试将当前部署为 AzureML 上的 Web 服务的 ML 模型与 PowerBI 集成。

我看到它可以集成,但模型在部署为 webservice时需要添加模式文件。没有这个,模型就无法在 PowerBI 中查看。

我遇到的问题是我使用 MLflow 记录 ML 模型的性能,然后使用 MLflow 的 AzureML 集成 - mlflow.azureml.deploy() 将选定的模型作为 Web 服务部署到 AzureML。不幸的是,在部署模型之前没有定义架构文件的选项,因此导致 PowerBI 中没有可用的模型,因为它缺少所需的架构文件。

我的选择似乎是:

  1. 找到一种解决方法,可能在 power query 中使用模型的工作 REST api
  2. 在 Azure 而不是 MLflow 中重写部署代码并处理 Web 服务部署步骤。

我想我会问我是否遗漏了一些东西,因为在使用 mlflow.azureml.deploy() 部署时,我找不到使用当前代码在 MLflow 中定义模式文件的解决方法。

4

1 回答 1

0

第 2 点是我们解决此问题的方法。我们没有使用 MLflow 部署到 Azure 上的评分服务,而是编写了一个自定义代码,该代码在容器初始化时加载 MLflow 模型。

评分代码是这样的:

import os
import json
from mlflow.pyfunc import load_model

from inference_schema.schema_decorators import input_schema, output_schema
from inference_schema.parameter_types.numpy_parameter_type import NumpyParameterType

def init():
    global model
    model = load_model(os.path.join(os.environ.get("AZUREML_MODEL_DIR"), "awesome_model"))

@input_schema('data', NumpyParameterType(input_sample))
@output_schema(NumpyParameterType(output_sample))

def run(data):
    return model.predict(data)
于 2020-09-20T12:28:40.243 回答