단계 간 데이터 전달
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
은 처리 단계에서 정의한 ProcessingOutput
의 output_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의