Opérateur BatchTransformJob - Amazon SageMaker

Opérateur BatchTransformJob

Les opérateurs de tâche de transformation par lots rapprochent votre spécification de tâche de transformation par lots spécifiée avec SageMaker en la lançant dans SageMaker. Pour en savoir plus sur la tâche de transformation par lots SageMaker, veuillez consulter la Documentation relative à l'API CreateTransformJob.

Création de BatchTransformJob à l'aide d'un fichier YAML

  1. Téléchargez l'exemple de fichier YAML pour la tâche de transformation par lots à l'aide de la commande suivante :

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-batchtransform.yaml
  2. Modifiez le fichier xgboost-mnist-batchtransform.yaml pour modifier les paramètres nécessaires en vue de remplacer inputdataconfig par vos données d'entrée et s3OutputPath par vos compartiments Amazon S3 auxquels le rôle d'exécution SageMaker a un accès en écriture.

  3. Appliquez le fichier YAML à l'aide de la commande suivante :

    kubectl apply -f xgboost-mnist-batchtransform.yaml

Création de BatchTransformJob à l'aide d'un Chart de Helm

Vous pouvez utiliser les Charts de Helm pour exécuter des tâches de transformation par lots.

Obtenir le répertoire du programme d'installation de Helm

Clonez le référentiel GitHub pour obtenir la source à l'aide de la commande suivante :

git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git

Configuration du Chart de Helm

Accédez au dossier amazon-sagemaker-operator-for-k8s/hack/charts/batch-transform-jobs/.

Modifiez le fichier values.yaml pour remplacer inputdataconfig par vos données d'entrée et outputPath par vos compartiments S3 auxquels le rôle d'exécution SageMaker a un accès en écriture.

Création de BatchTransformJob

  1. Utilisez la commande suivante pour créer une tâche de transformation par lots :

    helm install . --generate-name

    Le résultat doit être similaire à ce qui suit :

    NAME: chart-1574292948 LAST DEPLOYED: Wed Nov 20 23:35:49 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thanks for installing the sagemaker-k8s-batch-transform-job.
  2. Pour vérifier que le Chart de Helm a bien été créé, exécutez la commande suivante :

    helm ls NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-batchtransformjob-0.1.0 chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-hyperparametertuningjob-0.1.0 chart-1574292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-trainingjob-0.1.0 rolebased-1574291698 default 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0

    Cette commande crée une ressource Kubernetes BatchTransformJob. L'opérateur lance la tâche de transformation à proprement dit dans SageMaker et met à jour la ressource Kubernetes BatchTransformJob pour refléter l'état de la tâche dans SageMaker. Vous engagez des frais pour les ressources SageMaker utilisées pendant la durée de votre tâche. Vous ne payez pas de frais une fois votre tâche terminée ou arrêtée.

Remarque : SageMaker ne vous permet pas de mettre à jour une tâche de transformation par lots en cours d'exécution. Vous ne pouvez pas modifier un paramètre et réappliquer le fichier/la config. Vous devez modifier le nom des métadonnées ou supprimer la tâche existante et en créer une autre. À l'instar des opérateurs de tâche d'entraînement existants tels que TFJob dans Kubeflow, update n'est pas pris en charge.

Répertorier les BatchTransformJobs

Utilisez la commande suivante pour répertorier toutes les tâches créées à l'aide de l'opérateur Kubernetes :

kubectl get batchtransformjob

Le résultat doit être similaire à ce qui suit :

NAME STATUS CREATION-TIME SAGEMAKER-JOB-NAME xgboost-mnist-batch-transform Completed 2019-11-18T03:44:00Z xgboost-mnist-a88fb19809b511eaac440aa8axgboost

Une tâche de transformation par lots reste répertoriée après son achèvement ou son échec. Vous pouvez supprimer une hyperparametertuningjob de la liste en suivant la procédure Supprimer une tâche de transformation par lots. Les tâches achevées ou arrêtées n'entraînent pas de frais pour les ressources SageMaker.

Valeurs d'état de la transformation par lots

Le champ STATUS peut comporter l'une des valeurs suivantes :

  • Completed

  • InProgress

  • Failed

  • Stopped

  • Stopping

Ces statuts proviennent directement de la documentation sur les API officielle de SageMaker.

En plus du statut officiel de SageMaker, il est possible que le STATUS soit SynchronizingK8sJobWithSageMaker. Cela signifie que l'opérateur n'a pas encore traité la tâche.

Description de BatchTransformJob

Vous pouvez obtenir des détails de débogage à l'aide de la commande describe kubectl.

kubectl describe batchtransformjob xgboost-mnist-batch-transform

Le résultat doit être similaire à ce qui suit :

Name: xgboost-mnist-batch-transform Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"BatchTransformJob","metadata":{"annotations":{},"name":"xgboost-mnist","namespace"... API Version: sagemaker.aws.amazon.com/v1 Kind: BatchTransformJob Metadata: Creation Timestamp: 2019-11-18T03:44:00Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 21990924 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/batchtransformjobs/xgboost-mnist UID: a88fb198-09b5-11ea-ac44-0aa8a9UIDNUM Spec: Model Name: TrainingJob-20190814SMJOb-IKEB Region: us-east-1 Transform Input: Content Type: text/csv Data Source: S 3 Data Source: S 3 Data Type: S3Prefix S 3 Uri: s3://my-bucket/mnist_kmeans_example/input Transform Job Name: xgboost-mnist-a88fb19809b511eaac440aa8a9SMJOB Transform Output: S 3 Output Path: s3://my-bucket/mnist_kmeans_example/output Transform Resources: Instance Count: 1 Instance Type: ml.m4.xlarge Status: Last Check Time: 2019-11-19T22:50:40Z Sage Maker Transform Job Name: xgboost-mnist-a88fb19809b511eaac440aaSMJOB Transform Job Status: Completed Events: <none>

Afficher les journaux de BatchTransformJobs

Utilisez la commande suivante pour consulter les journaux depuis la tâche de transformation par lots xgboost-mnist :

kubectl smlogs batchtransformjob xgboost-mnist-batch-transform

Suppression de BatchTransformJob

Utilisez la commande suivante pour arrêter une tâche de transformation par lots dans SageMaker.

kubectl delete batchTransformJob xgboost-mnist-batch-transform

Le résultat doit être similaire à ce qui suit :

batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted

Cette commande supprime la tâche de transformation par lots de votre cluster Kubernetes et l'arrête dans SageMaker. Les tâches arrêtées ou achevées n'entraînent pas de frais pour les ressources SageMaker. La commande de suppression prend environ 2 minutes pour nettoyer les ressources de SageMaker.

Remarque : SageMaker ne supprime pas les tâches de transformation par lots. Les tâches arrêtées continuent de s'afficher sur la console SageMaker.