跳到主要内容

在 MLflow 中使用自定义 PyFunc 部署高级 LLM

注意

从 MLflow 3.0.0 开始,我们推荐使用 ResponsesAgent 而非 ChatModel。更多详情请参阅 ResponsesAgent 简介

MPT-7B instruct transformer 等高级大型语言模型(LLM)非常复杂,并且其需求与传统的 MLflow flavor 不符。这需要更深入的理解和定制解决方案的需求。

注意

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

提示

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

本教程内容概要

本指南旨在深入探讨使用 MLflow 部署高级 LLM,重点是使用自定义 PyFunc 来解决挑战。

  • LLM 的世界:介绍 LLM,特别是 MPT-7B instruct transformer 等模型。我们将深入探讨它们的复杂性、重要性以及部署它们的挑战。
  • 为什么 LLM 部署需要自定义 PyFunc?:我们将探讨 LLM 背景下需要自定义 PyFunc 的原因。它们如何提供桥梁,确保 LLM 能够无缝部署,同时遵守 MLflow 的标准?
    • 管理复杂行为:自定义 PyFunc 如何帮助处理 MLflow 默认 flavor 未能满足的复杂模型行为和依赖关系。
    • 接口数据操作:深入了解自定义 PyFunc 如何允许操作接口数据以生成提示,从而简化 RESTful 环境中的最终用户交互。
  • 为 LLM 部署构建自定义 PyFunc:逐步介绍如何使用自定义 PyFunc 定义、管理和部署 LLM。我们将探讨如何设计一个 pyfunc 来满足 LLM 的需求和行为,然后如何使用 MLflow 进行部署。
  • 传统 LLM 部署的挑战:认识到在使用 MLflow 内置功能部署高级 LLM 时遇到的问题和限制。了解为什么在这种情况下自定义 PyFunc 至关重要。

完成本指南后,您将对如何使用自定义 PyFunc 在 MLflow 中部署高级 LLM 有深入的了解。您将体会到自定义 PyFunc 在使复杂部署变得流畅而高效方面的作用。

探索教程