將 MLflow 模型部署至受控線上端點

已完成

將模型部署至線上端點最簡單的方法,就是使用 MLflow 模型並將之部署至受控線上端點。 Azure Machine Learning 會自動產生 MLflow 模型的評分指令碼和環境。

若要部署 MLflow 模型,您必須先建立端點。 然後才能將模型部署至端點。

將 MLflow 模型部署至端點

將 MLflow 模型部署到受控線上端點時,您不需要有評分指令碼和環境。

若要部署 MLflow 模型,您必須將模型檔案儲存在本機路徑或已註冊的模型上。 您可以使用 MLflow 追蹤,在為模型定型時記錄模型檔案。

在此範例中,我們會從本機路徑取得模型檔案。 這些檔案全都儲存在稱為 model 的本機資料夾中。 資料夾必須包含 MLmodel 檔案,該檔案描述如何載入及使用模型。

提示

深入了解 MLmodel 格式

在模型旁邊,您也需要指定部署的計算設定:

  • instance_type:要使用的虛擬機器 (VM) 大小。 檢閱支援大小的清單
  • instance_count:要使用的執行個體數目。

若要部署 (並自動註冊) 模型,請執行下列命令:

from azure.ai.ml.entities import Model, ManagedOnlineDeployment
from azure.ai.ml.constants import AssetTypes

# create a blue deployment
model = Model(
    path="./model",
    type=AssetTypes.MLFLOW_MODEL,
    description="my sample mlflow model",
)

blue_deployment = ManagedOnlineDeployment(
    name="blue",
    endpoint_name="endpoint-example",
    model=model,
    instance_type="Standard_F4s_v2",
    instance_count=1,
)

ml_client.online_deployments.begin_create_or_update(blue_deployment).result()

提示

探索參考文件,用 Python SDK v2 建立受控線上部署

由於部署至端點的模型只有一個,這個模型必須接受 100% 的流量。 如果您將多個模型部署至相同的端點,則可將流量分散到已部署的模型。

若要將流量路由至特定部署,請使用下列程式碼:

# blue deployment takes 100 traffic
endpoint.traffic = {"blue": 100}
ml_client.begin_create_or_update(endpoint).result()

若要刪除端點和所有相關聯的部署,請執行命令:

ml_client.online_endpoints.begin_delete(name="endpoint-example")

提示

深入了解部署 MLflow 模型