Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden Sie benutzerdefinierte Algorithmen für Modelltraining und Hosting auf Amazon SageMaker mit Apache Spark
In verwenden Sie denSageMaker Beispiele für Spark für Scala, kMeansSageMakerEstimator
weil das Beispiel den von Amazon bereitgestellten K-Means-Algorithmus SageMaker für das Modelltraining verwendet. Stattdessen können Sie einen eigenen benutzerdefinierten Algorithmus zur Modelltraining einsetzen. Unter der Voraussetzung, dass Sie bereits ein Docker-Image erstellt haben, können Sie eine eigene SageMakerEstimator
generieren und den Amazon-Elastic-Container-Registry-Pfad für das benutzerdefinierte Image angeben.
Im folgenden Beispiel wird gezeigt, wie ein KMeansSageMakerEstimator
-Objekt aus SageMakerEstimator
erstellt wird. Geben Sie in der neuen Schätzfunktion explizit den Docker-Registry-Pfad zu den Trainings- und Inferenzcode-Images an.
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")
Im Code sind folgende Parameter in den SageMakerEstimator
-Konstruktor eingebunden:
-
trainingImage
– Gibt den Docker-Registry-Pfad zum Trainings-Image mit Ihrem benutzerdefinierten Code an. -
modelImage
– Gibt den Docker-Registry-Pfad zum Image mit dem Inferenzcode an. -
requestRowSerializer
–Implementiertcom.amazonaws.services.sagemaker.sparksdk.transformation.RequestRowSerializer
.Dieser Parameter serialisiert Zeilen in der Eingabe, um sie zur Inferenz an das Modell
DataFrame
zu senden, in SageMaker dem sie gehostet werden. -
responseRowDeserializer
– Implementiert.com.amazonaws.services.sagemaker.sparksdk.transformation.ResponseRowDeserializer
.Dieser Parameter deserialisiert Antworten aus dem Modell, in dem es gehostet wird, zurück in ein. SageMaker
DataFrame
-
trainingSparkDataFormat
– Gibt das von Spark verwendete Datenformat beim Upload der Trainingsdaten von einemDataFrame
nach S3 an. Zum Beispiel für das Protobuf-Format,"sagemaker"
für kommagetrennte Werte und"csv"
für das Lib-Format."libsvm"
SVM
Sie können Ihren eigenen RequestRowSerializer
und ResponseRowDeserializer
implementieren, um Zeilen aus einem Datenformat, das vom Inferenzcode unterstützt wird (z. B. LibSVM oder CSV), zu serialisieren und zu deserialisieren.