使用 部署 MLflow 模型 ModelBuilder - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 部署 MLflow 模型 ModelBuilder

您可以使用 Amazon SageMaker AI Model Builder 將 MLflow 模型部署至 SageMaker AI 端點。 Amazon SageMaker 如需 Amazon SageMaker AI Model Builder 的詳細資訊,請參閱使用 ModelBuilder 在 Amazon SageMaker AI 中建立模型 ModelBuilder

ModelBuilder 是一種 Python 類別,採用架構模型或使用者指定的推論規格,並將其轉換為可部署模型。如需 ModelBuilder類別的詳細資訊,請參閱 ModelBuilder

若要使用 部署 MLflow 模型ModelBuilder,請在 model_metadata["MLFLOW_MODEL_PATH"] 屬性中提供 MLflow 成品的路徑。如需有效模型路徑輸入格式的詳細資訊,請繼續閱讀:

注意

如果您以 MLflow 執行 ID 或 MLflow 模型登錄檔路徑的形式提供模型成品路徑,則您還必須透過 model_metadata["MLFLOW_TRACKING_ARN"] 屬性指定追蹤伺服器 ARN。

在 中需要 ARN 的模型路徑 model_metadata

下列模型路徑確實需要您在 部署model_metadata的 中指定 ARN:

中不需要 ARN 的模型路徑 model_metadata

下列模型路徑不需要您在 部署model_metadata的 中指定 ARN:

  • 本機模型路徑: /Users/me/path/to/local/model

  • Amazon S3 模型路徑: s3://amzn-s3-demo-bucket/path/to/model

  • 模型套件 ARN: arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name

如需 MLflow 模型部署如何與 Amazon SageMaker AI 搭配使用的詳細資訊,請參閱 MLflow 文件中的將 MLflow 模型部署至 Amazon SageMaker AI。 MLflow

如果使用 Amazon S3 路徑,您可以使用下列命令找到已註冊模型的路徑:

registered_model = client.get_registered_model(name='AutoRegisteredModel') source_path = registered_model.latest_versions[0].source

以下範例概述如何使用 ModelBuilder和 MLflow 模型登錄路徑部署 MLflow 模型。由於此範例以 MLflow 模型登錄檔路徑的形式提供模型成品路徑,因此對 的呼叫ModelBuilder也必須透過 model_metadata["MLFLOW_TRACKING_ARN"] 屬性指定追蹤伺服器 ARN。

重要

您必須使用 2.224.0 版或更新版本的 SageMaker Python SDK,才能使用 ModelBuilder

注意

使用下列程式碼範例做為參考。如需示範如何部署已註冊 MLflow 模型的end-to-end範例,請參閱 使用範例 Jupyter 筆記本的 MLflow 教學課程

from sagemaker.serve import ModelBuilder from sagemaker.serve.mode.function_pointers import Mode from sagemaker.serve import SchemaBuilder my_schema = SchemaBuilder( sample_input=sample_input, sample_output=sample_output ) model_builder = ModelBuilder( mode=Mode.SAGEMAKER_ENDPOINT, schema_builder=my_schema, role_arn="Your-service-role-ARN", model_metadata={ # both model path and tracking server ARN are required if you use an mlflow run ID or mlflow model registry path as input "MLFLOW_MODEL_PATH": "models:/sklearn-model/1" "MLFLOW_TRACKING_ARN": "arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name" } ) model = model_builder.build() predictor = model.deploy( initial_instance_count=1, instance_type="ml.c6i.xlarge" )

若要維持使用 部署之 MLflow 模型的譜系追蹤ModelBuilder,您必須具有下列 IAM 許可:

  • sagemaker:CreateArtifact

  • sagemaker:ListArtifacts

  • sagemaker:AddAssociation

  • sagemaker:DescribeMLflowTrackingServer

重要

線路追蹤是選用的。部署成功,沒有與譜系追蹤相關的許可。如果您沒有設定許可,則在呼叫 時,您會看到線路追蹤許可錯誤model.deploy()。不過,端點部署仍然成功,您可以直接與模型端點互動。如果已設定上述許可,會自動建立和存放譜系追蹤資訊。

如需詳細資訊和end-to-end範例,請參閱使用範例 Jupyter 筆記本的 MLflow 教學課程