Fichiers manifestes augmentés pour les tâches de formation - 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.

Fichiers manifestes augmentés pour les tâches de formation

Pour inclure des métadonnées avec votre jeu de données dans une tâche d'entraînement, utilisez un fichier manifeste augmenté. Lorsque vous utilisez un fichier manifeste augmenté, votre jeu de données doit être stocké dans Amazon Simple Storage Service (Amazon S3), et vous devez configurer votre tâche d'entraînement de sorte à utiliser le jeu de données ainsi stocké. Spécifiez l'emplacement et le format de cet ensemble de données pour un ou plusieurs Channel. Les manifestes augmentés ne peuvent prendre en charge que le mode d'entrée Pipe. Consultez la section ci-dessous Channelpour InputModeen savoir plus sur le mode d'entrée pipe.

Lorsque vous spécifiez les paramètres d'un canal, vous indiquez un chemin d'accès au fichier, appelé S3Uri. Amazon SageMaker interprète cela en URI fonction de ce qui est spécifié S3DataType dans S3DataSource. L'option AugmentedManifestFile définit un format de manifeste qui inclut les métadonnées avec les données d'entrée. L'utilisation d'un fichier manifeste augmenté constitue une solution équivalente au prétraitement lorsque vous avez des données étiquetées. Pour les tâches d'entraînement qui utilisent des données étiquetées, il convient généralement de prétraiter le jeu de données pour combiner les données d'entrée et les métadonnées avant l'entraînement. Si votre jeu de données de formation est volumineux, le prétraitement peut s'avérer long et onéreux.

Format de fichier manifeste augmenté

Un fichier manifeste augmenté doit être formaté au format JSONLignes. Au format JSON Lignes, chaque ligne du fichier est un JSON objet complet suivi d'un nouveau séparateur de ligne.

Pendant l'entraînement, SageMaker analyse chaque JSON ligne et envoie une partie ou la totalité de ses attributs à l'algorithme d'entraînement. Vous spécifiez le contenu de l'attribut à transmettre et l'ordre dans lequel il doit être transmis à l'aide du AttributeNames paramètre de CreateTrainingJobAPI. Le AttributeNames paramètre est une liste ordonnée de noms d'attributs que SageMaker l'on recherche dans l'JSONobjet à utiliser comme entrée d'apprentissage.

Par exemple, si vous référencez ["line", "book"] pour AttributeNames, les données d'entrée doivent inclure les noms d'attribut de line et de book dans l'ordre spécifié. Pour cet exemple, le contenu du fichier manifeste augmenté suivant est valide :

{"author": "Herman Melville", "line": "Call me Ishmael", "book": "Moby Dick"} {"line": "It was love at first sight.", "author": "Joseph Heller", "book": "Catch-22"}

SageMaker ignore les noms d'attributs non répertoriés, même s'ils précèdent, suivent ou se situent entre les attributs listés.

Lorsque vous utilisez des fichiers manifestes augmentés, respectez les instructions suivantes :

  • L'ordre des attributs répertoriés dans le paramètre AttributeNames détermine l'ordre des attributs transmis à l'algorithme dans la tâche d'entraînement.

  • La liste AttributeNames peut être un sous-ensemble de tous les attributs de la JSON ligne. SageMaker ignore les attributs non répertoriés dans le fichier.

  • Vous pouvez spécifier n'importe quel type de données autorisé par le JSON formatAttributeNames, y compris du texte, des données numériques, des tableaux de données ou des objets.

  • Pour inclure un S3 URI comme nom d'attribut, ajoutez-y le suffixe-ref.

Si le nom d'un attribut contient le suffixe-ref, la valeur de l'attribut doit être un S3 URI dans un fichier de données accessible à la tâche de formation. Par exemple, si AttributeNames contient ["image-ref", "is-a-cat"], l'exemple suivant illustre un fichier manifeste augmenté valide :

{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "is-a-cat": 1} {"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "is-a-cat": 0}

Dans le cas de la première JSON ligne de ce fichier manifeste, SageMaker extrait le image1.jpg fichier s3://amzn-s3-demo-bucket/sample01/ et la représentation sous forme de chaîne de l'is-a-catattribut "1" pour la classification des images.

Astuce

Pour créer un fichier manifeste augmenté, utilisez Amazon SageMaker Ground Truth et créez une tâche d'étiquetage. Pour de plus amples informations sur les résultats d'une tâche d'étiquetage, veuillez consulter Étiquetage des données de sortie des tâches.

Utiliser un fichier manifeste augmenté

Les sections suivantes vous montrent comment utiliser des fichiers de manifeste augmentés dans vos tâches de SageMaker formation Amazon, que ce soit avec la SageMaker console ou par programmation à l'aide de Python SageMaker . SDK

Utilisation d'un fichier manifeste augmenté (console)

Pour réaliser cette procédure, il vous faut :

  • Celui URL du compartiment S3 dans lequel vous avez stocké le fichier manifeste augmenté.

  • pouvoir stocker les données qui sont répertoriées dans le fichier manifeste augmenté dans un compartiment S3 ;

  • Le URL compartiment S3 dans lequel vous souhaitez stocker le résultat de la tâche.

Pour utiliser un fichier manifeste augmenté dans une tâche d'entraînement (console)
  1. Ouvrez la SageMaker console Amazon à l'adresse https://console.aws.amazon.com/sagemaker/.

  2. Dans le panneau de navigation, choisissez Training (Entraînement), puis Training jobs (Tâches d'entraînement).

  3. Choisissez Create training job (Créer une tâche d'entraînement).

  4. Indiquez un nom pour la tâche d'entraînement. Le nom doit être unique dans une AWS région d'un AWS compte. Il peut comporter de 1 à 63 caractères. Les caractères valides sont a-z, A-Z, 0-9 et . : + = @ _ % - (trait d'union).

  5. Choisissez l'algorithme à utiliser. Pour de plus amples informations sur les algorithmes intégrés pris en charge, veuillez consulter Algorithmes intégrés et modèles préentraînés dans Amazon SageMaker. Si vous souhaitez utiliser un algorithme personnalisé, assurez-vous qu'il est compatible avec le mode Pipe (Tube).

  6. (Facultatif) Pour Configuration des ressources, acceptez les valeurs par défaut ou, pour réduire les temps de calcul, augmentez la consommation des ressources.

    1. (Facultatif) Pour Type d'instance, choisissez le type d'instance de calcul ML à utiliser. Dans la plupart des cas, ml.m4.xlarge est suffisant.

    2. Pour Nombre d'instances, utilisez la valeur par défaut 1.

    3. (Facultatif) Pour Taille du volume par instance (Go), choisissez la taille du volume de stockage ML que vous souhaitez allouer. Dans la plupart des cas, vous pouvez utiliser la valeur par défaut 1. Si votre jeu de données est volumineux, utilisez une taille supérieure.

  7. Fournissez les informations sur les données d'entrée pour le jeu de données d'entraînement.

    1. Pour Nom du canal, acceptez la valeur par défaut (train) ou saisissez un nom plus descriptif, tel que training-augmented-manifest-file.

    2. Pour InputMode, choisissez Pipe.

    3. Pour le type de distribution de données S3, choisissez FullyReplicated. Pour un entraînement incrémentiel, la réplication complète fait en sorte que chaque instance de calcul ML utilise une copie complète du jeu de données étendu. Pour les algorithmes basés sur les réseaux neuronaux, comme par exemple Algorithme du modèle de sujet neuronal (NTM), choisissez ShardedByS3Key.

    4. Si les données spécifiées dans le fichier manifeste augmenté ne sont pas compressées, définissez le Type de compression sur Aucun. Si les données sont compressées à l'aide de GZIP, définissez-le sur Gzip.

    5. (Facultatif) Pour Type de contenu, spécifiez le MIME type approprié. Le type de contenu est le type d'extension de messagerie Internet polyvalente (MIME) des données.

    6. Pour Type d'habillage des enregistrements, si le jeu de données spécifié dans le fichier manifeste augmenté est enregistré au format RecordIO, choisissez RecordIO. Si votre jeu de données n'est pas enregistré en tant que fichier au format RecordIO, choisissez Aucun.

    7. Pour le type de données S3, choisissez AugmentedManifestFile.

    8. Pour Emplacement S3, fournissez le chemin d'accès au compartiment dans lequel vous avez enregistré le fichier manifeste augmenté.

    9. Pour les noms d'AugmentedManifestFile attributs, spécifiez le nom de l'attribut que vous souhaitez utiliser. Le nom d'attribut doit être présent dans le fichier manifeste augmenté ; en outre, il est sensible à la casse.

    10. (Facultatif) Pour ajouter d'autres noms d'attributs, choisissez Ajouter une ligne et spécifiez un autre nom d'attribut pour chaque attribut.

    11. (Facultatif) Pour modifier l'ordre des noms d'attribut, choisissez les boutons pointant vers le haut ou vers le bas en regard des noms. Lorsque vous utilisez un fichier manifeste augmenté, l'ordre des noms d'attributs spécifié est important.

    12. Sélectionnez Exécuté.

  8. Pour Configuration des données de sortie, fournissez les informations suivantes :

    1. Pour Emplacement S3, tapez le chemin d'accès au compartiment S3 dans lequel vous souhaitez stocker la sortie de données.

    2. (Facultatif) Vous pouvez utiliser votre clé de chiffrement AWS Key Management Service (AWS KMS) pour chiffrer les données de sortie au repos. Pour la clé de chiffrement, indiquez l'ID de la clé ou son numéro de ressource Amazon (ARN). Pour plus d'informations, voir KMS-Clés de chiffrement gérées.

  9. (Facultatif) Pour Balises, ajoutez une ou plusieurs balises à la tâche d'entraînement. On appelle balise les métadonnées que vous pouvez définir et affecter à des ressources AWS . Dans ce cas, vous pouvez utiliser des balises pour vous aider à gérer vos tâches d'entraînement. Une balise est composée d'une clé et d'une valeur que vous définissez. Vous pouvez, par exemple, créer une balise avec Project comme clé et une valeur qui fait référence à un projet lié à la tâche d'entraînement, tel que Home value forecasts.

  10. Choisissez Créer un poste de formation. SageMaker crée et gère le poste de formation.

Une fois la tâche de formation terminée, SageMaker stocke les artefacts du modèle dans le compartiment dont vous avez indiqué le chemin pour le chemin de sortie S3 dans le champ Configuration des données de sortie. Pour déployer le modèle afin d'obtenir des prédictions, consultez Déployer le modèle sur Amazon EC2.

Utiliser un fichier manifeste augmenté (API)

Voici comment entraîner un modèle avec un fichier manifeste augmenté à l'aide de la bibliothèque Python de SageMaker haut niveau :

import sagemaker # Create a model object set to using "Pipe" mode. model = sagemaker.estimator.Estimator( training_image, role, instance_count=1, instance_type='ml.p3.2xlarge', volume_size = 50, max_run = 360000, input_mode = 'Pipe', output_path=s3_output_location, sagemaker_session=session ) # Create a train data channel with S3_data_type as 'AugmentedManifestFile' and attribute names. train_data = sagemaker.inputs.TrainingInput( your_augmented_manifest_file, distribution='FullyReplicated', content_type='application/x-recordio', s3_data_type='AugmentedManifestFile', attribute_names=['source-ref', 'annotations'], input_mode='Pipe', record_wrapping='RecordIO' ) data_channels = {'train': train_data} # Train a model. model.fit(inputs=data_channels, logs=True)

Une fois la tâche de formation terminée, SageMaker stocke les artefacts du modèle dans le compartiment dont vous avez indiqué le chemin pour le chemin de sortie S3 dans le champ Configuration des données de sortie. Pour déployer le modèle afin d'obtenir des prédictions, consultez Déployer le modèle sur Amazon EC2.