PowerBI 和 MLflow 集成(通过 AzureML)

PowerBI and MLflow integration (through AzureML)

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

我看可以integrated but the model requires the addition of a schema file when it is being deployed as a webservice。否则,无法在 PowerBI 中查看模型。

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

我的选择似乎是:

  1. 寻找解决方法,可能使用有效的 REST api of the model in a power query.
  2. 重写部署代码并在 Azure 而不是 MLflow 中处理 Web 服务部署步骤。

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

第 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)