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 中没有可用的模型,因为它缺少所需的架构文件。
我的选择似乎是:
- 寻找解决方法,可能使用有效的 REST api of the model in a power query.
- 重写部署代码并在 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)
我目前正在尝试将当前作为 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 中没有可用的模型,因为它缺少所需的架构文件。
我的选择似乎是:
- 寻找解决方法,可能使用有效的 REST api of the model in a power query.
- 重写部署代码并在 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)