部署用于推断和预测的模型

Databricks建议使用MLflow来部署机器学习模型。您可以使用MLflow部署用于批处理或流推断的模型,或者设置REST端点来为模型服务。

本文描述如何为离线(批处理和流处理)推理和在线(实时)服务部署MLflow模型。有关使用MLflow模型的一般信息,请参见记录、加载、注册和部署MLflow模型

提示

类中注册模型,可以简化模型部署MLflow模型注册表.在您注册了您的模型之后,您就可以自动生成笔记本用于批量推断或配置模型用于在线服务无服务器实时推理经典MLflow模型服务于数据库

离线预测

本节包括在Databricks上设置批处理或流式预测的说明和示例。

使用MLflow进行模型推断

MLflow帮助您生成用于批处理或流推理的代码。

您还可以自定义由上述任一选项生成的代码。有关例子,请参阅以下笔记本:

  • 模型推断示例使用scikit-learn训练过的模型,之前登录到MLflow,以展示如何加载模型并使用它对不同格式的数据进行预测。笔记本演示了如何将模型作为scikit-learn模型应用到pandas DataFrame,以及如何将模型作为PySpark UDF应用到Spark DataFrame。

  • MLflow模型注册表示例展示如何使用模型注册表构建、管理和部署模型。在那个页面上,你可以搜索.predict识别离线(批量)预测的例子。

创建Databricks作业

要将批处理或流式预测作为作业运行,请创建一个包含用于执行预测的代码的笔记本或JAR。然后,将笔记本或JAR作为Databricks执行工作.作业可以立即运行,也可以在时间表

流推理

在MLflow模型注册表中,您可以这样做自动生成一个集成MLflow PySpark推理UDF的笔记本Delta活动表

您还可以修改生成的推断笔记本以使用Apache Spark结构化流API。参见Apache SparkMLlib管道和结构化流的例子

深度学习模型推理

有关Databricks上深度学习模型推理的信息和示例,请参阅以下文章:

使用MLlib和XGBoost4J模型进行推断

对于使用MLlib和XGBoost4J模型的可伸缩模型推断,请使用本机变换方法直接在Spark dataframe上执行推理。的MLlib示例笔记本包括推理步骤。

自定义和优化模型推理

当您使用MLflow api在Spark dataframe上运行推理时,您可以将模型作为Spark UDF加载,并使用分布式计算将其大规模应用。

您可以自定义您的模型,以添加预处理或后处理,并优化大型模型的计算性能。自定义模型的一个很好的选择是MLflow pyfunc API,它允许您使用自定义逻辑包装模型。

如果你需要做进一步的定制,你可以手动将你的机器学习模型包装在Pandas UDF或pandas迭代器UDF.看到深度学习的例子

对于较小的数据集,还可以使用库提供的本机模型推断例程。

模型服务

对于Python MLflow模型,Databricks允许您将来自Model Registry的机器学习模型作为REST端点托管,这些REST端点会根据模型版本及其阶段的可用性自动更新。

第三方模式服务

要将模型部署到第三方服务框架,请使用mlflow。< deploy-type > .deploy ().有关示例,请参见为在线服务部署模型