Exécution de transformations par lots avec des pipelines d'inférence - Amazon SageMaker

Exécution de transformations par lots avec des pipelines d'inférence

Pour obtenir des inférences sur un jeu de données entier, vous exécutez une transformation par lots sur un modèle entraîné. Le même modèle de pipeline d'inférence créé et déployé sur un point de terminaison pour un traitement en temps réel peut également être utilisé dans une tâche de transformation par lots, afin de traiter des inférences sur un ensemble de données complet. Pour exécuter une tâche de transformation par lots dans un pipeline, vous devez télécharger les données d'entrée depuis Amazon S3 et les envoyer dans une ou plusieurs demandes HTTP au modèle de pipeline d'inférence. Pour obtenir un exemple montrant comment préparer des données pour une transformation par lots, veuillez consulter la section « Préparation des données pour une transformation par lots » de l'exemple de bloc-notes relatif au pipeline MLavec SparkML et XGBoost - Entraînement et inférence. Pour obtenir des informations sur les transformations par lots Amazon SageMaker, veuillez consulter Obtenir des inférences pour un ensemble de données tout entier à l'aide de la transformation par lots.

Note

Lorsque vous utilisez des images Docker personnalisées dans un pipeline incluant des algorithmes Amazon SageMaker intégrés, vous devez disposer d'une politique Amazon Elastic Container Registry (ECR). Votre référentiel Amazon ECR doit accorder à SageMaker l'autorisation d'extraire l'image. Pour de plus amples informations, veuillez consulter Résolution des problèmes d'autorisations Amazon ECR pour les pipelines d'inférence.

L'exemple suivant montre comment exécuter une tâche de transformation à l'aide du kit SDK Amazon SageMaker Python. Dans cet exemple, model_name est le pipeline d'inférence qui associe les modèles SparkML et XGBoost (créés dans les exemples précédents). L'emplacement Amazon S3 spécifié par input_data_path contient les données d'entrée, au format CSV, devant être téléchargées et envoyées au modèle Spark ML. Une fois la tâche de transformation terminée, l'emplacement Amazon S3 spécifié par output_data_path contient les données de sortie renvoyées par le modèle XGBoost au format CSV.

import sagemaker input_data_path = 's3://{}/{}/{}'.format(default_bucket, 'key', 'file_name') output_data_path = 's3://{}/{}'.format(default_bucket, 'key') transform_job = sagemaker.transformer.Transformer( model_name = model_name, instance_count = 1, instance_type = 'ml.m4.xlarge', strategy = 'SingleRecord', assemble_with = 'Line', output_path = output_data_path, base_transform_job_name='inference-pipelines-batch', sagemaker_session=sagemaker.Session(), accept = CONTENT_TYPE_CSV) transform_job.transform(data = input_data_path, content_type = CONTENT_TYPE_CSV, split_type = 'Line')