Utilisez des algorithmes personnalisés pour la formation et l'hébergement de modèles sur Amazon SageMaker avec Apache Spark - 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 des algorithmes personnalisés pour la formation et l'hébergement de modèles sur Amazon SageMaker avec Apache Spark

DansSageMaker Exemples de Spark pour Scala, vous utilisez le kMeansSageMakerEstimator car l'exemple utilise l'algorithme k-means fourni par Amazon SageMaker pour l'entraînement des modèles. Vous pouvez choisir d'utiliser à sa place votre propre algorithme personnalisé pour l'entraînement du modèle. En supposant que vous ayez déjà créé une image Docker, vous pouvez créer votre propre SageMakerEstimator et spécifier le chemin d'accès à Amazon Elastic Container Registry pour votre image personnalisée.

L'exemple suivant montre comment créer un KMeansSageMakerEstimator à partir de SageMakerEstimator. Dans le nouvel évaluateur, vous spécifiez explicitement le chemin de registre Docker vers vos images de code d'entraînement et d'inférence.

import com.amazonaws.services.sagemaker.sparksdk.IAMRole import com.amazonaws.services.sagemaker.sparksdk.SageMakerEstimator import com.amazonaws.services.sagemaker.sparksdk.transformation.serializers.ProtobufRequestRowSerializer import com.amazonaws.services.sagemaker.sparksdk.transformation.deserializers.KMeansProtobufResponseRowDeserializer val estimator = new SageMakerEstimator( trainingImage = "811284229777.dkr.ecr.us-east-1.amazonaws.com/kmeans:1", modelImage = "811284229777.dkr.ecr.us-east-1.amazonaws.com/kmeans:1", requestRowSerializer = new ProtobufRequestRowSerializer(), responseRowDeserializer = new KMeansProtobufResponseRowDeserializer(), hyperParameters = Map("k" -> "10", "feature_dim" -> "784"), sagemakerRole = IAMRole(roleArn), trainingInstanceType = "ml.p2.xlarge", trainingInstanceCount = 1, endpointInstanceType = "ml.c4.xlarge", endpointInitialInstanceCount = 1, trainingSparkDataFormat = "sagemaker")

Dans le code, les paramètres du constructeur SageMakerEstimator incluent :

  • trainingImage : identifie le chemin de registre Docker vers l'image d'entraînement contenant votre code personnalisé.

  • modelImage : identifie le chemin de registre Docker vers l'image contenant le code d'inférence.

  • requestRowSerializer — Implémente com.amazonaws.services.sagemaker.sparksdk.transformation.RequestRowSerializer.

    Ce paramètre sérialise les lignes dans l'entrée DataFrame pour les envoyer au modèle hébergé dans SageMaker pour inférence.

  • responseRowDeserializer : implémente

    com.amazonaws.services.sagemaker.sparksdk.transformation.ResponseRowDeserializer.

    Ce paramètre désérialise les réponses du modèle, hébergé dans SageMaker, vers un. DataFrame

  • trainingSparkDataFormat : spécifie le format de données utilisé par Spark lors du téléchargement des données d'entraînement d'un DataFrame vers S3. Par exemple, "sagemaker" pour le format protobuf, pour les valeurs séparées par "csv" des virgules et "libsvm" pour le format Lib. SVM

Vous pouvez implémenter vos propres RequestRowSerializer et ResponseRowDeserializer pour sérialiser et désérialiser les lignes à partir d'un format de données pris en charge par votre code d'inférence, tel que .libsvm ou .csv.