Amazon SageMaker AI を使用した Apache Spark - Amazon SageMaker AI

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

Amazon SageMaker AI を使用した Apache Spark

Amazon SageMaker AI Spark は、 SageMaker AI を使用して Spark 機械学習 (ML) パイプラインを構築するのに役立つオープンソースの Spark ライブラリです。これにより、Spark ML ステージとモデルトレーニングやホスティングなどの SageMaker AI ステージの統合が簡素化されます。 SageMaker AI Spark の詳細については、SageMaker AI Spark GitHub リポジトリを参照してください。以下のトピックでは、 SageMaker AI で Apache Spark を使用する方法について説明します。

SageMaker AI Spark ライブラリは Python と Scala で利用できます。 SageMaker AI Spark を使用して、Spark クラスターorg.apache.spark.sql.DataFrameのデータフレームを使用して SageMaker AI のモデルをトレーニングできます。モデルトレーニングの後、 SageMaker AI ホスティングサービスを使用してモデルをホストすることもできます。

SageMaker AI Spark ライブラリ にはcom.amazonaws.services.sagemaker.sparksdk、特に以下のクラスが用意されています。

  • SageMakerEstimator - org.apache.spark.ml.Estimator インターフェイスを拡張します。この推定器は、 SageMaker AI でのモデルトレーニングに使用できます。

  • KMeansSageMakerEstimatorPCASageMakerEstimatorXGBoostSageMakerEstimator - SageMakerEstimator クラスを拡張します。

  • SageMakerModel - org.apache.spark.ml.Model クラスを拡張します。これは、 SageMaker AI でのモデルのホスティングと推論の取得SageMakerModelに使用できます。

Python Spark (PySpark) ライブラリと Scala ライブラリの両方のソースコードを SageMaker AI Spark GitHubリポジトリからダウンロードできます。

SageMaker AI Spark ライブラリのインストールと例については、SageMaker AI Spark for Scala の例「」または「」を参照してください SageMaker AI Spark for Python を使用するためのリソース (PySpark) の例

EMR で Amazon を使用して Spark クラスターを管理する場合は、 AWS 「Apache Spark」を参照してください。 SageMaker AI EMRでの Amazon の使用の詳細については、「」を参照してくださいAmazon を使用したデータ準備 EMR

Apache Spark アプリケーションを SageMaker AI と統合する

Apache Spark アプリケーションを SageMaker AI と統合する手順の概要を次に示します。

  1. 使い慣れている Apache Spark ライブラリを使用してデータの事前処理を続行します。データセットは Spark クラスター内で DataFrame のまま残ります。データを DataFrame にロードします。org.apache.spark.ml.linalg.VectorDoublesfeatures 列とオプションの label 列が Double​ 型の値を持つように、前処理を行います。

  2. SageMaker AI Spark ライブラリの推定器を使用してモデルをトレーニングします。たとえば、 SageMaker AI が提供する k-means アルゴリズムをモデルトレーニング用に選択した場合は、 KMeansSageMakerEstimator.fitメソッドを呼び出します。

    DataFrame を入力として指定します。推定器は SageMakerModel オブジェクトを返します。

    注記

    SageMakerModelorg.apache.spark.ml.Model を拡張します。

    fit メソッドは、次のような処理を実行します。

    1. 入力 DataFrame を protobuf 形式に変換します。これは、入力 DataFrame から featureslabel 列を選択することで実行できます。次に、protobuf データを Amazon S3 バケットにアップロードします。protobuf 形式は、 SageMaker AI でのモデルトレーニングに効率的です。

    2. SageMaker AI CreateTrainingJobリクエストを送信して、 SageMaker AI でモデルトレーニングを開始します。モデルトレーニングが完了すると、 SageMaker AI はモデルアーティファクトを S3 バケットに保存します。

      SageMaker AI は、モデルトレーニング用に指定したIAMロールを引き受け、ユーザーに代わってタスクを実行します。例えば、このロールを使用して、S3 バケットからトレーニングデータを読み取り、モデルアーティファクトをバケットに書き込みます。

    3. SageMakerModel オブジェクトを作成して返します。コンストラクタは、モデルの SageMaker AI へのデプロイに関連する以下のタスクを実行します。

      1. SageMaker AI にCreateModelリクエストを送信します。

      2. SageMaker AI にCreateEndpointConfigリクエストを送信します。

      3. SageMaker AI にCreateEndpointリクエストを送信し、AI は指定されたリソースを起動し、そのリソースでモデルをホストします。

  3. AI でホストされているモデルから SageMaker を使用して推論を取得できますSageMakerModel.transform

    特徴が指定された入力 DataFrame を入力として指定します。transform メソッドがそれを推論が含まれる DataFrame メソッドに変換します。内部的には、 transformメソッドは に推論を取得InvokeEndpoint SageMaker APIするためのリクエストを送信します。この transform メソッドは、推論を入力 DataFrame に追加します。