

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 dans les tâches d’entraînement
<a name="augmented-manifest"></a>

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`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html). Les manifestes augmentés ne peuvent prendre en charge que le mode d'entrée Pipe. Consultez la section ci-dessous [`Channel`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html) pour ** InputMode ** en savoir plus sur le mode d'entrée du tuyau. 

Lorsque vous spécifiez les paramètres d'un canal, vous indiquez un chemin d'accès au fichier, appelé `S3Uri`. Amazon SageMaker AI interprète cet URI en fonction de ce qui est spécifié `S3DataType` dans [`S3DataSource`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html). 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é
<a name="augmented-manifest-format"></a>

Un fichier manifeste augmenté doit être au format [JSON Lines](http://jsonlines.org/). Dans ce format, chaque ligne du fichier correspond à un objet JSON complet suivi d'un séparateur de saut ligne.

Pendant l'entraînement, SageMaker l'IA analyse chaque ligne JSON et envoie une partie ou la totalité de ses attributs à l'algorithme d'entraînement. Vous devez spécifier les contenus d'attributs à transmettre et l'ordre dans lequel les transmettre avec le paramètre `AttributeNames` de l'API [`CreateTrainingJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Le `AttributeNames` paramètre est une liste ordonnée de noms d'attributs que l' SageMaker IA recherche dans l'objet JSON à utiliser comme entrée d'entraînement.

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 L'IA ignore les noms d'attributs non répertoriés, même s'ils précèdent, suivent ou se situent entre les attributs répertorié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 ligne JSON. SageMaker L'IA ignore les attributs non répertoriés dans le fichier.
+ Vous pouvez spécifier n'importe quel type de données autorisées par le format JSON dans `AttributeNames`, y compris des données numériques, du texte, des tableaux ou des objets.
+ Pour inclure un URI S3 comme un nom d'attribut, ajoutez-lui le suffixe `-ref`.

Si un nom d'attribut contient le suffixe `-ref`, la valeur de l'attribut doit être un URI S3 vers un fichier de données qui est accessible à la tâche d'entraînement. 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 ligne JSON de ce fichier manifeste, SageMaker AI extrait le `image1.jpg` fichier `s3://amzn-s3-demo-bucket/sample01/` et la représentation sous forme de chaîne de l'`is-a-cat`attribut `"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 plus d’informations sur les résultats d’une tâche d’étiquetage, consultez [Étiquetage des données de sortie des tâches](sms-data-output.md).

## Utilisation d’un fichier manifeste augmenté
<a name="augmented-manifest-create"></a>

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

### Utilisation d'un fichier manifeste augmenté (console)
<a name="augmented-manifest-console"></a>

Pour réaliser cette procédure, il vous faut :
+ disposer de l'URL du compartiment S3 dans lequel vous avez stocké le fichier de manifeste augmenté ;
+ pouvoir stocker les données qui sont répertoriées dans le fichier manifeste augmenté dans un compartiment S3 ;
+ L'URL du compartiment S3 où vous souhaitez stocker la sortie de la tâche.

**Pour utiliser un fichier manifeste augmenté dans une tâche d'entraînement (console)**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [ https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. Choisissez **Créer une tâche d’entraînement**.

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

1. Choisissez l'algorithme à utiliser. Pour plus d’informations sur les algorithmes intégrés pris en charge, consultez [Built-in algorithmes et modèles préentraînés sur Amazon SageMaker](algos.md). Si vous souhaitez utiliser un algorithme personnalisé, assurez-vous qu'il est compatible avec le mode Pipe (Tube).

1. (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. 

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

   1. (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.

1. 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**.

   1. Pour ** InputMode**, choisissez ** Pipe**.

   1. 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 NTM (Neural Topic Model)](ntm.md), choisissez `ShardedByS3Key`.

   1. 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**.

   1. (Facultatif) Pour **Type de contenu**, spécifiez le type MIME approprié. Le type de contenu correspond au type Multipurpose Internet Mail Extensions (MIME) des données.

   1. 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é sous forme de RecordIO-formatted fichier, choisissez ** Aucun**.

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

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

   1. 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.

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

   1. (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.

   1. Sélectionnez **Exécuté**.

1. 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.

   1. (Facultatif) Vous pouvez utiliser votre clé de chiffrement AWS Key Management Service (AWS KMS) pour chiffrer les données de sortie au repos. Pour **Clé de chiffrement**, fournissez l'ID de la clé ou son Amazon Resource Number (ARN). Pour plus d'informations, consultez la section Clés de [ KMS-Managed chiffrement](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html).

1. (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**.

1. Choisissez ** Créer un poste de formation**. SageMaker L'IA crée et gère le travail de formation.

Une fois la tâche de formation terminée, SageMaker AI 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éploiement du modèle sur Amazon EC2](ex1-model-deployment.md).

### Utilisation d'un fichier manifeste augmenté (API)
<a name="augmented-manifest-api"></a>

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

```
import sagemaker
from sagemaker.train import ModelTrainer
from sagemaker.core.shapes import Channel, DataSource, S3DataSource
from sagemaker.train.configs import Compute, StoppingCondition, OutputDataConfig

# Create a model object set to using "Pipe" mode.
compute = Compute(
    instance_type='ml.p3.2xlarge',
    instance_count=1,
    volume_size_in_gb=50
)

model_trainer = ModelTrainer(
    training_image={{training_image}},
    role=role,
    compute=compute,
    stopping_condition=StoppingCondition(max_runtime_in_seconds=360000),
    training_input_mode='Pipe',
    output_data_config=OutputDataConfig(s3_output_path={{s3_output_location}}),
    sagemaker_session={{session}}
)

# Create a train data channel with S3_data_type as 'AugmentedManifestFile' and attribute names.
train_data = Channel(
    channel_name='train',
    data_source=DataSource(
        s3_data_source=S3DataSource(
            s3_data_type='AugmentedManifestFile',
            s3_uri={{your_augmented_manifest_file}},
            s3_data_distribution_type='FullyReplicated',
            attribute_names=[{{'source-ref'}}, {{'annotations'}}],
        )
    ),
    content_type='application/x-recordio',
    input_mode='Pipe',
    record_wrapper_type='RecordIO'
)

# Train a model.
model_trainer.train(input_data_config=[train_data])
```

Une fois la tâche de formation terminée, SageMaker AI 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éploiement du modèle sur Amazon EC2](ex1-model-deployment.md).