Utilisation de la transformation par lots - 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.

Utilisation de la transformation par lots

Utilisez la transformation par lots lorsque vous avez besoin d'effectuer les opérations suivantes :

  • Utilisez le prétraitement pour supprimer de votre ensemble de données le bruit ou le biais qui interfère avec l'entraînement ou l'inférence de votre ensemble de données.

  • Obtenez des inférences à partir d'ensembles de données volumineux.

  • Exécutez l'inférence lorsque vous n'avez pas besoin d'un point de terminaison persistant.

  • Associez les enregistrements d'entrée aux inférences pour faciliter l'interprétation des résultats.

Pour filtrer des données d'entrée avant de procéder à des inférences ou pour associer des enregistrements d'entrée à des inférences relatives à ces enregistrements, consultez Association de résultats de prédiction à des enregistrements d'entrée. Par exemple, vous pouvez filtrer les données d'entrée pour fournir un contexte permettant de créer et d'interpréter les rapports sur les données de sortie.

Utilisation de la transformation par lots pour obtenir des inférences à partir d'ensembles de données volumineux

La transformation par lots gère automatiquement le traitement des jeux de données volumineux dans les limites des paramètres spécifiés. Par exemple, supposons que vous disposez d'un fichier d'ensemble de données, input1.csv, stocké dans un compartiment S3. Le contenu du fichier d'entrée peut ressembler à l'exemple suivant :

Record1-Attribute1, Record1-Attribute2, Record1-Attribute3, ..., Record1-AttributeM Record2-Attribute1, Record2-Attribute2, Record2-Attribute3, ..., Record2-AttributeM Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM ... RecordN-Attribute1, RecordN-Attribute2, RecordN-Attribute3, ..., RecordN-AttributeM

Au démarrage d'une tâche de transformation par lots, SageMaker initialise les instances de calcul et distribue l'application d'inférence ou de prétraitement entre celles-ci. La transformation par lots partitionne les objets Amazon S3 dans l'entrée par clé et mappe les objets Amazon S3 aux instances. Lorsque vous disposez de plusieurs fichiers, la première instance peut traiter input1.csv et la seconde instance peut traiter un autre fichier nommé input2.csv. Si vous possédez un fichier d'entrée mais que vous initialisez plusieurs instances de calcul, une seule instance traite le fichier d'entrée et le reste des instances est inactif.

Vous pouvez également fractionner les fichiers d'entrée en mini-lots. Par exemple, vous pouvez créer un mini-lot à partir de input1.csv en incluant uniquement deux des fichiers.

Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM Record4-Attribute1, Record4-Attribute2, Record4-Attribute3, ..., Record4-AttributeM
Note

SageMaker traite chaque fichier d'entrée séparément. Il ne combine pas les mini-lots de différents fichiers d'entrée pour respecter la limite MaxPayloadInMB .

Pour fractionner les fichiers d'entrée en mini-lots, lorsque vous créez une tâche de transformation par lots, définissez la valeur du paramètre SplitType sur Line. Si SplitType est défini sur None ou si un fichier d'entrée ne peut pas être fractionné en mini-lots, SageMaker utilise le fichier d'entrée complet dans une seule requête. Notez que Batch Transform ne prend pas en charge les entrées au format CSV contenant des caractères de saut de ligne intégrés. Vous pouvez contrôler la taille des mini-lots en utilisant les paramètres BatchStrategy et MaxPayloadInMB. MaxPayloadInMB ne doit pas dépasser 100 Mo. Si vous spécifiez le paramètre MaxConcurrentTransforms facultatif, puis la valeur de (MaxConcurrentTransforms * MaxPayloadInMB) ne doit pas non plus dépasser 100 Mo.

Si la tâche de transformation par lots traite correctement tous les enregistrements du fichier d'entrée, elle crée un fichier de sortie portant le même nom auquel est ajouté l'extension de fichier .out. Lorsqu'il y a plusieurs fichiers d'entrée, comme input1.csv et input2.csv, les fichiers de sortie sont nommés input1.csv.out et input2.csv.out. La tâche de transformation par lots stocke les fichiers de sortie à l'emplacement spécifié dans Amazon S3, par exemple s3://awsexamplebucket/output/.

Dans un fichier de sortie, les prédictions sont répertoriées dans le même ordre que les enregistrements correspondants dans le fichier d'entrée. Le fichier de sortie input1.csv.out, basé sur le fichier d'entrée indiqué précédemment, se présente comme suit.

Inference1-Attribute1, Inference1-Attribute2, Inference1-Attribute3, ..., Inference1-AttributeM Inference2-Attribute1, Inference2-Attribute2, Inference2-Attribute3, ..., Inference2-AttributeM Inference3-Attribute1, Inference3-Attribute2, Inference3-Attribute3, ..., Inference3-AttributeM ... InferenceN-Attribute1, InferenceN-Attribute2, InferenceN-Attribute3, ..., InferenceN-AttributeM

Si vous définissez SplitType sur Line, vous pouvez définir le paramètre AssembleWith sur Line pour concaténer les enregistrements de sortie à l'aide d'un délimiteur de ligne. Cela ne modifie pas le nombre de fichiers de sortie. Le nombre de fichiers de sortie est égal au nombre de fichiers d'entrée, et l'utilisation de AssembleWith ne fusionne pas les fichiers. Si vous ne spécifiez pas le paramètre AssembleWith, les enregistrements de sortie sont concaténés par défaut dans un format binaire.

Lorsque les données d'entrée sont très volumineuses et sont transmises à l'aide de l'encodage segmenté HTTP, pour diffuser les données vers l'algorithme, définissez MaxPayloadInMB sur 0. Les algorithmes intégrés d'Amazon SageMaker ne prennent pas en charge cette fonction pour le moment.

Pour plus d'informations sur l'utilisation de l'API pour créer une tâche de transformation par lots, consultez l'API CreateTransformJob. Pour plus d'informations sur la corrélation entre les objets en entrée et en sortie d'une transformation par lots, consultez OutputDataConfig. Pour obtenir un exemple d'utilisation de la transformation par lots, veuillez consulter (Facultatif) Faire une prédiction avec la transformation par lots.

Accélération d'une tâche de transformation par lots

Si vous utilisez l'API CreateTransformJob, vous pouvez réduire le temps nécessaire à l'exécution des tâches de transformation par lots en utilisant des valeurs optimales pour les paramètres, tels que MaxPayloadInMB, MaxConcurrentTransforms ou BatchStrategy. Le rapport qualité-prix idéal pour MaxConcurrentTransforms est égal au nombre de travailleurs de calcul dans la tâche de transformation par lots. Si vous utilisez la console SageMaker, vous pouvez spécifier ces valeurs de paramètre optimales dans la section Additional configuration (Configuration supplémentaire) de la page Batch transform job configuration (Configuration de tâche de transformation par lots). SageMaker trouve automatiquement les valeurs de paramètres optimales pour les algorithmes intégrés. Pour les algorithmes personnalisés, indiquez les valeurs suivantes par l'intermédiaire du point de terminaison execution-parameters.

Utilisation de la transformation par lots pour tester des variantes de production

Pour tester différents modèles ou différentes valeurs d'hyperparamètre, créez une tâche de transformation pour chaque nouvelle variante de modèle et utilisez un ensemble de données de validation. Pour chaque tâche de transformation, spécifiez un nom et un emplacement de modèle uniques dans Amazon S3 pour le fichier de sortie. Pour analyser les résultats, utilisez Journaux et métriques des pipelines d'inférence.

Exemples de bloc-notes de transformation par lots

Pour obtenir un exemple de bloc-notes qui utilise la transformation par lots avec un modèle d'analyse des composants principaux (PCA) pour réduire les données dans une matrice de révision d'élément utilisateur, suivi de l'application d'un algorithme de clustering spatial basé sur la densité d'applications avec bruit (DBSCAN) aux films en cluster, consultez Batch Transform with PCA and DBSCAN Movie Clusters. Pour obtenir des instructions relatives à la création et l'accès à des instances de blocs-notes Jupyter afin d'exécuter l'exemple dans SageMaker, veuillez consulter Instances Amazon SageMaker Notebook. Après avoir créé et ouvert une instance de bloc-notes, choisissez l'onglet SageMaker Examples (Exemples SageMaker) pour afficher une liste de tous les exemples SageMaker. Vous trouverez des exemples de bloc-notes de modélisation des rubriques qui utilisent les algorithmes NTM dans la section Advanced functionality (Fonctionnalité avancée). Pour ouvrir un bloc-notes, choisissez l'onglet Use (Utiliser) correspondant, puis Create copy (Créer une copie).