Déployez MLflow des modèles avec ModelBuilder - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Déployez MLflow des modèles avec ModelBuilder

Vous pouvez déployer des MLflow modèles sur un SageMaker terminal à l'aide d'Amazon SageMaker Model Builder. Pour plus d'informations sur Amazon SageMaker Model Builder, consultez Créer un modèle dans Amazon SageMaker avec ModelBuilder.

ModelBuilderest une classe Python qui prend un modèle de framework ou une spécification d'inférence spécifiée par l'utilisateur et le convertit en un modèle déployable. Pour plus de détails sur le ModelBuilder cours, voir ModelBuilder.

Pour déployer votre MLflow modèle à l'aide deModelBuilder, indiquez un chemin d'accès à vos MLflow artefacts dans l'model_metadata["MLFLOW_MODEL_PATH"]attribut. Lisez la suite pour plus d'informations sur les formats d'entrée de chemin de modèle valides :

Note

Si vous indiquez le chemin de votre artefact modèle sous la forme d'un ID d'MLflowexécution ou d'un chemin de registre de MLflow modèles, vous devez également spécifier votre serveur de suivi ARN par le biais de l'model_metadata["MLFLOW_TRACKING_ARN"]attribut.

Tracés de modèles qui nécessitent un ARN dans le model_metadata

Les chemins de modèles suivants nécessitent que vous spécifiiez un ARN dans le model_metadata pour le déploiement :

Tracés de modèles qui ne nécessitent pas ARN de model_metadata

Les chemins de modèles suivants ne nécessitent pas que vous spécifiiez un ARN dans le model_metadata pour le déploiement :

  • Chemin du modèle local : /Users/me/path/to/local/model

  • Chemin du modèle Amazon S3 : s3://amzn-s3-demo-bucket/path/to/model

  • Package modèle ARN : arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name

Pour plus d'informations sur le fonctionnement MLflow du déploiement de modèles avec Amazon SageMaker, consultez la section Deploy MLflow Model to Amazon SageMaker dans la MLflow documentation.

Si vous utilisez un chemin Amazon S3, vous pouvez trouver le chemin de votre modèle enregistré à l'aide des commandes suivantes :

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

L'exemple suivant explique comment déployer votre MLflow modèle à l'aide d'un chemin ModelBuilder de registre de MLflow modèles. Étant donné que cet exemple fournit le chemin de l'artefact du modèle sous la forme d'un chemin de registre MLflow modèle, l'appel à ModelBuilder doit également spécifier un serveur de suivi ARN via l'model_metadata["MLFLOW_TRACKING_ARN"]attribut.

Important

Vous devez utiliser la version 2.224.0 ou ultérieure de SageMaker Python SDK pour l'utiliser. ModelBuilder

Note

Utilisez l'exemple de code suivant à titre de référence. Pour obtenir end-to-end des exemples illustrant comment déployer des MLflow modèles enregistrés, consultezMLflowtutoriels utilisant des exemples de blocs-notes Jupyter.

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" )

Pour gérer le suivi du lignage des MLflow modèles déployés à l'aide deModelBuilder, vous devez disposer des IAM autorisations suivantes :

  • sagemaker:CreateArtifact

  • sagemaker:ListArtifacts

  • sagemaker:AddAssociation

  • sagemaker:DescribeMLflowTrackingServer

Important

Le suivi du lignage est facultatif. Le déploiement réussit sans les autorisations liées au suivi du lignage. Si les autorisations ne sont pas configurées, vous verrez une erreur d'autorisation de suivi du lignage lors de l'appelmodel.deploy(). Cependant, le déploiement du point de terminaison réussit toujours et vous pouvez interagir directement avec le point de terminaison de votre modèle. Si les autorisations ci-dessus sont configurées, les informations de suivi du lignage sont automatiquement créées et stockées.

Pour plus d'informations et end-to-end des exemples, consultezMLflowtutoriels utilisant des exemples de blocs-notes Jupyter.