개요: ScriptProcessor 및 SageMaker 지리 공간 컨테이너를 사용하여 처리 작업 실행 - Amazon SageMaker

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

개요: ScriptProcessor 및 SageMaker 지리 공간 컨테이너를 사용하여 처리 작업 실행

SageMaker 지리 공간은 특별히 제작된 처리 컨테이너인 를 제공합니다081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest. Amazon SageMaker Processing에서 작업을 실행할 때 이 컨테이너를 사용할 수 있습니다. Amazon SageMaker Python SDK for Processing을 통해 사용할 수 있는 ScriptProcessor 클래스의 인스턴스를 생성할 때 이 를 지정합니다image_uri.

참고

처리 작업을 시작하려고 할 때 ResourceLimitExceeded 오류가 발생하면 할당량 증가를 요청해야 합니다. 서비스 할당량 할당량 증가 요청을 시작하려면 서비스 할당량 사용자 가이드할당량 증가 요청을 참조하세요.

ScriptProcessor 사용을 위한 사전 조건
  1. 를 생성했습니다.Python 지리 공간 ML 워크로드를 지정하는 스크립트입니다.

  2. 필요한 모든 Amazon S3 버킷에 대한 SageMaker 실행 역할 액세스 권한을 부여했습니다.

  3. 컨테이너로 가져올 데이터를 준비하세요. Amazon SageMaker Processing 작업은 "ManifestFile" 또는 와 s3_data_type 동일한 설정을 지원합니다"S3Prefix".

다음 절차에서는 SageMaker 지리 공간 컨테이너를 사용하여 의 인스턴스를 생성하고 Amazon SageMaker Processing 작업을 ScriptProcessor 제출하는 방법을 보여줍니다.

SageMaker 지리 공간 컨테이너를 사용하여 ScriptProcessor 인스턴스를 생성하고 Amazon SageMaker Processing 작업을 제출하려면
  1. SageMaker 지리 공간 이미지를 사용하여 ScriptProcessor 클래스 인스턴스를 인스턴스화합니다.

    from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput sm_session = sagemaker.session.Session() execution_role_arn = sagemaker.get_execution_role() # purpose-built geospatial container image_uri = '081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest' script_processor = ScriptProcessor( command=['python3'], image_uri=image_uri, role=execution_role_arn, instance_count=4, instance_type='ml.m5.4xlarge', sagemaker_session=sm_session )

    Replace execution_role_arn Amazon S3에 SageMaker 저장된 입력 데이터 및 처리 작업에서 호출하려는 기타 AWS 서비스에 액세스할 수 있는 실행 역할ARN의 . instance_countinstance_type를 처리 작업의 요구 사항에 맞게 업데이트할 수 있습니다.

  2. 처리 작업을 시작하려면 다음 .run()방법을 사용하세요.

    # Can be replaced with any S3 compliant string for the name of the folder. s3_folder = geospatial-data-analysis # Use .default_bucket() to get the name of the S3 bucket associated with your current SageMaker session s3_bucket = sm_session.default_bucket() s3_manifest_uri = f's3://{s3_bucket}/{s3_folder}/manifest.json' s3_prefix_uri = f's3://{s3_bucket}/{s3_folder}/image-prefix script_processor.run( code='preprocessing.py', inputs=[ ProcessingInput( source=s3_manifest_uri | s3_prefix_uri , destination='/opt/ml/processing/input_data/', s3_data_type= "ManifestFile" | "S3Prefix", s3_data_distribution_type= "ShardedByS3Key" | "FullyReplicated" ) ], outputs=[ ProcessingOutput( source='/opt/ml/processing/output_data/', destination=s3_output_prefix_url ) ] )
    • Replace preprocessing.py 자체 Python 데이터 처리 스크립트의 이름을 사용합니다.

    • 처리 작업은 입력 데이터의 형식을 지정하는 두 가지 방법을 지원합니다. 처리 작업의 모든 입력 데이터를 가리키는 매니페스트 파일을 만들거나 각 개별 데이터 입력에 공통 접두사를 사용할 수 있습니다. "ManifestFile"와 같은 매니페스트 파일 세트 s3_manifest_uri를 만든 경우. s3_manifest_uri와 같은 파일 접두사 세트 "S3Prefix"를 사용한 경우. source를 사용하여 데이터 경로를 지정합니다.

    • 처리 작업 데이터를 다음과 같은 두 가지 방법으로 배포할 수 있습니다.

      • s3_data_distribution_typeFullyReplicated와 같게 설정하여 모든 처리 인스턴스에 데이터를 배포합니다.

      • s3_data_distribution_typeShardedByS3Key와 같게 설정하여 Amazon S3 키를 기반으로 데이터를 샤드로 배포합니다. ShardedByS3Key을 사용하면 각 처리 인스턴스에 하나의 데이터 샤드가 전송됩니다.

    스크립트를 사용하여 SageMaker 지리 공간 데이터를 처리할 수 있습니다. 이 스크립트는 를 계산할 수 있는 스크립트 작성 3단계에서 찾을 수 있습니다NDVI. .run() API 작업에 대한 자세한 내용은 Amazon SageMaker Python SDK for Processing run의 섹션을 참조하세요.

처리 작업의 진행 상황을 모니터링하기 위해 ProcessingJobs클래스는 describe메서드를 지원합니다. 이 메서드는 DescribeProcessingJob API 호출의 응답을 반환합니다. 자세한 내용은 DescribeProcessingJobAmazon SageMaker API 참조의 섹션을 참조하세요.

다음 주제에서는 SageMaker 지리 공간 컨테이너를 사용하여 ScriptProcessor 클래스의 인스턴스를 생성한 다음 를 사용하여 를 사용하여 정규화된 차이 식물 지수(NDVI)를 계산하는 방법을 보여줍니다.Sentinel-2 이미지.