部署模型进行批量推理和预测
本文介绍如何为脱机(批处理和流式处理)推理部署 MLflow 模型。 Databricks 建议使用 MLflow 部署用于批量推理或流式推理的机器学习模型。 有关使用 MLflow 模型的一般信息,请参阅记录、加载、注册和部署 MLflow 模型。
使用 MLflow 进行模型推理
MLflow 可帮助你为批处理或流式推理生成代码。
- 在 MLflow 模型注册表中,你可以自动生成笔记本以通过 Delta Live Tables 进行批处理或流式推理。
- 在模型的 MLflow 运行页中,可以复制生成的代码片段,以便在 pandas 或 Apache Spark DataFrames 上进行推理。
还可以自定义上述任一选项生成的代码。 有关示例,请参阅以下笔记本:
- 模型推理示例使用通过 scikit-learn 训练并已记录到 MLflow 的模型,以显示如何加载模型并使用它对不同格式的数据进行预测。 笔记本演示如何将模型作为 scikit-learn 模型应用于 pandas DataFrame,以及如何将模型作为 PySpark UDF 应用于 Spark DataFrame。
- MLflow 模型注册表示例演示如何使用模型注册表生成、管理和部署模型。 在该页上,可以搜索
.predict
以识别脱机(批处理)预测的示例。
创建 Azure Databricks 作业
若要将批处理或流式预测作为作业运行,请创建包含用于执行预测的代码的笔记本或 JAR。 然后,将笔记本或 JAR 作为 Azure Databricks 作业执行。 作业可以立即或按计划运行。
流式处理推理
在 MLflow 模型注册表中,你可以自动生成一个将 MLflow PySpark 推理 UDF 与Delta Live Tables 集成在一起的笔记本。
还可以修改生成的推理笔记本以使用 Apache Spark 结构化流式处理 API。
使用深度学习模型进行推理
有关 Azure Databricks 上的深度学习模型推理的信息和示例,请参阅以下文章:
使用 MLlib 和 XGBoost4J 模型进行推理
对于使用 MLlib 和 XGBoost4J 模型进行的可缩放模型推理,请使用原生 transform
方法直接在 Spark 数据帧上执行推理。 MLlib 示例笔记本包括推理步骤。
自定义和优化模型推理
使用 MLflow API 在 Spark DataFrames 上运行推理时,可以将模型加载为 Spark UDF,并使用分布式计算大规模应用模型。
可以自定义模型以添加预处理或后期处理,并优化大型模型的计算性能。 自定义模型的一个不错的选择是 MLflow pyfunc API,它允许使用自定义逻辑包装模型。
如果需要进行进一步自定义,可以在 Pandas UDF 或 pandas 迭代器 UDF 中手动包装机器学习模型。 请参阅深度学习示例。
对于较小的数据集,也可使用库提供的原生模型推理惯例。