단계 간 데이터 전달 - Amazon SageMaker

단계 간 데이터 전달

Amazon SageMaker Pipelines을 사용하여 파이프라인을 구축할 때 한 단계에서 다음 단계로 데이터를 전달해야 할 수 있습니다. 예를 들어 훈련 단계에서 생성된 모델 아티팩트를 모델 평가 또는 배포 단계에 대한 입력으로 사용할 수 있습니다. 이 기능을 사용하여 상호 의존적 파이프라인 단계를 만들고 ML 워크플로를 구축할 수 있습니다.

파이프라인 단계의 출력에서 정보를 검색해야 하는 경우 JsonGet을 사용할 수 있습니다. JsonGet은 Amazon S3 또는 속성 파일에서 정보를 추출하는 데 도움이 됩니다. 아래 섹션에서는 JsonGet으로 단계 출력을 추출하는 데 사용할 수 있는 방법을 설명합니다.

Amazon S3를 사용하여 단계 간에 데이터 전달

ConditionStep에서 JsonGet을 사용하여 Amazon S3에서 JSON 출력을 직접 가져올 수 있습니다. Amazon S3 URI는 기본 문자열, 파이프라인 실행 변수 또는 파이프라인 파라미터를 포함하는 Std:Join 함수일 수 있습니다. 다음은 ConditionStep에서 JsonGet을 사용하는 방법을 나타낸 예시입니다.

# Example json file in s3 bucket generated by a processing_step { "Output": [5, 10] } cond_lte = ConditionLessThanOrEqualTo( left=JsonGet( step_name="<step-name>", s3_uri="<s3-path-to-json>", json_path="Output[1]" ), right=6.0 )

조건 단계에서 Amazon S3 경로와 함께 JsonGet을 사용하는 경우 조건 단계와 JSON 출력을 생성하는 단계 간에 종속성을 명시적으로 추가해야 합니다. 다음 예시에서는 처리 단계에 따라 조건 단계가 만들어집니다.

cond_step = ConditionStep( name="<step-name>", conditions=[cond_lte], if_steps=[fail_step], else_steps=[register_model_step], depends_on=[processing_step], )

속성 파일을 사용하여 단계 간에 데이터 전달

속성 파일을 사용하여 처리 단계 출력의 정보를 저장합니다. 이는 처리 단계의 결과를 분석하여 조건부 단계의 실행 방법을 결정할 때 특히 유용합니다. JsonGet 함수는 속성 파일을 처리하고 JSONPath 표기법을 사용하여 속성 JSON 파일을 쿼리할 수 있도록 합니다. JSONPath 표기법에 대한 자세한 내용은 JSONPath 리포지토리를 참조하세요.

나중에 사용할 수 있도록 속성 파일을 저장하려면 먼저 다음 형식의 PropertyFile인스턴스를 만들어야 합니다. path 파라미터는 속성 파일이 저장되는 JSON 파일의 이름입니다. 모든 output_name은 처리 단계에서 정의한 ProcessingOutputoutput_name과 일치해야 합니다. 이렇게 하면 속성 파일이 단계에서 ProcessingOutput을 캡처할 수 있습니다.

from sagemaker.workflow.properties import PropertyFile <property_file_instance> = PropertyFile( name="<property_file_name>", output_name="<processingoutput_output_name>", path="<path_to_json_file>" )

ProcessingStep 인스턴스를 만들 때 Amazon SageMaker Pipelines 서비스가 인덱싱해야 하는 모든 파라미터 파일을 나열하는 property_files 파라미터를 추가합니다. 이렇게 하면 나중에 사용할 수 있도록 속성 파일이 저장됩니다.

property_files=[<property_file_instance>]

조건 단계에서 속성 파일을 사용하려면 다음 예제와 같이 조건 단계에 전달하는 조건에 property_file을 추가하고 json_path파라미터를 사용하여 원하는 속성에 대한 JSON 파일을 쿼리합니다.

cond_lte = ConditionLessThanOrEqualTo( left=JsonGet( step_name=step_eval.name, property_file=<property_file_instance>, json_path="mse" ), right=6.0 )

자세한 예제는 Amazon SageMaker Python SDK의 속성 파일을 참조하세요.