迁移到模型服务

本文演示如何在工作区上启用模型服务,并将模型切换到 基于无服务器计算构建的马赛克 AI 模型服务 体验。

要求

重大更改

  • 在 Model Serving 中,对终结点的请求和来自终结点的响应的格式与旧版 MLflow Model Serving 略有不同。 有关新格式协议的详细信息,请参阅为模型终结点评分
  • 在 Model Serving 中,终结点 URL 包括 serving-endpoints,不包括 model
  • Model Serving 完全支持使用 API 工作流程管理资源
  • Model Serving 是生产就绪的,由 Azure Databricks SLA 提供支持。

将旧版 MLflow Model Serving 服务模型迁移到 Model Serving

可以创建 Model Serving 终结点并灵活地转换模型服务工作流,而无需禁用旧版 MLflow Model Serving

以下步骤演示如何使用 UI 完成此操作。 对于已启用旧 MLflow Model Serving 的每个模型:

  1. 将模型注册到 Unity 目录。
  2. 导航到机器学习工作区侧边栏上的“服务终结点”。
  3. 按照创建自定义模型服务终结点中有关如何使用模型创建服务终结点的工作流进行操作。
  4. 将应用程序转换为使用服务终结点提供的新 URL 以及新的评分格式来查询模型。
  5. 转换模型后,可以导航到机器学习工作区侧边栏上的模型
  6. 选择要为其禁用旧版 MLflow 模型服务的模型。
  7. 在“服务”选项卡上,选择“停止”。
  8. 一条消息随即显示,用于进行确认。 选择“停止服务”。

将已部署的模型版本迁移到 Model Serving

在 Model Serving 功能的早期版本中,服务终结点是根据注册模型版本的阶段(StagingProduction)创建的。 要从该体验迁移服务模型,可以在新的 Model Serving 体验中复制该行为。

本部分演示如何为 Staging 模型版本和 Production 模型版本创建单独的模型服务终结点。 以下步骤展示了如何使用每个服务模型的服务终结点 API 来完成此任务。

在示例中,注册的模型名称 modelA 在模型阶段 Production 中具有版本 1,在模型阶段 Staging 中具有版本 2。

  1. 为已注册的模型创建两个终结点,一个用于 Staging 模型版本,另一个用于 Production 模型版本。

    对于 Staging 模型版本:

    POST /api/2.0/serving-endpoints
      {
         "name":"modelA-Staging"
         "config":
         {
            "served_entities":
            [
               {
                  "entity_name":"model-A",
                  "entity_version":"2",  // Staging Model Version
                  "workload_size":"Small",
                  "scale_to_zero_enabled":true
               },
            ],
         },
      }
    

    对于 Production 模型版本:

    POST /api/2.0/serving-endpoints
      {
         "name":"modelA-Production"
         "config":
         {
            "served_entities":
            [
               {
                  "entity_name":"model-A",
                  "entity_version":"1",   // Production Model Version
                  "workload_size":"Small",
                  "scale_to_zero_enabled":true
               },
            ],
         },
      }
    
  2. 验证终结点的状态。

    对于暂存终结点:GET /api/2.0/serving-endpoints/modelA-Staging

    对于生产终结点:GET /api/2.0/serving-endpoints/modelA-Production

  3. 终结点准备就绪后,使用以下命令查询终结点:

    对于暂存终结点:POST /serving-endpoints/modelA-Staging/invocations

    对于生产终结点:POST /serving-endpoints/modelA-Production/invocations

  4. 根据模型版本转换更新终结点。

    在创建新的模型版本 3 的情况下,可以将模型版本 2 转换为 Production,模型版本 3 可以转换为 Staging,模型版本 1 Archived。 这些更改可以反映在单独的模型服务终结点中,如下所示:

    对于 Staging 终结点,请更新终结点以在 Staging中使用新的模型版本。

    PUT /api/2.0/serving-endpoints/modelA-Staging/config
    {
       "served_entities":
       [
          {
             "entity_name":"model-A",
             "entity_version":"3",  // New Staging model version
             "workload_size":"Small",
             "scale_to_zero_enabled":true
          },
       ],
    }
    

    对于 Production 终结点,请更新终结点以在 Production中使用新的模型版本。

    PUT /api/2.0/serving-endpoints/modelA-Production/config
    {
       "served_entities":
       [
          {
             "entity_name":"model-A",
             "entity_version":"2",  // New Production model version
             "workload_size":"Small",
             "scale_to_zero_enabled":true
          },
       ],
    }
    

将 MosaicML 推理工作流迁移到模型服务

本部分提供有关如何将 MosaicML 推理部署迁移到 Mosaic AI 模型服务的指导,另外还包含了一个笔记本示例。

下表总结了 MosaicML 推理与 Azure Databricks 上的模型服务之间的对应关系。

MosaicML 推理 Mosaic AI 模型服务
create_inference_deployment 创建模型服务终结点
update_inference_deployment 更新模型服务终结点
delete_inference_deployment 删除模型服务终结点
get_inference_deployment 获取模型服务终结点的状态

以下笔记本提供了将 llama-13b 模型从 MosaicML 迁移到 Mosaic AI 模型服务的指导示例。

从 MosaicML 推理迁移到 Mosaic AI 模型服务笔记本

获取笔记本

其他资源