파이프라인 단계 - Amazon SageMaker

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

파이프라인 단계

파이프라인은 단계로 구성됩니다. 이 단계는 파이프라인이 수행하는 작업과 속성을 사용하여 단계 간의 관계를 정의합니다. 다음 페이지에서는 단계 유형, 속성 및 이들 간의 관계를 설명합니다.

단계 속성

properties 속성을 사용하여 파이프라인의 단계 간에 데이터 종속성을 추가합니다. 파이프라인은 이러한 데이터 종속성을 사용하여 파이프라인 정의DAG에서 를 구성합니다. 이러한 속성은 자리 표시자 값으로 참조될 수 있으며 런타임에 확인됩니다.

파이프라인 단계의 properties 속성은 해당 SageMaker 작업 유형에 대한 Describe 호출에서 반환된 객체와 일치합니다. 각 작업 유형에 대해 Describe호출은 다음과 같은 응답 객체를 반환합니다.

데이터 종속성 생성 중에 각 단계 유형에 대해 참조할 수 있는 속성을 확인하려면 Amazon SageMaker PythonSDK데이터 종속성 - 속성 참조를 참조하세요.

단계 병렬 처리

단계가 다른 단계에 종속되지 않는 경우 파이프라인 실행 즉시 실행됩니다. 하지만 너무 많은 파이프라인 단계를 병렬로 실행하면 가용 리소스가 빠르게 고갈될 수 있습니다. ParallelismConfiguration을 사용하여 파이프라인 실행의 동시 단계 수를 제어할 수 있습니다.

다음 예제에서는 ParallelismConfiguration을 사용하여 동시 단계 제한을 5로 설정합니다.

pipeline.create( parallelism_config=ParallelismConfiguration(5), )

단계 간 데이터 종속성

단계 간의 데이터 관계를 지정DAG하여 의 구조를 정의합니다. 단계 간에 데이터 종속성을 만들려면 한 단계의 속성을 파이프라인의 다른 단계에 입력으로 전달합니다. 입력을 받는 단계는 입력을 제공하는 단계가 실행을 완료할 때까지 시작되지 않습니다.

데이터 종속성은 다음 형식의 JsonPath 표기법을 사용합니다. 이 형식은 JSON 속성 파일을 횡단합니다. 즉, 를 최대한 많이 추가할 수 있습니다.<property> 파일에서 원하는 중첩 속성에 도달하는 데 필요한 인스턴스입니다. JsonPath 표기법에 대한 자세한 내용은 JsonPath 리포지토리를 참조하세요.

<step_name>.properties.<property>.<property>

다음은 처리 단계의 ProcessingOutputConfig속성을 사용하여 Amazon S3 버킷을 지정하는 방법을 보여줍니다.

step_process.properties.ProcessingOutputConfig.Outputs["train_data"].S3Output.S3Uri

데이터 종속성을 생성하려면 다음과 같이 버킷을 훈련 단계로 전달하세요.

from sagemaker.workflow.pipeline_context import PipelineSession sklearn_train = SKLearn(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="CensusTrain", step_args=sklearn_train.fit(inputs=TrainingInput( s3_data=step_process.properties.ProcessingOutputConfig.Outputs[ "train_data"].S3Output.S3Uri )) )

데이터 종속성 생성 중에 각 단계 유형에 대해 참조할 수 있는 속성을 확인하려면 Amazon SageMaker PythonSDK데이터 종속성 - 속성 참조를 참조하세요.

단계 간 사용자 지정 종속성

데이터 종속성을 지정하면 파이프라인은 단계 간의 데이터 연결을 제공합니다. 또는 파이프라인을 직접 사용하지 않고도 한 단계에서 이전 단계의 데이터에 액세스할 수 있습니다. 이 경우 다른 단계의 실행이 완료될 때까지 단계를 시작하지 않도록 파이프라인에 지시하는 사용자 지정 종속성을 생성할 수 있습니다. 단계의 DependsOn속성을 지정하여 사용자 지정 종속성을 생성합니다.

예를 들어, 다음은 A단계와 B단계가 모두 실행된 후에만 시작되는 C단계를 정의합니다.

{ 'Steps': [ {'Name':'A', ...}, {'Name':'B', ...}, {'Name':'C', 'DependsOn': ['A', 'B']} ] }

파이프라인은 종속성이 주기적 종속성을 생성하는 경우 검증 예외를 발생시킵니다.

다음 예제는 처리 단계 실행이 끝난 후 시작되는 훈련 단계를 생성합니다.

processing_step = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step])

다음 예제에서는 서로 다른 두 처리 단계의 실행이 완료될 때까지 시작되지 않는 훈련 단계를 만듭니다.

processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step_1, processing_step_2])

다음은 사용자 지정 종속성을 생성하는 다른 방법을 제공합니다.

training_step.add_depends_on([processing_step_1]) training_step.add_depends_on([processing_step_2])

다음 예제에서는 한 처리 단계에서 입력을 받고 다른 처리 단계가 실행을 마칠 때까지 기다리는 훈련 단계를 만듭니다.

processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep( ..., inputs=TrainingInput( s3_data=processing_step_1.properties.ProcessingOutputConfig.Outputs[ "train_data" ].S3Output.S3Uri ) training_step.add_depends_on([processing_step_2])

다음 예제에서는 단계의 사용자 정의 종속성에 대한 문자열 목록을 검색하는 방법을 보여줍니다.

custom_dependencies = training_step.depends_on

단계의 사용자 지정 이미지

파이프라인에서 단계를 생성할 때 사용 가능한 SageMakerDeep Learning Container 이미지를 사용할 수 있습니다.

파이프라인 단계가 있는 자체 컨테이너를 사용할 수도 있습니다. Studio Classic 내에서 이미지를 생성할 수 없으므로 파이프라인과 함께 사용하기 전에 다른 방법을 사용하여 이미지를 생성해야 합니다.

파이프라인에 대한 단계를 생성할 때 자체 컨테이너를 사용하려면 추정기 정의URI에 이미지를 포함합니다. 에서 자체 컨테이너를 사용하는 방법에 대한 자세한 내용은 에서 Docker 컨테이너 사용을 SageMaker참조하세요. SageMaker