將多個模型服務至模型服務端點
本文說明如何將多個模型服務至使用 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
所有要求。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應