概要: ScriptProcessor と SageMaker 地理空間コンテナを使用して処理ジョブを実行する - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

概要: 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 エラーが表示された場合は、クォータの引き上げをリクエストする必要があります。Service Quotas クォータの引き上げリクエストを開始するには、Service Quotas ユーザーガイドの「Requesting a quota increase」を参照してください。

ScriptProcessor を使用するための前提条件
  1. 地理空間 ML ワークロードを指定する Python スクリプトを既に作成している。

  2. SageMaker AI 実行ロールに必要な Amazon S3 バケットへのアクセスを許可しました。

  3. データをコンテナにインポートする準備をします。Amazon SageMaker Processing ジョブでは、s3_data_type"ManifestFile" または "S3Prefix" に設定することをサポートしています。

次の手順は、SageMaker 地理空間コンテナを使用して、ScriptProcessor のインスタンスを作成し、Amazon SageMaker Processing ジョブを送信する方法を示します。

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 )

    execution_role_arn を、Amazon S3 に保存されている入力データ、および処理ジョブで呼び出すその他のサービスにアクセスできる SageMaker AI 実行ロールの ARN に置き換えます。 AWS 処理ジョブの要件に合うように、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 ) ] )
    • preprocessing.py を独自の Python データ処理スクリプトの名前に置き換えます。

    • 処理ジョブは、入力データをフォーマットするための 2 つの方法をサポートしています。処理ジョブのすべての入力データを指すマニフェストファイルを作成するか、個々の各データ入力に共通のプレフィックスを使用できます。マニフェストファイルを作成した場合は、s3_manifest_uri"ManifestFile" に設定します。ファイルプレフィックスセットを使用した場合は、s3_manifest_uri"S3Prefix" に設定します。データへのパスは、source を使用して指定します。

    • 処理ジョブデータは、次の 2 つの方法で配布できます。

      • s3_data_distribution_typeFullyReplicated に設定して、データをすべての処理インスタンスに配布する。

      • s3_data_distribution_typeShardedByS3Key に設定して、Amazon S3 キーに基づいてシャードのデータを分散する。ShardedByS3Key を使用すると、1 つのデータのシャードが各処理インスタンスに送信されます。

    SageMaker 地理空間データはスクリプトを使用して処理できます。このスクリプトは、「Step 3: Writing a script that can calculate the NDVI」に含まれています。.run() API オペレーションの詳細については、「Amazon SageMaker Python SDK for Processing」の「run」を参照してください。

処理ジョブの進行状況を監視するために、ProcessingJobs クラスでは describe メソッドをサポートしています。このメソッドは DescribeProcessingJob API コールからのレスポンスを返します。詳細については、DescribeProcessingJobAmazon SageMaker AI API リファレンス」の「」を参照してください。

次のトピックでは、SageMaker 地理空間コンテナを使用して ScriptProcessor クラスのインスタンスを作成する方法と、次にそれを使用して Sentinel-2 画像で正規化植生差指数 (NDVI) を計算する方法を示します。