在 MLflow 中使用自定义 PyFuncs 部署高级 LLMs

高级大型语言模型(如 MPT-7B 指令变换器)复杂且有与传统 MLflow 风格不符的要求。这需要更深入的理解和定制解决方案的需求。

备注

本教程利用 mlflow.pyfunc.PythonModel 类来创建一个用于构建自定义 GenAI 解决方案的自定义 PyFunc 模型。由于简化的开发体验和更简单的部署方法,建议使用较新的 mlflow.pyfunc.ChatModel 类来构建自定义实现。了解更多信息,请参阅 使用 ChatModel 构建 GenAI 应用程序的指南

小技巧

MLflow 2.12.2 引入了“从代码生成模型”的功能,这大大简化了通过脚本序列化来序列化和部署自定义模型的过程。虽然这里的教程作为参考很有价值,但我们强烈建议将自定义模型实现迁移到这个新范式。你可以在 从代码生成模型指南 中了解更多关于从代码生成模型的信息。

本教程包含什么内容?

本指南旨在提供关于使用 MLflow 部署高级 LLMs 的见解,重点是使用自定义 PyFuncs 来解决挑战:

  • 大语言模型世界:LLMs 的介绍,特别是像 MPT-7B 指令转换器这样的模型。我们将深入探讨它们的复杂性、重要性以及与其部署相关的挑战。

  • 为什么在LLM部署中需要自定义PyFuncs?: 我们将探讨在LLM背景下需要自定义PyFuncs的原因。它们如何提供桥梁,确保LLM能够无缝部署,同时遵守MLflow的标准?

    • 管理复杂行为:自定义 PyFuncs 如何帮助处理 MLflow 默认风格无法满足的复杂模型行为和依赖关系。

    • 接口数据操作:深入了解如何通过自定义 PyFuncs 操作接口数据以生成提示,从而简化 RESTful 环境中的最终用户交互。

  • 为LLM部署定制PyFuncs: 一步一步的指南,介绍如何使用自定义PyFunc定义、管理和部署LLM。我们将探讨如何设计一个`pyfunc`来满足LLM的需求和行为,然后如何使用MLflow进行部署。

  • 传统LLM部署的挑战:认识到在使用MLflow内置功能部署高级LLM时的问题和限制。理解为什么在这种情况下自定义PyFuncs变得至关重要。

通过本指南的结束,您将深入了解如何使用自定义 PyFuncs 在 MLflow 中部署高级 LLMs。您将理解自定义 PyFuncs 在使复杂部署变得简化和高效中的作用。

探索教程