如何通过 sagemaker 编排在多个 ec2 实例上运行的自定义 docker 容器?

问题描述 投票:0回答:1

我有一个文件process_script.py,它看起来如下:

import argparse

if __name__=='__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--example_argument', type=str, help='Example argument description')

    args, _ = parser.parse_known_args()
    
    print('Received arguments {}'.format(args))
             

SageMaker示例代码如下:

import boto3, os, sagemaker
from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput
from sagemaker import get_execution_role

sagemaker_session = sagemaker.Session()
default_s3_bucket = sagemaker_session.default_bucket()

print(default_s3_bucket)


input_data = sagemaker_session.upload_data(path='./data_files', 
                                           bucket=default_s3_bucket)

role = get_execution_role()
script_processor = ScriptProcessor(command=['python3'],
                image_uri='ecr/docker_image:latest',
                role=role,
                instance_count=1,
                base_job_name = 'run-processing',
                instance_type='ml.c5.xlarge')

output_location = os.path.join('s3://',default_s3_bucket, 'processing_output')

script_processor.run(code='process_script.py',
                     arguments=['--example_argument', 'value'],
                     inputs=[ProcessingInput(source=input_data,destination='/opt/ml/processing/input')],
                     outputs=[ProcessingOutput(source='/opt/ml/processing/output',destination=output_location)]
                    )

如何按照上述示例使用 SageMaker ScriptProcessor 来安排在不同 ec2 实例上使用自定义参数每次运行 process_script.py 文件?我知道我必须更改“instance_count=1”,但尚不清楚如何使用 SageMaker 在多个 ec2 实例上编排运行。

amazon-web-services amazon-sagemaker
1个回答
0
投票

SageMaker 处理可用于通过使用来自 S3 的不同数据增加每个实例的实例计数来运行并行作业。对于输入数据,您可以使用 shardbys3key (https://sagemaker.readthedocs.io/en/v2.4.1/api/training/processing.html#sagemaker.processing.ProcessingInput) 在不同节点之间拆分数据文件。相同的脚本将在具有 s3key 分片的不同数据文件的每个实例上运行。

如果您想进行分布式处理,可以使用 dask 之类的工具来运行处理 - https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker_processing/spark_distributed_data_processing

© www.soinside.com 2019 - 2024. All rights reserved.