Verwenden Sie benutzerdefinierte Algorithmen für Modelltraining und Hosting auf Amazon SageMaker AI mit Apache Spark - Amazon SageMaker KI

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 AI mit Apache Spark

In verwenden Sie denSageMaker Beispiele für AI Spark für Scala, kMeansSageMakerEstimator weil das Beispiel den von Amazon SageMaker AI bereitgestellten K-Means-Algorithmus 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 –Implementiert com.amazonaws.services.sagemaker.sparksdk.transformation.RequestRowSerializer.

    Dieser Parameter serialisiert Zeilen in der Eingabe, um sie DataFrame zur Inferenz an das in SageMaker AI gehostete Modell zu senden.

  • responseRowDeserializer – Implementiert.

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

    Dieser Parameter deserialisiert Antworten aus dem Modell, das in AI gehostet wird, zurück in SageMaker ein. DataFrame

  • trainingSparkDataFormat – Gibt das von Spark verwendete Datenformat beim Upload der Trainingsdaten von einem DataFrame nach S3 an. Beispielsweise "sagemaker" für das protobuf-Format, "csv" für durch Komma getrennte Werte und "libsvm" für das LibSVM-Format.

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.