Apache Spark による Amazon SageMaker でのモデルトレーニングとホスティングにカスタムアルゴリズムを使用する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Apache Spark による Amazon SageMaker でのモデルトレーニングとホスティングにカスタムアルゴリズムを使用する

SageMaker この例ではモデルトレーニング用に Amazon が提供する k-means kMeansSageMakerEstimator アルゴリズムを使用しているためSageMaker Spark for Scala のサンプル、ではを使用します。代わりに、モデルのトレーニングに独自のカスタムアルゴリズムを使用してもかまいません。Docker イメージが作成済みである場合、独自の SageMakerEstimator を作成でき、カスタムイメージの Amazon Elastic Container Registry パスを指定できます。

次のサンプルは、SageMakerEstimator から KMeansSageMakerEstimator を作成する方法を示しています。新しい推定器で、トレーニングや推論のコードイメージへの Docker レジストリパスを明示的に指定します。

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")

コード内の SageMakerEstimator コンストラクターのパラメータは次のとおりです。

  • trainingImage - カスタムコードが含まれるトレーニングイメージへの Docker レジストリパスを特定します。

  • modelImage - 推論コードが含まれるイメージへの Docker レジストリパスを特定します。

  • requestRowSerializer - com.amazonaws.services.sagemaker.sparksdk.transformation.RequestRowSerializer を実装します。

    このパラメータは入力の行をシリアル化し、DataFrameホストされているモデルに送信して推論します。 SageMaker

  • responseRowDeserializer - 次を実装します。

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

    このパラメータは、ホストされているモデルからの応答を逆シリアル化し、に戻します。 SageMaker DataFrame

  • trainingSparkDataFormat - トレーニングデータを DataFrame から S3 にアップロードするときに Spark が使うデータ形式を指定します。たとえば、protobuf 形式の場合は "sagemaker"、カンマ区切り値の場合は "csv"、LibSVM 形式の場合は "libsvm" と指定します。

独自の RequestRowSerializerResponseRowDeserializer を実装し、推論コードが対応しているデータ形式 (.libsvm、.csv など) から行を逆シリアル化できます。