Amazon SageMaker 지출 분석 및 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | 아마존 웹 서비스

Amazon SageMaker 지출 분석 및 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | 아마존 웹 서비스

2021 년에 우리는 AWS 지원 사전 예방 서비스 의 일환으로 AWS 엔터프라이즈 지원 계획. 도입 이후 수백 명의 고객이 워크로드를 최적화하고, 가드레일을 설정하고, 기계 학습(ML) 워크로드의 비용 및 사용량에 대한 가시성을 개선하도록 도왔습니다.

이 게시물 시리즈에서는 비용 최적화에 대해 배운 교훈을 공유합니다. 아마존 세이지 메이커. 이 게시물에서는 다음을 사용하여 데이터 전처리에 중점을 둡니다. Amazon SageMaker 처리Amazon SageMaker 데이터 랭글러 작업.

데이터 전처리는 데이터 중심 AI 접근 방식에서 중추적인 역할을 합니다. 그러나 ML 교육 및 평가를 위해 원시 데이터를 준비하는 것은 컴퓨팅 리소스, 시간 및 인적 노력 측면에서 지루하고 까다로운 작업인 경우가 많습니다. 데이터 준비는 일반적으로 다양한 소스에서 통합되어야 하며 누락되거나 노이즈가 많은 값, 이상값 등을 처리해야 합니다.

또한 일반적인 ETL(추출, 변환 및 로드) 작업 외에도 ML 팀은 데이터를 평가하고 기능 중요도 점수를 생성하거나 MLOps 파이프라인의 일부로 학습 후 모델 평가를 생성하기 위한 빠른 모델 생성과 같은 고급 기능이 필요한 경우가 있습니다.

SageMaker는 이러한 문제를 해결하기 위해 특별히 설계된 두 가지 기능인 SageMaker Processing 및 Data Wrangler를 제공합니다. SageMaker Processing을 사용하면 완벽하게 관리되는 인프라에서 전처리, 후처리 및 모델 평가를 쉽게 실행할 수 있습니다. Data Wrangler는 단일 시각적 인터페이스와 완전히 분산된 데이터 처리 환경을 사용하여 데이터 소스 통합 및 기능 엔지니어링 프로세스를 단순화하여 데이터를 집계하고 준비하는 데 걸리는 시간을 줄입니다.

두 SageMaker 기능 모두 I/O, 스토리지 및 계산을 위한 여러 옵션으로 뛰어난 유연성을 제공합니다. 그러나 이러한 옵션을 잘못 설정하면 특히 대규모 데이터 세트를 처리할 때 불필요한 비용이 발생할 수 있습니다.

이 게시물에서는 가격 요소를 분석하고 SageMaker 처리 및 데이터 랭글러 작업에 대한 비용 최적화 지침을 제공합니다.

SageMaker 처리

SageMaker Processing은 데이터 처리 및 모델 평가 워크로드를 실행하는 관리형 솔루션입니다. ML 워크플로의 기능 엔지니어링, 데이터 유효성 검사, 모델 평가 및 모델 해석과 같은 데이터 처리 단계에서 사용할 수 있습니다. SageMaker Processing을 사용하면 고유한 사용자 지정 처리 스크립트를 가져오고 사용자 지정 컨테이너를 구축하거나 scikit-learn, Lime, Spark 등과 같은 공통 프레임워크와 함께 SageMaker 관리 컨테이너를 사용하도록 선택할 수 있습니다.

SageMaker Processing은 사용 기간 및 해당 인스턴스에 연결된 프로비저닝된 스토리지를 기준으로 선택한 인스턴스 유형에 대해 비용을 청구합니다. 1부에서는 사용을 시작하는 방법을 보여 주었습니다. AWS 비용 탐색기 SageMaker에서 비용 최적화 기회를 식별합니다.

사용 유형에 필터를 적용하여 처리 비용을 필터링할 수 있습니다. 이러한 사용 유형의 이름은 다음과 같습니다.

  • REGION-Processing:instanceType (예 : USE1-Processing:ml.m5.large)
  • REGION-Processing:VolumeUsage.gp2 (예 : USE1-Processing:VolumeUsage.gp2)

비용 탐색기에서 SageMaker 처리 비용을 검토하려면 SageMaker로 필터링하여 시작하십시오. 예배등에 대한 사용 유형, 다음을 입력하여 모든 처리 인스턴스 실행 시간을 선택할 수 있습니다. processing:ml 접두사를 선택하고 메뉴에서 목록을 선택합니다.

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

처리 및 파이프라인 개발 비용 절감

SageMaker 처리 작업의 실행 기간을 적정 크기로 조정하고 최적화하기 전에 이전 작업 실행에 대한 높은 수준의 지표를 확인합니다. 이를 위해 두 가지 방법 중에서 선택할 수 있습니다.

먼저 다음 항목에 액세스할 수 있습니다. 처리 SageMaker 콘솔의 페이지.

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

또는 목록_처리_작업 API.

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

처리 작업 상태는 다음과 같을 수 있습니다. InProgress, Completed, Failed, StoppingStopped.

새 MLOps 파이프라인을 개발할 때 많은 수의 실패한 작업이 일반적입니다. 그러나 사용된 리소스에 대한 요금이 부과되기 때문에 SageMaker에서 작업을 시작하기 전에 항상 작업을 테스트하고 검증하기 위해 모든 노력을 기울여야 합니다. 이를 위해 다음에서 SageMaker Processing을 사용할 수 있습니다. 로컬 모드. 로컬 모드는 추정기, 프로세서 및 파이프라인을 생성하고 이를 로컬 개발 환경에 배포할 수 있는 SageMaker SDK 기능입니다. 이는 SageMaker 관리 환경에서 스크립트를 실행하기 전에 스크립트를 테스트하는 좋은 방법입니다. 로컬 모드는 SageMaker 관리 컨테이너와 사용자가 직접 제공하는 컨테이너에서 지원됩니다. 로컬 모드를 사용하는 방법에 대해 자세히 알아보려면 Amazon SageMaker 파이프 라인, 인용하다 로컬 모드.

I/O 관련 비용 최적화

SageMaker 처리 작업은 관리되는 작업의 일부로 세 가지 데이터 소스에 대한 액세스를 제공합니다. 처리 입력: 아마존 단순 스토리지 서비스 (아마존 S3), 아마존 아테나아마존 레드 시프트. 자세한 내용은 다음을 참조하십시오. 프로세싱S3입력, AthenaDataset정의RedshiftDataset정의각각.

최적화를 살펴보기 전에 SageMaker 처리 작업이 이러한 데이터 원본을 지원하지만 필수는 아니라는 점에 유의해야 합니다. 처리 코드에서 모든 소스에서 액세스하는 데이터를 다운로드하기 위한 모든 방법을 구현할 수 있습니다(처리 인스턴스가 액세스할 수 있는 경우).

성능 처리 및 최적화 기회 감지에 대한 더 나은 통찰력을 얻으려면 다음을 권장합니다. 로깅 모범 사례 처리 스크립트에서. SageMaker는 처리 로그를 다음에 게시합니다. 아마존 클라우드 워치.

다음 예제 작업 로그에서 스크립트 처리에 15분이 걸렸음을 알 수 있습니다. Start custom scriptEnd custom script).

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

그러나 SageMaker 콘솔에서 작업이 추가로 4분(작업 총 실행 시간의 약 25%) 소요되었음을 알 수 있습니다.

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

처리 스크립트에 걸린 시간 외에도 SageMaker에서 관리하는 데이터 다운로드 및 업로드에도 시간(4분)이 걸렸기 때문입니다. 이것이 비용의 큰 부분을 차지하는 것으로 판명되면 다중 처리와 함께 Boto3 API를 사용하여 동시에 파일을 다운로드하거나 타사 라이브러리를 WebDataset 또는 s5cmd로 사용하여 Amazon S3에서 더 빠르게 다운로드하는 등 다운로드 시간을 단축할 수 있는 다른 방법을 고려하십시오. . 자세한 내용은 다음을 참조하십시오. s3cmd로 S5 워크로드 병렬화. 이러한 방법으로 인해 Amazon S3에 요금이 부과될 수 있습니다. 데이터 전송.

처리 작업도 지원 파이프 모드. 이 방법을 사용하면 SageMaker는 ML 스토리지 볼륨을 사용하지 않고 소스에서 처리 컨테이너로 직접 입력 데이터를 명명된 파이프로 스트리밍하여 데이터 다운로드 시간을 없애고 디스크 볼륨을 줄입니다. 그러나 이를 위해서는 단순히 디스크의 파일을 읽는 것보다 더 복잡한 프로그래밍 모델이 필요합니다.

앞에서 언급했듯이 SageMaker Processing은 데이터 소스로 Athena 및 Amazon Redshift도 지원합니다. 이러한 소스로 처리 작업을 설정할 때 SageMaker는 자동으로 데이터를 Amazon S3에 복사하고 처리 인스턴스는 Amazon S3 위치에서 데이터를 가져옵니다. 그러나 작업이 완료되면 관리되는 정리 프로세스가 없으며 복사된 데이터는 여전히 Amazon S3에 남아 있으며 원하지 않는 스토리지 요금이 발생할 수 있습니다. 따라서 Athena 및 Amazon Redshift 데이터 원본을 사용하는 경우 다음을 수행하는 Lambda 함수와 같은 정리 절차를 구현해야 합니다. 일정에 따라 실행 또는 람다 단계 SageMaker 파이프라인의 일부로.

다운로드와 마찬가지로 처리 아티팩트를 업로드하는 것도 최적화의 기회가 될 수 있습니다. 처리 작업의 출력이 다음을 사용하여 구성된 경우 ProcessingS3Output 매개변수, 다음을 지정할 수 있습니다. S3UploadMode 사용. 그만큼 S3UploadMode 매개변수 기본값은 EndOfJob, 작업이 완료된 후 SageMaker가 결과를 업로드하도록 합니다. 그러나 처리 작업이 여러 파일을 생성하는 경우 다음을 설정할 수 있습니다. S3UploadModeContinuous, 처리가 계속됨에 따라 아티팩트 업로드를 동시에 활성화하고 작업 런타임을 줄입니다.

적절한 크기의 처리 작업 인스턴스

올바른 인스턴스 유형과 크기를 선택하는 것은 SageMaker 처리 작업의 비용을 최적화하는 데 중요한 요소입니다. 동일한 인스턴스 패밀리 내에서 다른 버전으로 마이그레이션하거나 다른 인스턴스 패밀리로 마이그레이션하여 인스턴스 크기를 적절하게 조정할 수 있습니다. 동일한 인스턴스 패밀리 내에서 마이그레이션할 때 CPU/GPU 및 메모리만 고려하면 됩니다. 올바른 처리 리소스 선택에 대한 자세한 내용 및 일반 지침은 다음을 참조하십시오. Amazon SageMaker에서 효율적인 컴퓨팅 리소스 보장.

인스턴스 선택을 미세 조정하기 위해 먼저 CloudWatch에서 처리 작업 지표를 분석합니다. 자세한 내용은 다음을 참조하십시오. Amazon CloudWatch로 Amazon SageMaker 모니터링.

CloudWatch는 SageMaker에서 원시 데이터를 수집하여 읽을 수 있는 거의 실시간 지표로 처리합니다. 이러한 통계는 15개월 동안 유지되지만 CloudWatch 콘솔은 지난 2주 동안 업데이트된 지표로 검색을 제한합니다(이렇게 하면 현재 작업만 표시됨). 처리 작업 지표는 /aws/sagemaker/ProcessingJobs 네임스페이스에서 찾을 수 있으며 수집된 지표는 다음과 같습니다. CPUUtilization, MemoryUtilization, GPUUtilization, GPUMemoryUtilizationDiskUtilization.

다음 스크린샷은 CloudWatch에서 앞에서 본 처리 작업의 예를 보여줍니다.

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

이 예에서는 평균 CPU 및 메모리 값(CloudWatch의 기본값)을 볼 수 있습니다. 평균 CPU 사용량은 0.04%, 메모리는 1.84%, 디스크 사용량은 13.7%입니다. 적절한 크기를 지정하려면 항상 최대 CPU 및 메모리 사용량을 고려하십시오(이 예에서 최대 CPU 사용률은 처음 98분 동안 3%였습니다). 일반적으로 최대 CPU 및 메모리 사용량이 지속적으로 40% 미만이면 컴퓨터를 반으로 줄일 수 있습니다. 예를 들어 ml.c5.4xlarge 인스턴스를 사용 중이라면 ml.c5.2xlarge로 전환하여 비용을 50% 줄일 수 있습니다.

데이터 랭글러 작업

데이터 랭글러는 아마존 세이지 메이커 스튜디오 데이터 탐색 및 처리를 위한 반복 가능하고 확장 가능한 솔루션을 제공합니다. Data Wrangler 인터페이스를 사용하여 대화식으로 데이터를 가져오고, 분석하고, 변환하고, 기능화합니다. 이러한 단계는 Data Wrangler 작업에서 사용할 수 있는 레시피(.flow 파일)에 캡처됩니다. 이를 통해 데이터에 동일한 데이터 변환을 다시 적용하고 ML 파이프라인의 일부로 또는 독립적으로 분산 배치 데이터 처리 작업으로 확장할 수 있습니다.

Studio에서 Data Wrangler 앱을 최적화하는 방법에 대한 지침은 이 시리즈의 2부를 참조하십시오.

이 섹션에서는 Data Wrangler 작업 최적화에 중점을 둡니다.

데이터 랭글러 사용 SageMaker Spark 처리 작업 Data Wrangler가 관리하는 컨테이너를 사용합니다. 이 컨테이너는 작업의 .flow 파일에서 지시를 실행합니다. 다른 처리 작업과 마찬가지로 Data Wrangler는 사용 기간 및 해당 인스턴스에 연결된 프로비저닝된 스토리지를 기준으로 선택한 인스턴스에 대해 비용을 청구합니다.

Cost Explorer에서 사용 유형에 필터를 적용하여 Data Wrangler 작업 비용을 필터링할 수 있습니다. 이러한 사용 유형의 이름은 다음과 같습니다.

  • REGION-processing_DW:instanceType (예 : USE1-processing_DW:ml.m5.large)
  • REGION-processing_DW:VolumeUsage.gp2 (예 : USE1-processing_DW:VolumeUsage.gp2)

비용 탐색기에서 데이터 랭글러 비용을 보려면 SageMaker를 사용하도록 서비스를 필터링하고 사용 유형을 선택하십시오 processing_DW 접두사를 누르고 메뉴에서 목록을 선택합니다. 그러면 인스턴스 사용량(시간)과 스토리지 볼륨(GB) 관련 비용이 모두 표시됩니다. (Studio Data Wrangler 비용을 확인하려면 사용 유형을 Studio_DW 접두사.)

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

Data Wrangler 작업 인스턴스의 적절한 크기 조정 및 예약

현재 Data Wrangler는 인스턴스 크기가 ml.m5xlarge, ml.m5.4xlarge 및 ml.m5.12xlarge인 m5.24 인스턴스만 지원합니다. 분산 작업 기능을 사용하여 작업 비용을 미세 조정할 수 있습니다. 예를 들어 RAM에 350GiB가 필요한 데이터 세트를 처리해야 한다고 가정합니다. 4xlarge(128GiB) 및 12xlarge(256GiB)는 처리할 수 없으며 m5.24xlarge 인스턴스(768GiB)를 사용하게 됩니다. 그러나 5.12개의 m2xlarge 인스턴스(256 * 512GiB = 40GiB)를 사용하고 비용을 5.4% 절감하거나 3개의 m128xlarge 인스턴스(384 * 50GiB = 5.24GiB)를 사용하여 mXNUMXxlarge의 XNUMX%를 절약할 수 있습니다. 인스턴스 비용. 이는 추정치이며 분산 처리로 인해 전체 런타임에 영향을 미치는 약간의 오버헤드가 발생할 수 있다는 점에 유의해야 합니다.

인스턴스 유형을 변경할 때 인스턴스 유형을 업데이트해야 합니다. 스파크 구성 따라서. 예를 들어 속성으로 구성된 초기 ml.m5.4xlarge 인스턴스 작업이 있는 경우 spark.driver.memory 2048로 설정하고 spark.executor.memory 55742로 설정하고 나중에 ml.m5.12xlarge로 확장하려면 해당 구성 값을 늘려야 합니다. 그렇지 않으면 처리 작업에서 병목 현상이 발생합니다. Data Wrangler GUI 또는 구성 경로에 추가된 구성 파일에서 이러한 변수를 업데이트할 수 있습니다(다음 예 참조).

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

Data Wrangler의 또 다른 매력적인 기능은 다음과 같은 기능입니다. 예정된 작업 설정. 데이터를 주기적으로 처리하는 경우 처리 작업을 자동으로 실행하도록 일정을 만들 수 있습니다. 예를 들어 새 데이터를 가져올 때 처리 작업을 자동으로 실행하는 일정을 만들 수 있습니다(예를 들어 다음을 참조하십시오. Amazon S3로 내보내기 or Amazon SageMaker Feature Store로 내보내기). 그러나 일정을 생성하면 Data Wrangler가 eventRule 이벤트브릿지에서 즉, 생성한 이벤트 규칙(및 처리 작업을 실행하는 데 사용된 인스턴스)에 대해서도 요금이 부과됩니다. 자세한 내용은 다음을 참조하십시오. Amazon EventBridge 요금.

결론

이 게시물에서는 전처리 시 비용 분석 및 모범 사례에 대한 지침을 제공했습니다.

SageMaker Processing 및 Data Wrangler 작업을 사용하는 데이터. 사전 처리와 마찬가지로 ML 모델을 구축, 교육 및 실행하는 데 불필요한 비용이 발생할 수 있는 많은 옵션과 구성 설정이 있습니다. 따라서 기계 학습이 산업 전반에 걸쳐 강력한 도구로 자리매김함에 따라 ML 워크로드는 비용 효율성을 유지해야 합니다.

SageMaker는 ML 파이프라인의 각 단계를 용이하게 하기 위해 광범위하고 심층적인 기능 세트를 제공합니다.

이러한 견고함은 또한 성능이나 민첩성을 손상시키지 않으면서 지속적인 비용 최적화 기회를 제공합니다.


저자에 관하여

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.디팔리 라잘레 AWS의 선임 AI/ML 전문가입니다. 그녀는 AWS 에코시스템에서 AI/ML 솔루션을 배포하고 유지 관리하기 위한 모범 사례와 함께 기술 지침을 제공하는 기업 고객과 협력합니다. 그녀는 NLP 및 컴퓨터 비전과 관련된 다양한 딥 러닝 사용 사례에 대해 광범위한 조직과 협력했습니다. 그녀는 조직이 생성 AI를 활용하여 사용 경험을 향상할 수 있도록 지원하는 데 열정적입니다. 여가 시간에는 영화, 음악, 문학을 즐깁니다.

Amazon SageMaker 지출을 분석하고 사용량에 따른 비용 최적화 기회 결정, 3부: 처리 및 데이터 랭글러 작업 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.우리 로젠버그 유럽, 중동 및 아프리카의 AI 및 ML 전문 기술 관리자입니다. 이스라엘에 기반을 둔 Uri는 기업 고객이 ML을 대규모로 설계, 구축 및 운영할 수 있도록 지원합니다. 여가 시간에는 자전거 타기, 하이킹, 일몰 감상(최소 하루에 한 번)을 즐깁니다.

타임 스탬프 :

더보기 AWS 기계 학습