Pipeline 클래스

재사용 가능한 Azure Machine Learning 워크플로로 실행할 수 있는 단계 컬렉션을 나타냅니다.

파이프라인을 사용하여 다양한 기계 학습 단계를 연결하는 워크플로를 생성하고 관리합니다. 데이터 준비 및 모델 학습과 같은 각 기계 학습 단계는 파이프라인에서 하나 이상의 단계로 구성될 수 있습니다.

파이프라인을 사용하는 이유와 시기에 대한 개요는 https://aka.ms/pl-concept를 참조하세요.

파이프라인 구성에 대한 개요는 https://aka.ms/pl-first-pipeline을 참조하세요.

파이프라인을 초기화합니다.

상속
builtins.object
Pipeline

생성자

Pipeline(workspace, steps, description=None, default_datastore=None, default_source_directory=None, resolve_closure=True, _workflow_provider=None, _service_endpoint=None, **kwargs)

매개 변수

workspace
Workspace
필수

파이프라인을 제출할 작업 영역입니다.

steps
list
필수

파이프라인의 일부로 실행할 단계 목록입니다.

description
str
필수

파이프라인에 대한 설명입니다.

default_datastore
AbstractAzureStorageDatastore 또는 AzureDataLakeDatastore
필수

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

default_source_directory
str
필수

스크립트를 실행하는 단계에 대한 기본 스크립트 디렉터리입니다.

resolve_closure
bool
필수

닫기를 해결할지 여부(자동으로 종속 단계 가져오기)를 결정합니다.

workspace
Workspace
필수

파이프라인을 제출할 작업 영역입니다.

steps
list
필수

파이프라인의 일부로 실행할 단계 목록입니다.

description
str
필수

파이프라인에 대한 설명입니다.

default_datastore
AbstractAzureStorageDatastore 또는 AzureDataLakeDatastore
필수

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

default_source_directory
str
필수

스크립트를 실행하는 단계에 대한 기본 스크립트 디렉터리입니다.

resolve_closure
bool
필수

resolve 닫을지 여부(자동으로 종속 단계 가져오기).

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
필수

아무도 만들어지지 않은 경우 워크플로 공급자입니다.

_service_endpoint
str
필수

서비스 엔드포인트입니다. 없음이면 작업 영역을 사용하여 결정됩니다.

kwargs
dict
필수

향후 개발을 위해 예약된 사용자 지정 키워드 인수입니다.

설명

파이프라인은 단계 목록과 작업 영역으로 생성됩니다. 파이프라인에서 사용할 수 있는 여러 단계 형식이 있습니다. 기계 학습 시나리오에 맞는 단계 형식을 선택하면 됩니다.

  • Azure Machine Learning Pipelines는 일반적인 시나리오에 대한 기본 제공 단계를 제공합니다. PipelineStep에서 파생된 이미 빌드된 단계는 하나의 파이프라인에 사용되는 단계입니다. 예제는 steps 패키지 및 AutoMLStep 클래스를 참조하세요.

  • 기계 학습 워크플로 호출을 사용하여 여러 파이프라인에서 버전을 관리하고 사용할 수 있는 단계를 만들려면 Module 모듈의 기능을 사용합니다.

submit을 사용하여 파이프라인을 제출합니다. submit이 호출되면 PipelineRun이 생성된 다음, 워크플로의 각 단계에 대한 StepRun 개체가 생성됩니다. 이러한 개체를 사용하여 실행을 모니터링합니다.

다음은 파이프라인을 제출하는 예제입니다.


   from azureml.pipeline.core import Pipeline

   pipeline = Pipeline(workspace=ws, steps=steps)
   pipeline_run = experiment.submit(pipeline)

submit에서 제출에 대해 지정할 수 있는 여러 가지 파이프라인 옵션 설정이 있습니다.

  • continue_on_step_failure: 단계가 실패할 경우 파이프라인을 계속 실행할지 여부를 나타냅니다. 기본값은 False입니다. True로 설정하면 실패한 단계의 출력에 종속되지 않은 단계만 계속 실행됩니다.

  • regenerate_outputs: 모든 단계 출력을 강제로 다시 생성하고 이 실행에는 데이터 재사용을 허용하지 않을 것인지 여부를 나타냅니다. 기본값은 False입니다.

  • pipeline_parameters: 파이프라인 실행에 대한 매개 변수이며, {name: value} 사전입니다. 자세한 내용은 PipelineParameter를 참조하세요.

  • parent_run_id: RunHistory에 반영되는 이 파이프라인 실행의 부모 실행을 설정하기 위해 실행 ID를 제공할 수 있습니다. 부모 실행은 이 파이프라인이 제출되는 동일한 실험에 속해야 합니다.

다음은 이러한 설정을 사용하여 파이프라인을 제출하는 예제입니다.


   from azureml.pipeline.core import Pipeline

   pipeline = Pipeline(workspace=ws, steps=steps)
   pipeline_run = experiment.submit(pipeline,
                                    continue_on_step_failure=True,
                                    regenerate_outputs=True,
                                    pipeline_parameters={"param1": "value1"},
                                    parent_run_id="<run_id>")

메서드

load_yaml

지정된 YAML 파일에서 파이프라인을 로드합니다.

YAML 파일을 사용하여 ModuleSteps로 구성된 파이프라인을 설명할 수 있습니다.

publish

파이프라인을 게시하고 다시 실행할 수 있도록 합니다.

파이프라인이 게시되면 파이프라인을 생성한 Python 코드 없이 제출할 수 있습니다. 생성된 PublishedPipeline을 반환합니다.

service_endpoint

파이프라인과 연결된 서비스 엔드포인트를 가져옵니다.

submit

파이프라인 실행을 제출합니다. 이것은 submit을 사용하는 것과 같습니다.

제출된 PipelineRun을 반환합니다. 이 개체를 사용하여 실행 세부 정보를 모니터링하고 봅니다.

validate

파이프라인의 유효성을 검사하고 연결되지 않은 입력과 같은 잠재적 오류를 식별합니다.

load_yaml

지정된 YAML 파일에서 파이프라인을 로드합니다.

YAML 파일을 사용하여 ModuleSteps로 구성된 파이프라인을 설명할 수 있습니다.

static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)

매개 변수

workspace
Workspace
필수

파이프라인을 제출할 작업 영역입니다.

filename
str
필수

파이프라인을 설명하는 YAML 파일입니다.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
기본값: None

워크플로 공급자입니다.

_service_endpoint
str
기본값: None

서비스 엔드포인트입니다. None인 경우 작업 영역을 사용하여 결정됩니다.

반환

생성된 파이프라인입니다.

반환 형식

설명

아래의 YAML 파일 예제를 참조하세요. YAML에는 파이프라인의 이름, default_compute 및 매개 변수, 데이터 참조, 단계 목록이 포함됩니다. 각 단계에서 모듈, 컴퓨팅 및 매개 변수, 입력 및 출력 바인딩을 지정해야 합니다. 또한 필요한 경우 단계 runconfig 및 인수를 지정할 수 있습니다.

샘플 Yaml 파일:


   pipeline:
       description: SamplePipelineFromYaml
       parameters:
           NumIterationsParameter:
               type: int
               default: 40
           DataPathParameter:
               type: datapath
               default:
                   datastore: workspaceblobstore
                   path_on_datastore: sample2.txt
           NodeCountParameter:
               type: int
               default: 4
       data_references:
           DataReference:
               datastore: workspaceblobstore
               path_on_datastore: testfolder/sample.txt
           Dataset:
               dataset_name: 'titanic'
       default_compute: aml-compute
       steps:
           PrepareStep:
               type:  ModuleStep
               name: "TestModule"
               compute: aml-compute2
               runconfig: 'D:\.azureml\default_runconfig.yml'
               arguments:
               -'--input1'
               -input:in1
               -'--input2'
               -input:in2
               -'--input3'
               -input:in3
               -'--output'
               -output:output_data
               -'--param'
               -parameter:NUM_ITERATIONS
               parameters:
                   NUM_ITERATIONS:
                       source: NumIterationsParameter
               inputs:
                   in1:
                       source: Dataset
                       bind_mode: mount
                   in2:
                       source: DataReference
                   in3:
                       source: DataPathParameter
               outputs:
                   output_data:
                       destination: Output1
                       datastore: workspaceblobstore
                       bind_mode: mount
           TrainStep:
               type: ModuleStep
               name: "TestModule2"
               version: "2"
               runconfig: 'D:\.azureml\default_runconfig.yml'
               arguments:
               -'--input'
               -input:train_input
               -'--output'
               -output:result
               -'--param'
               -parameter:NUM_ITERATIONS
               parameters:
                   NUM_ITERATIONS: 10
               runconfig_parameters:
                   NodeCount:
                       source: NodeCountParameter
               inputs:
                   train_input:
                       source: Output1
                       bind_mode: mount
               outputs:
                   result:
                       destination: Output2
                       datastore: workspaceblobstore
                       bind_mode: mount

publish

파이프라인을 게시하고 다시 실행할 수 있도록 합니다.

파이프라인이 게시되면 파이프라인을 생성한 Python 코드 없이 제출할 수 있습니다. 생성된 PublishedPipeline을 반환합니다.

publish(name=None, description=None, version=None, continue_on_step_failure=None)

매개 변수

name
str
기본값: None

게시된 파이프라인의 이름입니다.

description
str
기본값: None

게시된 파이프라인에 대한 설명입니다.

version
str
기본값: None

게시된 파이프라인의 버전입니다.

continue_on_step_failure
bool
기본값: None

단계가 실패하는 경우 PipelineRun의 다른 단계를 계속 실행할지 여부를 나타냅니다. 기본값은 false입니다. True로 설정하면 실패한 단계의 출력에 종속되지 않은 단계만 계속 실행됩니다.

반환

생성하여 게시된 파이프라인입니다.

반환 형식

service_endpoint

파이프라인과 연결된 서비스 엔드포인트를 가져옵니다.

service_endpoint()

반환

서비스 엔드포인트입니다.

반환 형식

str

submit

파이프라인 실행을 제출합니다. 이것은 submit을 사용하는 것과 같습니다.

제출된 PipelineRun을 반환합니다. 이 개체를 사용하여 실행 세부 정보를 모니터링하고 봅니다.

submit(experiment_name, pipeline_parameters=None, continue_on_step_failure=False, regenerate_outputs=False, parent_run_id=None, credential_passthrough=None, **kwargs)

매개 변수

experiment_name
str
필수

파이프라인을 제출할 실험의 이름입니다.

pipeline_parameters
dict
기본값: None

파이프라인 실행에 대한 매개 변수이며, {name: value} 사전입니다. 자세한 내용은 PipelineParameter를 참조하세요.

continue_on_step_failure
bool
기본값: False

단계가 실패할 경우 파이프라인 실행을 계속할지 여부를 나타냅니다. True로 설정하면 실패한 단계의 출력에 종속되지 않은 단계만 계속 실행됩니다.

regenerate_outputs
bool
기본값: False

모든 단계 출력을 강제로 다시 생성하고 이 실행에는 데이터 재사용을 허용하지 않을 것인지 여부를 나타냅니다. False이면 이전 실행의 결과를 이 실행에서 재사용할 수도 있고 이 실행의 결과를 후속 실행에서 재사용할 수도 있습니다.

parent_run_id
str
기본값: None

RunHistory에 반영된 이 파이프라인 실행의 부모 실행에 대해 설정할 선택적 실행 ID입니다. 부모 실행은 이 파이프라인이 제출되는 동일한 실험에 속해야 합니다.

credential_passthrough
기본값: None

선택 사항으로, 이 플래그가 사용하도록 설정된 경우 원격 파이프라인 작업은 작업을 시작한 사용자의 자격 증명을 사용합니다. 이 기능은 프라이빗 미리 보기에서만 사용할 수 있습니다.

반환

제출된 파이프라인 실행입니다.

반환 형식

validate

파이프라인의 유효성을 검사하고 연결되지 않은 입력과 같은 잠재적 오류를 식별합니다.

validate()

반환

파이프라인의 오류 목록입니다.

반환 형식

설명

다음은 유효성 검사 오류 사례입니다.

  • 누락되거나 예기치 않은 파이프라인 데이터 원본 또는 단계 형식

  • 파이프라인 데이터 원본 또는 단계에 대한 매개 변수 또는 출력 정의 누락

  • 연결되지 않은 입력

  • 루프 또는 주기를 형성하는 파이프라인 단계

유효성 검사를 통과(빈 목록을 반환)해도 파이프라인이 작동하지 않는 경우 Debug and troubleshoot machine learning pipelines(기계 학습 파이프라인 디버그 및 문제 해결)를 참조하세요.

특성

graph

파이프라인과 연결된 그래프를 가져옵니다. 단계 및 데이터 입력은 그래프에 노드로 표시됩니다.

반환

그래프입니다.

반환 형식