移轉至模型服務
本文示範如何在工作區上啟用模型服務,並將模型切換至 以無伺服器計算為基礎的馬賽克 AI 模型服務 體驗。
需求
- MLflow 模型登錄中註冊的模型。
- 已註冊模型的權限如訪問控制指南中所述。
- 在工作區上啟用無伺服器計算。
顯著變化
- 在模型服務中,對端點的要求格式和來自端點的回覆與舊版 MLflow 模型服務稍有不同。 如需新格式通訊協定的詳細資訊,請參閱為模型端點評分。
- 在模型服務中,端點 URL 包含
serving-endpoints
而不是model
。 - 模型服務完全支援使用 API 工作流程管理資源。
- 模型服務已準備好投入生產,並受 Azure Databricks SLA 支援。
將舊版 MLflow 模型服務所服務的模型移轉至模型服務
您可以建立模型服務端點並靈活地轉換模型服務工作流程,而無需停用舊版 MLflow 模型服務。
下列步驟示範如何使用 UI 來完成此作業。 針對已啟用舊版 MLflow 模型服務的每個模型:
- 將您的模型註冊至 Unity 目錄。
- 流覽至機器學習工作區側邊欄上的 [服務端點]。
- 遵循建立自訂模型服務端點中所述的工作流程,瞭解如何使用您的模型建立服務端點 。
- 轉換您的應用程式,以使用服務端點所提供的新 URL 來查詢模型,以及新的評分格式。
- 當您的模型完成轉換時,您可以瀏覽至機器學習工作區側邊欄上的 [模型]。
- 選取您要停用舊版 MLflow 模型服務的模型。
- 在 [服務] 索引標籤上,選取 [停止]。
- 隨即出現一則確認訊息。 選取 停止服務。
將已部署的模型版本移轉至模型服務
在先前版本的模型服務功能中,服務端點是根據已註冊模型版本的階段 Staging
或 Production
建立的。 若要從該體驗移轉服務模型,您可以在新的模型服務體驗中複寫該行為。
本節示範如何為模型版本 Staging
和模型版本 Production
建立單獨的模型服務端點。 下列步驟示範如何使用每個服務模型的服務端點 API 來完成此作業。
在此範例中,已註冊的模型名稱 modelA
在模型階段 Production
具有版本 1,在模型階段 Staging
具有版本 2。
為已註冊的模型建立兩個端點,一個用於模型版本
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 }, ], }, }
確認端點的狀態。
針對預備端點:
GET /api/2.0/serving-endpoints/modelA-Staging
針對生產端點:
GET /api/2.0/serving-endpoints/modelA-Production
端點準備就緒後,使用下列方式查詢端點:
針對預備端點:
POST /serving-endpoints/modelA-Staging/invocations
針對生產端點:
POST /serving-endpoints/modelA-Production/invocations
根據模型版本轉換更新端點。
在建立新模型第 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 模型服務的指導,並包含一個筆記本範例。
下表摘要說明馬賽克ML 推斷與 Azure Databricks 上服務的模型之間的同位。
MosaicML 推斷 | Mosaic AI 模型服務 |
---|---|
create_inference_deployment | 建立模型服務端點 |
update_inference_deployment | 更新服務端點的模型 |
delete_inference_deployment | 刪除模型服務端點 |
get_inference_deployment | 獲取模型服務端點的狀態 |
下列筆記本提供將 llama-13b
模型從 MosaicML 移轉至 Mosaic AI 模型服務的引導式範例。