Déploiement de modèles MLflow avec ModelBuilder - Amazon SageMaker AI

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éploiement de modèles MLflow avec ModelBuilder

Vous pouvez déployer des modèles MLflow sur un point de terminaison SageMaker AI à l’aide du générateur de modèle Amazon SageMaker AI. Pour plus d’informations sur le générateur de modèle Amazon SageMaker AI, consultez Création d’un modèle dans Amazon SageMaker AI avec ModelBuilder.

ModelBuilder est une classe Python qui prend un modèle de cadre ou une spécification d’inférence spécifiée par l’utilisateur pour les convertir en modèle déployable. Pour en savoir plus sur la classe ModelBuilder, consultez ModelBuilder.

Pour déployer votre modèle MLflow à l’aide de ModelBuilder, fournissez un chemin d’accès à vos artefacts MLflow dans l’attribut model_metadata["MLFLOW_MODEL_PATH"]. Lisez les sections suivantes 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 de modèle sous la forme d’un ID d’exécution MLflow ou d’un chemin de registre de modèle MLflow, vous devez également spécifier l’ARN de votre serveur de suivi via l’attribut model_metadata["MLFLOW_TRACKING_ARN"].

Chemins de modèle qui nécessitent un ARN dans model_metadata

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

Chemins de modèle qui ne nécessitent pas d’ARN dans model_metadata

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

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

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

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

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

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 modèle MLflow avec ModelBuilder et un chemin de registre de modèles MLflow. Étant donné que cet exemple fournit le chemin de l’artefact du modèle sous la forme d’un chemin de registre de modèles MLflow, l’appel à ModelBuilder doit également spécifier l’ARN d’un serveur de suivi via l’attribut model_metadata["MLFLOW_TRACKING_ARN"].

Important

Vous devez utiliser la version 2.224.0 ou ultérieure du kit SageMaker Python SDK pour utiliser ModelBuilder.

Note

Utilisez l’exemple de code suivant pour référence. Pour des exemples de bout en bout qui illustrent comment déployer des modèles MLflow enregistrés, consultez Didacticiels MLflow 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 de la lignée des modèles MLflow déployés avec ModelBuilder, vous devez disposer des autorisations IAM suivantes :

  • sagemaker:CreateArtifact

  • sagemaker:ListArtifacts

  • sagemaker:AddAssociation

  • sagemaker:DescribeMLflowTrackingServer

Important

Le suivi de la lignée est facultatif. Le déploiement réussit sans les autorisations liées au suivi de la lignée. Quand les autorisations ne sont pas configurées, une erreur d’autorisation de suivi de la lignée s’affiche lors de l’appel model.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. Quand les autorisations ci-dessus sont configurées, les informations de suivi de la lignée sont automatiquement créées et stockées.

Pour plus d’informations et des exemples de bout en bout, consultez Didacticiels MLflow utilisant des exemples de blocs-notes Jupyter.