Amazon을 사용한 Apache Spark SageMaker - Amazon SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon을 사용한 Apache Spark SageMaker

Amazon SageMaker Spark는 를 사용하여 Spark 기계 학습(ML) 파이프라인을 구축하는 데 도움이 되는 오픈 소스 Spark 라이브러리입니다 SageMaker. 이렇게 하면 Spark ML 스테이지와 SageMaker 모델 훈련 및 호스팅과 같은 스테이지의 통합이 간소화됩니다. SageMaker Spark에 대한 자세한 내용은 SageMaker Spark GitHub 리포지토리를 참조하세요. 다음 주제에서는 에서 Apache Spark를 사용하는 방법을 배우는 정보를 제공합니다 SageMaker.

SageMaker Spark 라이브러리는 Python 및 Scala에서 사용할 수 있습니다. SageMaker Spark를 사용하여 Spark 클러스터의 org.apache.spark.sql.DataFrame 데이터 프레임을 SageMaker 사용하여 에서 모델을 훈련할 수 있습니다. 모델 훈련 후 호스팅 서비스를 사용하여 모델을 SageMaker 호스팅할 수도 있습니다.

SageMaker Spark 라이브러리인 는 특히 다음 클래스를 com.amazonaws.services.sagemaker.sparksdk제공합니다.

  • SageMakerEstimator - org.apache.spark.ml.Estimator인터페이스를 확장합니다. 에서 모델 훈련에 이 추정기를 사용할 수 있습니다 SageMaker.

  • KMeansSageMakerEstimator, PCASageMakerEstimator, XGBoostSageMakerEstimator- SageMakerEstimator클래스를 확장합니다.

  • SageMakerModel - org.apache.spark.ml.Model클래스를 확장합니다. 에서 모델 호스팅 및 추론 가져오기SageMakerModel에 사용할 수 있습니다 SageMaker.

SageMaker Spark GitHub 리포지토리에서 Python Spark(PySpark) 및 Scala 라이브러리 모두에 대한 소스 코드를 다운로드할 수 있습니다.

SageMaker Spark 라이브러리의 설치 및 예제는 SageMaker Spark for Scala 예제 또는 섹션을 참조하세요Python용 SageMaker Spark(PySpark) 예제를 사용하기 위한 리소스.

Amazon EMR on AWS 을 사용하여 Spark 클러스터를 관리하는 경우 Apache Spark를 참조하세요. EMR 에서 Amazon을 사용하는 방법에 대한 자세한 내용은 섹션을 SageMaker참조하세요Amazon을 사용한 데이터 준비 EMR.

Apache Spark 애플리케이션을 와 통합 SageMaker

다음은 Apache Spark 애플리케이션을 와 통합하는 단계에 대한 개략적인 요약입니다 SageMaker.

  1. 익숙한 Apache Spark 라이브러리를 사용하여 계속해서 데이터 전처리를 수행합니다. 데이터 세트는 Spark 클러스터에서 DataFrame로 남아 있습니다. 데이터를 에 로드합니다DataFrame. org.apache.spark.ml.linalg.Vector 가 인 featuresDoubles과 값이 Double인 선택적 label 열이 있도록 사전 처리합니다.

  2. SageMaker Spark 라이브러리의 추정기를 사용하여 모델을 훈련합니다. 예를 들어 모델 훈련을 SageMaker 위해 에서 제공하는 k-means 알고리즘을 선택한 경우 KMeansSageMakerEstimator.fit 메서드를 호출합니다.

    DataFrame을 입력으로 제공합니다. 예측기는 SageMakerModel객체를 반환합니다.

    참고

    SageMakerModelorg.apache.spark.ml.Model을 확장합니다.

    fit 메서드는 다음을 수행합니다.

    1. 입력을 DataFrame protobuf 형식으로 변환합니다. 입력 에서 featureslabel 열을 선택하면 됩니다DataFrame. 그런 다음 프로토부프 데이터를 Amazon S3 버킷에 업로드합니다. protobuf 형식은 에서 모델 훈련에 효율적입니다 SageMaker.

    2. 요청을 전송 SageMaker 하여 에서 모델 훈련을 SageMaker CreateTrainingJob 시작합니다. 모델 훈련이 완료되면 모델 아티팩트를 S3 버킷에 SageMaker 저장합니다.

      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에 추가합니다.