跳到主要内容

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

注意

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

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

注意

本教程将使用 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 默认风格无法满足的复杂模型行为和依赖项。
    • 接口数据操作:深入了解自定义 PyFunc 如何允许操作接口数据以生成提示,从而简化 RESTful 环境中的最终用户交互。
  • 为 LLM 部署制作自定义 PyFunc:分步介绍如何使用自定义 PyFunc 定义、管理和部署 LLM。我们将探讨如何设计一个 pyfunc 来满足 LLM 的需求和行为,然后如何使用 MLflow 进行部署。
  • 传统 LLM 部署的挑战:认识到使用 MLflow 内置功能部署高级 LLM 时遇到的问题和限制。了解为什么在这种情况下自定义 PyFunc 至关重要。

通过本指南的学习,您将对如何使用自定义 PyFunc 在 MLflow 中部署高级 LLM 有深入的了解。您将认识到自定义 PyFunc 在使复杂部署 streamlined 和高效方面的作用。

探索教程