PipelineStep 클래스

Azure Machine Learning 파이프라인의 실행 단계를 나타냅니다.

파이프라인은 파이프라인의 고유한 계산 단위인 여러 파이프라인 단계로 구성됩니다. 각 단계는 독립적으로 실행되어 격리된 컴퓨팅 리소스를 사용할 수 있습니다. 각 단계에는 일반적으로 이름이 지정된 고유한 입력, 출력, 매개 변수가 있습니다.

PipelineStep 클래스는 PythonScriptStep, DataTransferStep, HyperDriveStep과 같은 일반적인 시나리오용으로 설계된 다른 기본 제공 단계 클래스가 상속되는 기본 클래스입니다.

Pipelines와 PipelineSteps의 관계에 대한 개요는 What are ML Pipelines(ML 파이프라인이란?)를 참조하세요.

PipelineStep을 초기화합니다.

상속
builtins.object
PipelineStep

생성자

PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)

매개 변수

name
str
필수

파이프라인 단계의 이름입니다.

inputs
list
필수

단계 입력 목록입니다.

outputs
list
필수

단계 출력 목록입니다.

arguments
list
기본값: None

단계에서 사용되는 스크립트에 전달할 선택적 인수 목록입니다.

fix_port_name_collisions
bool
기본값: False

이름 충돌을 수정할지 여부를 지정합니다. True이고 입력과 출력의 이름이 같으면 입력에 접두사 “INPUT”이 추가됩니다. 기본값은 False입니다.

resource_inputs
list
기본값: None

리소스로 사용할 선택적 입력 목록입니다. 리소스는 스크립트 폴더에 다운로드되고 런타임에 스크립트의 동작을 변경하는 방법을 제공합니다.

name
str
필수

파이프라인 단계의 이름입니다.

inputs
list
필수

단계 입력 목록입니다.

outputs
list
필수

단계 출력 목록입니다.

arguments
list
필수

단계에서 사용되는 스크립트에 전달할 선택적 인수 목록입니다.

fix_port_name_collisions
bool
필수

이름 충돌을 수정할지 여부를 지정합니다. True이고 입력과 출력의 이름이 같으면 입력에 접두사 “INPUT”이 추가됩니다. 기본값은 False입니다.

resource_inputs
list
필수

리소스로 사용할 선택적 입력 목록입니다. 리소스는 스크립트 폴더에 다운로드되고 런타임에 스크립트의 동작을 변경하는 방법을 제공합니다.

설명

PipelineStep은 일반적으로 실행 대상(컴퓨팅 대상), 선택적 스크립트 인수 및 입력으로 실행할 스크립트가 필요하고 출력을 생성할 수 있는 실행 단위입니다. 이 단계에서는 단계와 관련된 여러 다른 매개 변수를 사용할 수도 있습니다.

파이프라인 단계를 함께 구성하여 공유 가능하고 재사용 가능한 Azure Machine Learning 워크플로를 나타내는 Pipeline을 구성할 수 있습니다. 파이프라인의 각 단계는 단계 콘텐츠(스크립트/종속성)와 입력 및 매개 변수가 변경되지 않은 상태로 유지되는 경우 이전 실행 결과를 다시 사용할 수 있도록 구성할 수 있습니다. 단계를 재사용할 때, 컴퓨팅할 작업을 제출하는 대신 이전 실행의 결과를 후속 단계에 즉시 사용할 수 있습니다.

Azure Machine Learning Pipelines는 일반적인 시나리오에 대한 기본 제공 단계를 제공합니다. 예제는 steps 패키지 및 AutoMLStep 클래스를 참조하세요. 미리 빌드된 단계에 따라 파이프라인을 만드는 방법에 대한 개요는 https://aka.ms/pl-first-pipeline을 참조하세요.

PipelineStep에서 파생된 미리 빌드된 단계는 하나의 파이프라인에 사용되는 단계입니다. 기계 학습 워크플로 호출을 사용하여 여러 파이프라인에서 버전을 관리하고 사용할 수 있는 단계를 만들려면 Module 클래스를 사용합니다.

파이프라인 단계, 입출력 데이터, 단계 재사용을 작업할 때 다음 사항에 유의하세요.

  • 별도의 단계에는 별도의 source_directory 위치를 사용하는 것이 좋습니다. 파이프라인 단계의 모든 스크립트가 단일 디렉터리에 있는 경우 한 스크립트를 변경할 때마다 해당 디렉터리의 해시가 변경되어 모든 단계가 강제로 다시 실행됩니다. 다른 단계에 별도의 디렉터리를 사용하는 예제는 https://aka.ms/pl-get-started를 참조하세요.

  • 각 단계의 스크립트 및 종속 파일에 대해 별도의 폴더를 유지하면 특정 폴더만 스냅샷이 생성되므로 각 단계에 대해 생성된 스냅샷의 크기를 줄이는 데 도움이 됩니다. 단계의 source_directory에 있는 파일이 변경되면 스냅샷 재업로드가 트리거되므로, 각 단계마다 별도의 폴더를 유지하면 단계의 source_directory에 변경 내용이 없으면 단계의 이전 실행이 재사용되기 때문에 파이프라인의 단계를 반복해서 재사용하는 데 도움이 됩니다.

  • 단계에서 사용된 데이터가 데이터 저장소에 있고 allow_reuse가 True이면 데이터 변경 내용이 검색되지 않습니다. 권장 사항은 아니지만 데이터가 단계의 source_directory 아래에 있는 스냅샷의 일부로 업로드되는 경우 해시가 변경되고 재실행이 트리거됩니다.

메서드

create_input_output_bindings

단계 입력 및 출력에서 입력 및 출력 바인딩을 만듭니다.

create_module_def

단계를 설명하는 모듈 정의 개체를 만듭니다.

create_node

이 단계에 따라 파이프라인 그래프에 대한 노드를 만듭니다.

get_source_directory

단계의 원본 디렉터리를 가져와서 스크립트가 있는지 확인합니다.

resolve_input_arguments

입력 및 출력을 인수에 일치시켜 인수 문자열을 생성합니다.

run_after

지정된 단계 후에 이 단계를 실행합니다.

validate_arguments

인수에 제공된 단계 입력 및 출력이 입력 및 출력 목록에 있는지 유효성을 검사합니다.

create_input_output_bindings

단계 입력 및 출력에서 입력 및 출력 바인딩을 만듭니다.

create_input_output_bindings(inputs, outputs, default_datastore, resource_inputs=None)

매개 변수

inputs
list
필수

단계 입력 목록입니다.

outputs
list
필수

단계 출력 목록입니다.

default_datastore
AbstractAzureStorageDatastore 또는 AzureDataLakeDatastore
필수

기본 데이터 저장소입니다.

resource_inputs
list
기본값: None

리소스로 사용할 입력 목록입니다. 리소스는 스크립트 폴더에 다운로드되고 런타임에 스크립트의 동작을 변경하는 방법을 제공합니다.

반환

입력 바인딩 및 출력 바인딩의 튜플입니다.

반환 형식

create_module_def

단계를 설명하는 모듈 정의 개체를 만듭니다.

create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, arguments=None, runconfig=None, cloud_settings=None)

매개 변수

execution_type
str
필수

모듈의 실행 유형입니다.

input_bindings
list
필수

단계 입력 바인딩입니다.

output_bindings
list
필수

단계 출력 바인딩입니다.

param_defs
list
기본값: None

단계 매개 변수 정의입니다.

create_sequencing_ports
bool
기본값: True

모듈에 대해 시퀀싱 포트를 만들지 여부를 지정합니다.

allow_reuse
bool
기본값: True

모듈을 향후 파이프라인에서 다시 사용할 수 있는지 여부를 지정합니다.

version
str
기본값: None

모듈의 버전입니다.

module_type
str
기본값: None

만들 모듈 만들기 서비스에 대한 모듈 유형입니다. 현재 ‘None’ 및 ‘BatchInferencing’의 두 가지 유형만 지원됩니다. module_type은 이 모듈을 실행하는 데 사용할 백 엔드 서비스의 종류를 지정하는 execution_type과 다릅니다.

arguments
list
기본값: None

이 모듈을 호출할 때 사용할 주석이 추가된 인수 목록

runconfig
str
기본값: None

python_script_step에 사용할 Runconfig

cloud_settings
<xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>
기본값: None

클라우드에 사용할 설정

반환

모듈 정의 개체입니다.

반환 형식

create_node

이 단계에 따라 파이프라인 그래프에 대한 노드를 만듭니다.

abstract create_node(graph, default_datastore, context)

매개 변수

graph
Graph
필수

노드를 추가할 그래프입니다.

default_datastore
AbstractAzureStorageDatastore 또는 AzureDataLakeDatastore
필수

이 단계에 사용할 기본 데이터 저장소입니다.

context
<xref:azureml.pipeline.core._GraphContext>
필수

그래프 컨텍스트 개체입니다.

반환

만들어진 노드입니다.

반환 형식

get_source_directory

단계의 원본 디렉터리를 가져와서 스크립트가 있는지 확인합니다.

get_source_directory(context, source_directory, script_name)

매개 변수

context
<xref:azureml.pipeline.core._GraphContext>
필수

그래프 컨텍스트 개체입니다.

source_directory
str
필수

단계의 원본 디렉터리입니다.

script_name
str
필수

단계의 스크립트 이름입니다.

hash_paths
list
필수

모듈 지문을 확인할 때 사용할 해시 경로입니다.

반환

원본 디렉터리 및 해시 경로입니다.

반환 형식

resolve_input_arguments

입력 및 출력을 인수에 일치시켜 인수 문자열을 생성합니다.

static resolve_input_arguments(arguments, inputs, outputs, params)

매개 변수

arguments
list
필수

단계 인수 목록입니다.

inputs
list
필수

단계 입력 목록입니다.

outputs
list
필수

단계 출력 목록입니다.

params
list
필수

단계 매개 변수 목록입니다.

반환

두 항목의 튜플을 반환합니다. 첫 번째는 확인된 인수에 대한 항목의 플랫 목록입니다. 두 번째는 정형 인수(_InputArgument, _OutputArgument, _ParameterArgument, _StringArgument) 목록입니다.

반환 형식

run_after

지정된 단계 후에 이 단계를 실행합니다.

run_after(step)

매개 변수

step
PipelineStep
필수

이 단계 전에 실행할 파이프라인 단계입니다.

설명

단계를 실행하려는 경우(예: 1단계와 2단계가 모두 완료된 후 3단계 실행) 다음을 사용할 수 있습니다.


   step3.run_after(step1)
   step3.run_after(step2)

validate_arguments

인수에 제공된 단계 입력 및 출력이 입력 및 출력 목록에 있는지 유효성을 검사합니다.

static validate_arguments(arguments, inputs, outputs)

매개 변수

arguments
list
필수

단계 인수 목록입니다.

inputs
list
필수

단계 입력 목록입니다.

outputs
list
필수

단계 출력 목록입니다.