共用方式為


將多個模型服務至模型服務端點

本文說明如何將多個模型服務至使用 Azure Databricks 模型服務的 CPU 服務端點。

如需提供多個產生式 AI 模型,例如外部模型所提供的模型,請參閱 將多個外部模型提供給端點

需求

請參閱建立端點模型的需求。

若要瞭解服務端點的模型訪問控制選項,以及端點管理的最佳做法指引,請參閱 提供端點 ACL

建立端點並設定初始流量分割

您可以使用 Databricks 機器學習 服務 API 或 Databricks 機器學習 UI 來建立服務端點的模型。 端點可以提供在模型登錄中註冊的任何已註冊 Python MLflow 模型。

下列 API 範例會建立具有兩個模型的單一端點,並設定這些模型之間的端點流量分割。 服務模型 current、主機第 1 model-A 版,並取得 90% 的端點流量,而其他服務模型 challenger、主機第 1 model-B 版和取得 10% 的端點流量。

POST /api/2.0/serving-endpoints

{
   "name":"multi-model"
   "config":{
      "served_entities":[
         {
            "name":"current",
            "entity_name":"model-A",
            "entity_version":"1",
            "workload_size":"Small",
            "scale_to_zero_enabled":true
         },
         {
            "name":"challenger",
            "entity_name":"model-B",
            "entity_version":"1",
            "workload_size":"Small",
            "scale_to_zero_enabled":true
         }
      ],
      "traffic_config":{
         "routes":[
            {
               "served_model_name":"current",
               "traffic_percentage":"90"
            },
            {
               "served_model_name":"challenger",
               "traffic_percentage":"10"
            }
         ]
      }
   }
}

更新服務模型之間的流量分割

您也可以更新服務模型之間的流量分割。 下列 API 範例會將服務模型 current設定為 取得 50% 的端點流量,而其他模型 challenger則設定為取得其餘 50% 的流量。

您也可以使用 [編輯組態] 按鈕,從 Databricks 機器學習 UI 中的 [服務] 索引標籤進行此更新。

PUT /api/2.0/serving-endpoints/{name}/config

{
   "served_entities":[
      {
         "name":"current",
         "entity_name":"model-A",
         "entity_version":"1",
         "workload_size":"Small",
         "scale_to_zero_enabled":true
      },
      {
         "name":"challenger",
         "entity_name":"model-B",
         "entity_version":"1",
         "workload_size":"Small",
         "scale_to_zero_enabled":true
      }
   ],
   "traffic_config":{
      "routes":[
         {
            "served_model_name":"current",
            "traffic_percentage":"50"
         },
         {
            "served_model_name":"challenger",
            "traffic_percentage":"50"
         }
      ]
   }
}

查詢端點背後的個別模型

在某些情況下,您可能會想要查詢端點背後的個別模型。

您可以使用:

POST /serving-endpoints/{endpoint-name}/served-models/{served-model-name}/invocations

在這裡,會查詢特定的服務模型。 要求格式與查詢端點相同。 查詢個別服務模型時,會忽略流量設定。

在端點範例的內容中 multi-model ,如果所有要求都傳送至 /serving-endpoints/multi-model/served-models/challenger/invocations,則服務模型會提供 challenger 所有要求。