跳到主要内容

使用 MLflow 构建自定义 Python 函数模型

MLflow 提供了广泛的预定义模型类型,但有时您需要超越这些,打造满足您特定需求的内容。这时自定义 PyFuncs 就派上用场了。

提示

MLflow 2.12.2 引入了“代码模型”功能,该功能通过使用脚本序列化极大地简化了自定义模型的序列化和部署过程。虽然本教程可作为参考,但我们强烈建议您将自定义模型实现迁移到此新模式。您可以在 代码模型指南 中了解更多关于代码模型的信息。

本教程内容概要

本指南旨在详细介绍 PyFuncs 的各个方面,解释其必要性、定义和使用方法。

  • 命名模型类型:在深入自定义领域之前,了解 MLflow 中现有的命名模型类型至关重要。这些预定义模型类型简化了模型跟踪和部署,但可能无法满足所有用例。

  • 自定义 PyFuncs 揭秘:自定义 PyFunc 到底是什么?它与命名模型类型有何不同,以及何时会使用它?我们将进行介绍

    • 预/后处理:将预处理或后处理步骤集成到模型的预测管道中。

    • 不受支持的库:也许您正在使用 MLflow 尚不支持的冷门或新发布的机器学习库。没问题,自定义 PyFuncs 可以满足您的需求。

    • 外部引用:通过外部化引用,避免序列化问题并简化模型部署。

  • 自定义 PyFuncs 入门:我们将从最简单的示例开始,阐明自定义 PyFunc 所需的核心组件和抽象方法。

  • 处理不受支持的库:我们将逐步增加复杂性,演示如何使用自定义 PyFunc 将不受支持库中的模型集成到 MLflow 中。

  • 覆盖默认推理方法:有时,默认设置并非您想要的。我们将向您展示如何覆盖模型的推理方法,例如,使用 predict_proba 而不是 predict

通过本教程的学习,您将清晰地了解如何在 MLflow 中利用自定义 PyFuncs 来满足专业需求,确保灵活性且不牺牲易用性。