部署模型进行批量推理和预测

本文介绍如何为脱机(批处理和流式处理)推理部署 MLflow 模型。 Databricks 建议使用 MLflow 部署用于批量推理或流式推理的机器学习模型。 有关使用 MLflow 模型的一般信息,请参阅记录、加载、注册和部署 MLflow 模型

使用 MLflow 进行模型推理

MLflow 可帮助你为批处理或流式推理生成代码。

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

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

创建 Azure Databricks 作业

若要将批处理或流式预测作为作业运行,请创建包含用于执行预测的代码的笔记本或 JAR。 然后,将笔记本或 JAR 作为 Azure Databricks 作业执行。 作业可以立即或按计划运行。

流式处理推理

在 MLflow 模型注册表中,你可以自动生成一个将 MLflow PySpark 推理 UDF 与Delta Live Tables 集成在一起的笔记本。

还可以修改生成的推理笔记本以使用 Apache Spark 结构化流式处理 API。 请参阅 Apache Spark MLib 管道和结构化流式处理示例

使用深度学习模型进行推理

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

使用 MLlib 和 XGBoost4J 模型进行推理

对于使用 MLlib 和 XGBoost4J 模型进行的可缩放模型推理,请使用原生 transform 方法直接在 Spark 数据帧上执行推理。 MLlib 示例笔记本包括推理步骤。

自定义和优化模型推理

使用 MLflow API 在 Spark DataFrames 上运行推理时,可以将模型加载为 Spark UDF,并使用分布式计算大规模应用模型。

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

如果需要进行进一步自定义,可以在 Pandas UDF 或 pandas 迭代器 UDF 中手动包装机器学习模型。 请参阅深度学习示例

对于较小的数据集,也可使用库提供的原生模型推理惯例。