使用阿帕奇星火與 Amazon SageMaker - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用阿帕奇星火與 Amazon SageMaker

Amazon SageMaker Spark 是一個開放原始碼 Spark 程式庫,可協助您使用 SageMaker. 這簡化了 Spark ML 階段與 SageMaker 階段的集成,例如模型訓練和託管。如需有關 SageMaker Spark 的資訊,請參閱 S SageMaker park GitHub 儲存庫。

SageMaker 星火庫是在 Python 和斯卡拉可用。您可以使用 SageMaker Spark 在 Spark 叢集中 SageMaker 使用org.apache.spark.sql.DataFrame資料框架來訓練模型。在模型訓練之後,您也可以使用 SageMaker 託管服務來託管模型。

S SageMaker park 程式庫提供下列類別,其中包括:com.amazonaws.services.sagemaker.sparksdk

  • SageMakerEstimator - 延伸 org.apache.spark.ml.Estimator 介面。您可以在中使用此估算器進行模型訓練。 SageMaker

  • KMeansSageMakerEstimatorPCASageMakerEstimator、和 XGBoostSageMakerEstimator — 延伸 SageMakerEstimator 類別。

  • SageMakerModel - 延伸 org.apache.spark.ml.Model 類別。您可以將其用SageMakerModel於中的模型託管和取得推 SageMaker論。

您可以從星火庫下載這兩個 Python 星火(PySpark)和斯卡拉 GitHub庫的SageMaker 源代碼。

如需 SageMaker Spark 資源庫的安裝和範例,請參閱SageMaker 斯卡拉的例子火花SageMaker 火花 Python(PySpark)的例子

如果您使用 Amazon EMR AWS 來管理星火叢集,請參閱阿帕奇星火。如需中使用 Amazon EMR 的詳細資訊 SageMaker,請參閱使用 Amazon EMR 準備資料

整合您的 Apache 星火應用程式 SageMaker

以下是將 Apache Spark 應用程式與整合的步驟的高階摘要 SageMaker。

  1. 繼續使用您熟悉的 Apache Spark 程式庫進行資料預先處理。而資料集在 Spark 叢集中,仍為 DataFrame。將資料載入 DataFrame 並進行預先處理作業,藉此使獲得的 features 欄位具有 org.apache.spark.ml.linalg.VectorDoubles,且您亦可擁有具備 label 類型值的選用 Double 欄位。

  2. 使用 S SageMaker park 程式庫中的估算器來訓練您的模型。例如,如果您選擇模型訓練所提供的 SageMaker k 均值演算法,則呼叫該KMeansSageMakerEstimator.fit方法。

    提供 DataFrame,並將其做為輸入。估算器會傳回 SageMakerModel 物件。

    注意

    SageMakerModel 會延伸 org.apache.spark.ml.Model

    fit 方法會執行下列作業:

    1. 先從輸入 DataFrame 中選取 featureslabel 欄位,再將 protobuf 資料上傳至 Amazon S3 儲存貯體,將輸入 DataFrame 轉換成 protobuf 格式。原生物格式是有效的模型訓練. SageMaker

    2. SageMaker 透過傳送 SageMaker CreateTrainingJob請求開始中的模型訓練。模型訓練完成後, SageMaker 將模型成品儲存至 S3 儲存貯體。

      SageMaker 假設您為模型訓練指定的 IAM 角色,以代表您執行工作。例如,它會使用該角色從 S3 儲存貯體讀取訓練資料,然後將模型成品寫入儲存貯體。

    3. 建立並傳回 SageMakerModel 物件。構造函數執行以下任務,這些任務與將模型部署到相關 SageMaker。

      1. CreateModel要求傳送至 SageMaker。

      2. 向 SageMaker 傳送 CreateEndpointConfig 請求。

      3. CreateEndpoint請求傳送至 SageMaker,然後啟動指定的資源,並在其上裝載模型。

  3. 您可以從中 SageMaker 託管的模型取得推論。SageMakerModel.transform

    提供具備輸入特徵的 DataFrame 輸入。接著,transform 方法會將該輸入轉換為 DataFrame,其將包含推論。在內部,該transform方法向 InvokeEndpoint SageMaker API 發送請求以獲取推論。transform 方法會將推論附加到輸入 DataFrame