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émentecom.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émentecom.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'unDataFrame
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.