创建和管理模式服务端点

本文描述了如何创建和管理模型服务端点,利用砖模型服务

需求

  • 模型服务只能用于面向MLflow MLflow模型中的模型注册注册表。你必须声明所有模型conda环境依赖性或要求文件。

    • 如果你没有注册模式,看到笔记本的例子预包装模型可以使用设置和运行模型服务端点。

  • 必须在您的工作空间支持地区

  • 如果你从一个私人使用自定义库或库镜像服务器与你的模型,看看使用自定义Python库模型在你创建模型端点。

重要的

如果你依赖于水蟒,审查服务条款请注意附加信息。

访问控制

理解访问控制模型的选择服务端点和端点管理最佳实践指导,明白了服务端点访问控制

创建模型服务端点

您可以创建模型与砖机器学习的API服务端点或砖机器学习的UI。端点可以注册任何Python MLflow模型统一目录工作空间模型注册

API的工作流程

下面的示例创建一个端点的第一个版本ads1模型在模型中注册中心注册。指定一个模型从统一目录,提供完整的型号名称包括父目录和模式等,catalog.schema.example-model

帖子. . / api / 2.0 / serving-endpoints{“名称”:“feed-ads”,“配置”:{“served_models”:[{“model_name”:“ads1”,“model_version”:“1”,“workload_size”:“小”,“scale_to_zero_enabled”:真正的})}}

下面是一个示例响应。端点的config_update状态是IN_PROGRESS和服务模型创建状态。的pending_config字段显示的细节的更新进步。

{“名称”:“feed-ads”,“创造者”:“customer@example.com”,“creation_timestamp”:1666829055000,“last_updated_timestamp”:1666829055000,“状态”:{“准备好了”:“NOT_READY”,“config_update”:“IN_PROGRESS”},“pending_config”:{“start_time”:1666718879000,“served_models”:[{“名称”:“ads1-1”,“model_name”:“ads1”,“model_version”:“1”,“workload_size”:“小”,“scale_to_zero_enabled”:真正的,“状态”:{“部署”:“DEPLOYMENT_CREATING”,“deployment_state_message”:“创建”},“创造者”:“customer@example.com”,“creation_timestamp”:1666829055000}),“config_version”:1,“traffic_config”:{“路线”:({“served_model_name”:“ads1-1”,“traffic_percentage”:One hundred.}]}},“id”:“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,“permission_level”:“CAN_MANAGE”}

UI工作流

您可以创建一个模型服务的端点服务UI。

  1. 点击服务在侧边栏显示UI。

  2. 点击创建服务端点

    模型服务面板数据砖UI
  3. 服务端点的名称领域提供一个名称为您的端点。

  4. 编辑配置部分

    1. 选择你想要的模型服务目前在工作区中模型注册表或统一目录。

    2. 选择你想服务模型和模型版本。

    3. 点击确认

  5. 选择使用什么样的尺寸计算。

  6. 指定端点是否应该扩展到零不使用时,和的比例流量路由到服务模型。

  7. 点击创建服务端点。的服务端点页面出现服务端点的状态显示为没有准备好。

    创建一个模型服务端点

你也可以访问服务从UI创建一个端点注册页面模型砖的机器学习的UI。

  1. 选择你想要的模型。

  2. 单击使用模型推理按钮。

  3. 选择实时选项卡。

  4. 选择模型版本,并提供一个端点的名称。

  5. 选择您的端点的计算大小,并指定您的端点是否应该扩展到零不使用的时候。

  6. 点击创建服务端点。的服务端点页面出现服务端点的状态显示为没有准备好。几分钟后,服务端点的状态更改好了。

修改计算配置的端点

使端点模型之后,您可以根据需要设置计算配置API或UI。这个配置是特别有用如果你需要额外的资源模型。工作负载大小和计算配置发挥关键作用的资源分配给您的模型。

直到新的配置好了,旧的配置使预测交通服务。虽然有一个更新的进展,不能让另一个更新。

您还可以:

API的工作流程

把. . / api / 2.0 / serving-endpoints /{的名字}/配置{“served_models”:[{“model_name”:“ads1”,“model_version”:“2”,“workload_size”:“小”,“scale_to_zero_enabled”:真正的})}

下面是一个反应的例子:

{“名称”:“feed-ads”,“创造者”:“cuastomer@example.com”,“creation_timestamp”:1666829055000,“last_updated_timestamp”:1666946600000,“状态”:{“准备好了”:真正的,“update_state”:“IN_PROGRESS”},“配置”:{“served_models”:({“名称”:“ads1-1”,“model_name”:“ads1”,“model_version”:“1”,“workload_size”:“小”,“scale_to_zero_enabled”:真正的,“状态”:{“部署”:“DEPLOYMENT_READY”,“deployment_state_message”:”“},“创造者”:“customer@example.com”,“creation_timestamp”:1666887851000}),“traffic_config”:{“路线”:({“served_model_name”:“ads1-1”,“traffic_percentage”:One hundred.}]},“config_version”:2},“pending_update”:{“start_time”:1666946600000,“served_models”:({“名称”:“ads1-2”,“model_name”:“ads1”,“model_version”:“2”,“workload_size”:“小”,“scale_to_zero_enabled”:真正的,“状态”:{“部署”:“DEPLOYMENT_CREATING”,“deployment_state_message”:“创建”},“创造者”:“customer@example.com”,“creation_timestamp”:1666946600000}),“traffic_config”:{“路线”:({“served_model_name”:“ads1-2”,“traffic_percentage”:One hundred.}]}“config_version”:3},“id”:“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,“permission_level”:“CAN_MANAGE”}

UI工作流

启用一个端点模型之后,选择编辑配置修改计算配置的端点。

你可以做以下几点:

  • 选择一些工作负载大小和自动定量自动配置在工作负载的大小。

  • 如果你指定端点不使用时应减少为零。

  • 修改的百分比流量路由到服务模型。

评分模型端点

进你的模型,你可以发送请求到模型服务端点。看到得分请求发送到服务端点学习建议和接受的格式。

得到模型端点的状态

API的工作流程

你可以检查一个端点的状态如下:

. . / api / 2.0 / serving-endpoints /{的名字}

在接下来的例子中反应,state.ready字段是“准备好”,这意味着端点准备接收交通。的state.update_state字段是NOT_UPDATINGpending_config不再返还,因为更新已成功完成。

{“名称”:“feed-ads”,“创造者”:“customer@example.com”,“creation_timestamp”:1666829055000,“last_updated_timestamp”:1666829055000,“状态”:{“准备好了”:“准备好了”,“update_state”:“NOT_UPDATING”},“配置”:{“served_models”:({“名称”:“ads1-1”,“model_name”:“ads1”,“model_version”:“1”,“workload_size”:“小”,“scale_to_zero_enabled”:,“状态”:{“部署”:“DEPLOYMENT_READY”,“deployment_state_message”:”“},“创造者”:“customer@example.com”,“creation_timestamp”:1666829055000}),“traffic_config”:{“路线”:({“served_model_name”:“ads1-1”,“traffic_percentage”:One hundred.}]}“config_version”:1},“id”:“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,“permission_level”:“CAN_MANAGE”}

UI工作流

在UI中,您可以检查一个端点的状态的服务端点的状态指示器端点的详细信息页面的顶部。

删除一个模型服务端点

禁用服务模型,您可以删除端点上。

API的工作流程

删除一个服务端点模型,使用以下:

删除. . / api / 2.0 / serving-endpoints /{的名字}

UI工作流

你可以删除一个端点的端点的详细信息页面。

  1. 点击服务在侧边栏。

  2. 单击你想删除的端点。

  3. 单击顶部的烤肉串菜单并选择删除

调试你的模型服务端点

调试与端点的任何问题,您可以获取:

  • 模型建立日志服务器容器

  • 模型服务器日志

也可以从这些日志端点用户界面的日志选项卡。

为构建日志服务模型可以使用以下要求:

. . / api / 2.0 / serving-endpoints /{的名字}/ served-models /{served-model-name}/ build-logs{“config_version”:1/ /可选}

为模型服务器日志服务模型,您可以使用以下的要求:

. . / api / 2.0 / serving-endpoints /{的名字}/ served-models /{served-model-name}/日志{“config_version”:1/ /可选}

笔记本的例子

以下笔记本包括不同的模型,您可以使用设置和运行与模型服务端点。模型的例子可以导入到工作区中遵循的方向导入一个笔记本。你选择之后,创建一个模型的一个例子,MLflow模型中的注册表注册它,然后遵循UI工作流模型的步骤。

培训和注册一个scikit-learn模型为模型提供笔记本

在新标签页打开笔记本

培训和注册一个Pytorch模型为模型提供笔记本

在新标签页打开笔记本

培训和注册一个HuggingFace模型为模型提供笔记本

在新标签页打开笔记本

为笔记本SparkML模型

在新标签页打开笔记本

以下笔记本示例演示了如何创建和管理模式服务端点使用Python。

创建和管理一个服务端点Python笔记本

在新标签页打开笔记本

蟒蛇许可更新

以下为客户注意的是依靠水蟒。

重要的

蟒蛇inc .)更新他们的服务条款为anaconda.org频道。基于新的服务条款你可能需要一个商业许可证如果你依靠蟒蛇的包装和分布。看到蟒蛇商业版常见问题解答为更多的信息。你使用任何蟒蛇的通道是由他们的服务条款。

MLflow模型记录之前v1.18(砖运行时的8.3毫升或更早)与conda默认登录违约通道(https://repo.anaconda.com/pkgs/作为一个依赖项。因为这个许可改变,砖已经停止使用违约渠道模式登录使用MLflow v1.18以上。默认通道记录是现在conda-forge,点在社区管理https://conda-forge.org/

如果你登录一个模型之前MLflow v1.18没有排除违约通道从conda环境模型,该模型可能有依赖违约频道,你可能没有。手动确认模型是否有这种依赖性,你可以检查通道的价值conda.yaml打包的文件与记录模型。例如,一个模式conda.yaml与一个违约通道的依赖可能看起来像这样:

渠道:- - - - - -违约依赖关系:- - - - - -python = 3.8.8- - - - - -皮普- - - - - -皮普:- - - - - -mlflow- - - - - -scikit-learn = = 0.23.2- - - - - -cloudpickle = = 1.6.0的名字:mlflow-env

因为砖不能确定你使用的水蟒库与模型进行交互是允许你和蟒蛇的关系下,砖不是迫使其客户进行任何更改。如果你使用Anaconda.com回购通过使用砖是允许在蟒蛇的条件下,您不需要采取任何行动。

如果你想换频道中使用模型的环境中,你可以注册模型到模型中注册一个新的conda.yaml。你可以通过指定的通道conda_env参数的log_model ()

更多的信息log_model ()API,看到MLflow味道你正在与文档模型,例如,为scikit-learn log_model

的更多信息conda.yaml文件,请参见MLflow文档