Utilisez la transformation par lots pour exécuter l'inférence avec Amazon SageMaker - 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.

Utilisez la transformation par lots pour exécuter l'inférence avec Amazon SageMaker

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.

Utilisez la transformation par lots pour obtenir des inférences à partir de grands ensembles de données

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, avoir un fichier d'ensemble de données stocké dans un compartiment S3. input1.csv 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

Lorsqu'une tâche de transformation par lots démarre, SageMaker démarre des instances de calcul et répartit la charge de travail d'inférence ou de prétraitement entre elles. 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 avez un fichier d'entrée mais que vous initialisez plusieurs instances de calcul, une seule instance traite le fichier d'entrée. Les autres instances sont inactives.

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 diviser les fichiers d'entrée en mini-lots lorsque vous créez une tâche de transformation par lots, définissez la valeur du SplitTypeparamètre sur. Line SageMaker utilise l'intégralité du fichier d'entrée dans une seule requête lorsque :

  • SplitTypeest réglé surNone.

  • Un fichier d'entrée ne peut pas être divisé en mini-lots.

. Notez que Batch Transform ne prend pas en charge les entrées CSV formatées contenant des caractères de nouvelle ligne incorporé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 avec succès tous les enregistrements d'un fichier d'entrée, elle crée un fichier de sortie. Le fichier de sortie porte le même nom et la même extension de .out fichier. 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://amzn-s3-demo-bucket/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 AssembleWith paramètre, les enregistrements de sortie sont concaténés au format binaire par défaut.

Lorsque les données d'entrée sont très volumineuses et sont transmises à l'aide d'un codage HTTP fragmenté, pour diffuser les données vers l'algorithme, réglez sur MaxPayloadInMB. 0 Les algorithmes SageMaker intégrés d'Amazon ne prennent pas en charge cette fonctionnalité.

Pour plus d'informations sur l'utilisation du API pour créer une tâche de transformation par lots, consultez le CreateTransformJobAPI. Pour plus d'informations sur la relation entre les objets d'entrée et de sortie transformés 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érez un travail de transformation par lots

Si vous utilisez le CreateTransformJobAPI, 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. Cela inclut des paramètres tels que MaxPayloadInMBMaxConcurrentTransforms, 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 SageMaker console, spécifiez ces valeurs de paramètres optimales dans la section Configuration supplémentaire de la page de configuration de la tâche de transformation par lots. SageMaker trouve automatiquement les paramètres optimaux 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.

Utiliser la transformation par lots pour tester les variantes de production

Pour tester différents modèles ou paramètres d'hyperparamètres, créez une tâche de transformation distincte pour chaque nouvelle variante de modèle et utilisez un jeu 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 carnets de notes avec transformation par lots

Pour un exemple de bloc-notes utilisant la transformation par lots, voir Batch Transform with PCA et DBSCAN Movie Clusters. Ce bloc-notes utilise la transformation par lots avec un modèle d'analyse en composants principaux (PCA) pour réduire les données dans une matrice de révision des éléments par l'utilisateur. Il montre ensuite l'application d'un clustering spatial d'applications basé sur la densité avec l'algorithme noise (DBSCAN) pour regrouper des films.

Pour obtenir des instructions sur la création et l'accès aux instances de bloc-notes Jupyter dans lesquelles vous pouvez exécuter l'exemple SageMaker, consultez. Instances Amazon SageMaker Notebook Après avoir créé et ouvert une instance de bloc-notes, cliquez sur l'onglet SageMakerExemples pour afficher la liste de tous les SageMaker exemples. La rubrique relative à la modélisation d'exemples de blocs-notes utilisant les NTM algorithmes se trouve dans la section Fonctionnalités avancées. Pour ouvrir un bloc-notes, choisissez l'onglet Use (Utiliser) correspondant, puis Create copy (Créer une copie).