Microsoft Fabric 中的机器学习模型

机器学习模型是一个文件,在经过训练后可以识别特定类型的模式。 可以通过一组数据训练模型,并为其提供用于推理该数据集并从中进行学习的算法。 对模型进行训练后,可以使用模型来推理之前从未见过的数据,并对这些数据做出预测。

MLflow 中,机器学习模型可以包含多个模型版本。 在这里,每个版本都可以表示一个模型迭代。 本文介绍如何与 ML 模型交互,以跟踪和比较模型版本。

创建机器学习模型

在 MLflow 中,机器学习模型包括标准打包格式。 此格式允许在各种下游工具(包括 Apache Spark 上的批量推理)中使用这些模型。 该格式定义了一个约定,用于将模型保存为不同下游工具可以理解的不同“风格”。

可以直接从 Fabric UI 创建机器学习模型。 MLflow API 也可以直接创建模型。

若要从 UI 创建机器学习模型,可以:

  1. 创建新的数据科学工作区,或选择现有的数据科学工作区。

  2. 从“+ 新建”下拉列表中,选择“模型”,在数据科学工作区中创建空模型

    Screenshot showing the New drop-down menu.

  3. 创建模型后,可以开始添加模型版本,以跟踪运行指标和参数。 注册试验运行或将其保存到现有模型。

还可以使用 mlflow.register_model() API 直接从创作体验创建机器学习试验。 如果不存在具有给定名称的已注册机器学习模型,则 API 会自动创建它。

import mlflow

model_uri = "runs:/{}/model-uri-name".format(run.info.run_id)
mv = mlflow.register_model(model_uri, "model-name")

print("Name: {}".format(mv.name))
print("Version: {}".format(mv.version))

管理机器学习模型中的版本

机器学习模型包含用于简化跟踪和比较的模型版本的集合。 在模型中,数据科学家可以在各种模型版本中进行导航,以探索基础参数和指标。 数据科学家还可以跨模型版本进行比较,以确定较新的模型是否会产生更好的结果。

跟踪机器学习模型

机器学习模型版本表示注册用于跟踪的单个模型。

Screenshot showing the details screen of a model.

每项模型版本都包含以下信息:

  • 创建时间:模型的创建日期和时间。
  • 运行名称:用于创建此特定模型版本的试验运行的标识符。
  • 超参数:超参数以键值对的形式保存。 键和值都是字符串。
  • 指标:保存为键值对的运行指标。 值为数字。
  • 模型架构/签名:模型输入和输出的说明。
  • 记录的文件:以任何格式记录的文件。 例如,可以记录图像、环境、模型和数据文件。

比较和筛选机器学习模型

若要比较和评估机器学习模型版本的质量,可以比较所选版本的参数、指标和元数据。

直观比较机器学习模型

可以直观地比较现有模型内的运行。 直观比较可以在多个版本之间轻松导航和排序。

Screenshot showing a list of runs for comparison.

要比较运行,可以:

  1. 选择包含多个版本的现有机器学习模型。
  2. 选择“视图”选项卡,然后导航到“模型列表”视图。 还可以直接从详细信息视图中选择“查看模型列表”选项。
  3. 可以引用表中的列。 展开“自定义列”窗格。 你可以从此处选择要查看的属性、指标和超参数。
  4. 最后,可以在指标比较窗格中选择多个版本来比较其结果。 在此窗格中,可以通过对图表标题、可视化效果类型、X 轴、Y 轴等进行更改来自定义图表。

使用 MLflow API 比较机器学习模型

数据科学家还可以使用 MLflow 在工作区中保存的多个模型之间进行搜索。 请访问 MLflow 文档,以了解用于模型交互的其他 MLflow API。

from pprint import pprint

client = MlflowClient()
for rm in client.list_registered_models():
    pprint(dict(rm), indent=4)

应用机器学习模型

在数据集上训练模型后,可以将该模型应用于从未出现过的数据,以生成预测。 我们称此模型使用技术评分推理。 有关 Microsoft Fabric 模型评分的详细信息,请参阅下一部分。