파이프라인 단계의 선택적 실행 - 아마존 SageMaker

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

파이프라인 단계의 선택적 실행

SageMaker 파이프라인을 사용하여 워크플로를 만들고 ML 교육 단계를 조율할 때 여러 실험 단계를 수행해야 할 수 있습니다. 매번 전체 파이프라인을 실행하는 대신 특정 단계만 반복하는 것이 좋습니다. SageMaker 파이프라인을 사용하면 파이프라인 단계를 선택적으로 실행할 수 있습니다. 이는 ML 교육을 최적화하는 데 도움이 됩니다. 선택적 실행은 다음 시나리오에서 유용합니다.

  • 업스트림 단계의 파라미터를 유지하면서 업데이트된 인스턴스 유형, 하이퍼파라미터 또는 기타 변수를 사용하여 특정 단계를 다시 시작하려고 합니다.

  • 파이프라인이 중간 단계에서 실패합니다. 데이터 준비 또는 특징 추출과 같은 이전 실행 단계는 다시 실행하는 데 비용이 많이 듭니다. 파이프라인을 완료하려면 수정 사항을 적용하고 특정 단계를 수동으로 다시 실행해야 할 수 있습니다.

선택적 실행을 사용하면 파이프라인의 방향성 비순환 그래프(DAG)에 연결되어 있는 한 일부 단계를 실행하도록 선택할 수 있습니다. 다음 DAG는 예제 파이프라인 워크플로를 보여줍니다.

예제 파이프라인의 방향성 비순환 그래프(DAG) 입니다.

선택적 AbaloneEval 실행에서 단계를 AbaloneTrain 선택할 수 있지만, 이들 AbaloneMSECond 단계가 DAG에 연결되어 있지 않기 때문에 AbaloneTrain 및 단계만 선택할 수는 없습니다. 워크플로에서 선택되지 않은 단계의 경우 선택적 실행은 단계를 다시 실행하는 대신 참조 파이프라인 실행의 출력을 다시 사용합니다. 또한 선택한 단계의 다운스트림에 있는 선택되지 않은 단계는 선택적 실행에서 실행되지 않습니다.

파이프라인에서 중간 단계 중 일부를 실행하도록 선택한 경우 단계는 이전 단계에 따라 달라질 수 있습니다. SageMaker 이러한 종속성을 리소스로 사용할 참조 파이프라인 실행이 필요합니다. 예를 들어, 단계를 AbaloneTrain 실행하기로 선택한 경우 해당 AbaloneProcess 단계의 출력이 필요합니다. AbaloneEval 참조 실행 ARN을 제공하거나 기본 동작인 최신 파이프라인 실행을 사용하도록 SageMaker 지시할 수 있습니다. 참조 실행이 있는 경우 참조 실행에서 런타임 매개변수를 빌드하고 이를 오버라이드와 함께 선택적 Executive Run에 제공할 수도 있습니다. 자세한 내용은 참조 실행의 런타임 파라미터 값을 재사용합니다.단원을 참조하세요.

세부적으로는 를 사용하여 선택적 실행 파이프라인을 실행하기 위한 구성을 제공합니다. SelectiveExecutionConfig source_pipeline_execution_arn인수와 함께 참조 파이프라인 실행을 위한 ARN을 포함하는 경우 제공된 파이프라인 실행의 이전 단계 종속성을 SageMaker 사용합니다. ARN을 포함하지 않고 최신 파이프라인 실행이 있는 경우 기본적으로 ARN을 참조로 SageMaker 사용합니다. ARN을 포함하지 않고 최신 파이프라인 실행을 사용하지 SageMaker 않으려면 로 설정하십시오reference_latest_execution. False SageMaker 최종적으로 참조로 사용되는 파이프라인 실행은 최신 실행이든 사용자 지정 실행이든 상관없이 또는 상태여야 합니다. Success Failed

다음 표에는 참조 실행을 SageMaker 선택하는 방법이 요약되어 있습니다.

source_pipeline_execution_arn 인수 값 reference_latest_execution 인수 값 사용된 참조 실행
파이프라인 ARN

True 또는 지정되지 않음

지정된 파이프라인 ARN

파이프라인 ARN

False

지정된 파이프라인 ARN

null 또는 지정되지 않음

True 또는 지정되지 않음

최신 파이프라인 실행

null 또는 지정되지 않음

False

없음 - 이 경우 업스트림 종속성이 없는 단계를 선택하세요.

선택적 실행 구성 요구 사항에 대한 자세한 내용은 sagemaker.workflow.selective_execution_config를 참조하십시오. SelectiveExecutionConfig 설명서.

다음 설명에는 파이프라인 참조 실행을 지정하거나, 최신 파이프라인 실행을 참조로 사용하거나, 참조 파이프라인 실행 없이 선택적 실행을 실행하려는 경우의 예제가 포함되어 있습니다.

사용자 지정 파이프라인 참조를 사용한 선택적 실행

다음 예제는 단계를 AbaloneTrain 선택적으로 실행하고 참조 파이프라인 실행을 AbaloneEval 사용하는 방법을 보여줍니다.

from sagemaker.workflow.selective_execution_config import SelectiveExecutionConfig selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", selected_steps=["AbaloneTrain", "AbaloneEval"] ) selective_execution = pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )

최신 파이프라인 실행을 참조로 사용한 선택적 실행

다음 예제는 단계를 AbaloneTrain 선택적으로 실행하고 최신 파이프라인 실행을 참조로 AbaloneEval 사용하는 방법을 보여줍니다. 기본적으로 최신 파이프라인 실행을 SageMaker 사용하므로 선택적으로 reference_latest_execution 인수를 로 True 설정할 수 있습니다.

# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn. selective_execution_config = SelectiveExecutionConfig( selected_steps=["AbaloneTrain", "AbaloneEval"], # optional reference_latest_execution=True ) # Start pipeline execution without source_pipeline_execution_arn pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )

참조 파이프라인 없이 선택적 실행

다음 예제는 참조 ARN을 제공하지 AbaloneTrain 않고 최신 파이프라인 실행을 참조로 사용하는 옵션을 끄지 않고 단계를 AbaloneProcess 선택적으로 실행하는 방법을 보여줍니다. SageMaker 이 하위 단계는 이전 단계에 종속되지 않으므로 이 구성을 허용합니다.

# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn. selective_execution_config = SelectiveExecutionConfig( selected_steps=["AbaloneProcess", "AbaloneTrain"], reference_latest_execution=False ) # Start pipeline execution without source_pipeline_execution_arn pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )

참조 실행의 런타임 파라미터 값을 재사용합니다.

build_parameters_from_execution을 사용하여 참조 파이프라인 실행에서 파라미터를 빌드하고 선택적 실행 파이프라인에 결과를 제공할 수 있습니다. 참조 실행의 원래 파라미터를 사용하거나 parameter_value_overrides인수를 사용하여 재정의를 적용할 수 있습니다.

다음 예제는 참조 실행에서 파라미터를 빌드하고 MseThreshold파라미터에 대한 재정의를 적용하는 방법을 보여줍니다.

# Prepare a new selective execution. selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", selected_steps=["AbaloneTrain", "AbaloneEval", "AbaloneMSECond"], ) # Define a new parameters list to test. new_parameters_mse={ "MseThreshold": 5, } # Build parameters from reference execution and override with new parameters to test. new_parameters = pipeline.build_parameters_from_execution( pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", parameter_value_overrides=new_parameters_mse ) # Start pipeline execution with new parameters. execution = pipeline.start( selective_execution_config=selective_execution_config, parameters=new_parameters )