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클래스를 확장합니다. 이 SageMakerModel을 사용하여 SageMaker AI에서 모델을 호스팅하고 추론을 얻을 수 있습니다.

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

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

에서 Amazon EMRAWS을 사용하여 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. SageMakerModel.transform을 통해 SageMaker AI에서 호스팅하는 모델에서 추론을 얻을 수 있습니다.

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