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의 모델 훈련에 사용할 수 있습니다.

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

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

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

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

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

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

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

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

  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 요청을 전송한 다음 지정된 리소스를 시작하고 해당 리소스를 기반으로 모델을 호스팅합니다.

  3. 를 사용하여 SageMaker AI에서 호스팅되는 모델에서 추론을 가져올 수 있습니다SageMakerModel.transform.

    기능을 입력으로 하는 입력 DataFrame를 제공합니다. transform 메서드는 이를 DataFrame컨테이너 추론으로 변형합니다. 내부적으로 transform메서드는 요청을 InvokeEndpointSageMaker API로 전송하여 추론을 얻습니다. transform 메서드는 추론을 입력 DataFrame에 추가합니다.