模型服务终结点的无服务器优化部署

本文介绍如何在提供终结点的 模型 上使用无服务器优化部署。 无服务器优化部署显著降低部署时间,并使模型服务环境与模型训练环境相同。

什么是无服务器优化部署?

无服务器优化部署在模型注册期间利用无服务器笔记本环境中的打包和暂存模型工件,从而加速端点部署,并确保训练和服务之间环境的一致性。

这不同于非无服务器优化部署,其中模型项目和环境在部署时打包到容器中。 在这种情况下,服务环境可能与模型训练期间使用的环境不匹配。

要求

无服务器优化终结点的要求与模型服务终结点相同(请参阅 要求)。 此外:

  • 模型必须是自定义模型(而不是 FMAPI
  • 必须使用版本 3 或 4 在无服务器笔记本中记录和注册模型
  • 必须记录模型并将其注册到 mlflow>=3.1
  • 必须在 UC 中注册模型,并使用 CPU 提供服务
  • 模型的最大环境大小为 1GB

使用优化的无服务器部署

记录和注册模型时,请使用无服务器笔记本和客户端 3 或 4 以及 mlflow>=3.1

若要调整无服务器环境的客户端版本,请参阅 “配置无服务器环境”。

然后,在注册模型时,将参数设置为所需的 env_pack 值。

import mlflow
from mlflow.utils.env_pack import EnvPackConfig

mlflow.register_model(
    model_info.model_uri,
    model_name,
    env_pack=env_pack=EnvPackConfig(name="databricks_model_serving")
)

添加 env_pack 参数将使功能在模型注册期间打包和暂存模型工件及无服务器笔记本环境,以便在部署期间进行使用的准备。 与不注册env_pack模型时相比,这可能需要额外的时间。

EnvPackConfig 具有一个参数 install_dependenciesTrue 默认情况下),用于确定模型依赖项是否安装在当前环境中,以确认环境是否有效。 如果要跳过该步骤,请将值设置为 False

注释

如果没有 Internet 访问的工作区中的终结点,或者对自定义库具有依赖项的终结点,如果 install_dependencies 设置为 True,则可能会失败。 在这些情况下,设置 install_dependenciesFalse.

还可以用EnvPackConfig(...)来替换"databricks_model_serving",作为简写形式。 这等效于 EnvPackConfig(name="databricks_model_serving", install_dependencies = True)

注册模型完成后,可以在 模型服务中部署模型。 请注意,部署时间会缩短,事件日志不再指示容器生成。