PipelineData 클래스

Azure Machine Learning 파이프라인의 중간 데이터를 나타냅니다.

파이프라인에서 사용되는 데이터는 한 단계의 출력과 하나 이상 후속 단계의 입력으로 PipelineData 개체를 제공하여 한 단계에서 생성하고 다른 단계에서 이용할 수 있습니다.

참고 파이프라인 데이터를 사용하는 경우 사용된 디렉터리가 있는지 확인하세요.

디렉터리가 있는지 확인하는 Python 예제입니다. 한 파이프라인 단계에서 output_folder라는 출력 포트가 있다고 가정하고 이 폴더의 상대 경로에 일부 데이터를 쓰려고 합니다.


   import os
   os.makedirs(args.output_folder, exist_ok=True)
   f = open(args.output_folder + '/relative_path/file_name', 'w+')

PipelineData는 데이터 액세스 및 배달에 더 이상 권장되지 않는 접근 방식인 기본 DataReference를 사용합니다. OutputFileDatasetConfig를 대신 사용하세요. OutputFileDatasetConfig를 사용하는 파이프라인에서 샘플을 확인할 수 있습니다.

PipelineData를 초기화합니다.

상속
builtins.object
PipelineData

생성자

PipelineData(name, datastore=None, output_name=None, output_mode='mount', output_path_on_compute=None, output_overwrite=None, data_type=None, is_directory=None, pipeline_output_name=None, training_output=None)

매개 변수

name
str
필수

문자, 숫자 및 밑줄만 포함할 수 있는 PipelineData 개체의 이름입니다.

PipelineData 이름은 단계의 출력을 식별하는 데 사용됩니다. 파이프라인 실행이 완료된 후 출력 이름과 함께 단계 이름을 사용하여 특정 출력에 액세스할 수 있습니다. 이름은 파이프라인의 단일 단계 내에서 고유해야 합니다.

datastore
AbstractAzureStorageDatastore 또는 AzureDataLakeDatastore
기본값: None

PipelineData가 상주할 데이터 저장소입니다. 지정하지 않으면 기본 데이터 저장소가 사용됩니다.

output_name
str
기본값: None

None 이름이 사용되는 경우 출력의 이름입니다. 문자, 숫자 및 밑줄만 포함할 수 있습니다.

output_mode
str
기본값: mount

생성 단계에서 "upload" 또는 "mount" 메서드를 사용하여 데이터에 액세스할지 여부를 지정합니다.

output_path_on_compute
str
기본값: None

output_mode = "upload"의 경우 이 매개 변수는 모듈이 출력을 쓰는 경로를 나타냅니다.

output_overwrite
bool
기본값: None

output_mode = "upload"의 경우 이 매개 변수는 기존 데이터를 덮어쓸지 여부를 지정합니다.

data_type
str
기본값: None

선택 사항입니다. 데이터 형식을 사용하여 예상되는 출력 형식을 지정하고 소비 단계에서 데이터를 사용하는 방법을 자세히 설명할 수 있습니다. 사용자 정의 문자열일 수 있습니다.

is_directory
bool
기본값: None

데이터가 디렉터리 또는 단일 파일인지 지정합니다. data_type 매개 변수가 제공되지 않은 경우 Azure ML 백 엔드에서 사용하는 데이터 형식을 결정하는 데만 사용됩니다. 기본값은 False입니다.

pipeline_output_name
기본값: None

제공된 경우 이 출력은 PipelineRun.get_pipeline_output()을 사용하여 사용할 수 있습니다. 파이프라인 출력 이름은 파이프라인에서 고유해야 합니다.

training_output
TrainingOutput
기본값: None

학습 결과에 대한 출력을 정의합니다. 이는 메트릭 및 모델과 같은 다양한 종류의 출력을 생성하는 특정 학습에만 필요합니다. 예를 들어 AutoMLStep은 메트릭 및 모델을 생성합니다. 최상의 모델을 얻는 데 사용되는 특정 학습 반복 또는 메트릭을 정의할 수도 있습니다. HyperDriveStep의 경우 출력에 포함할 특정 모델 파일을 정의할 수도 있습니다.

name
str
필수

문자, 숫자 및 밑줄만 포함할 수 있는 PipelineData 개체의 이름입니다.

PipelineData 이름은 단계의 출력을 식별하는 데 사용됩니다. 파이프라인 실행이 완료된 후 출력 이름과 함께 단계 이름을 사용하여 특정 출력에 액세스할 수 있습니다. 이름은 파이프라인의 단일 단계 내에서 고유해야 합니다.

datastore
AbstractAzureStorageDatastore 또는 AzureDataLakeDatastore
필수

PipelineData가 상주할 데이터 저장소입니다. 지정하지 않으면 기본 데이터 저장소가 사용됩니다.

output_name
str
필수

None 이름이 사용되는 경우 출력의 이름입니다. 문자, 숫자 및 밑줄만 포함할 수 있습니다.

output_mode
str
필수

생성 단계에서 "upload" 또는 "mount" 메서드를 사용하여 데이터에 액세스할지 여부를 지정합니다.

output_path_on_compute
str
필수

output_mode = "upload"의 경우 이 매개 변수는 모듈이 출력을 쓰는 경로를 나타냅니다.

output_overwrite
bool
필수

output_mode = "upload"의 경우 이 매개 변수는 기존 데이터를 덮어쓸지 여부를 지정합니다.

data_type
str
필수

선택 사항입니다. 데이터 형식을 사용하여 예상되는 출력 형식을 지정하고 소비 단계에서 데이터를 사용하는 방법을 자세히 설명할 수 있습니다. 사용자 정의 문자열일 수 있습니다.

is_directory
bool
필수

데이터가 디렉터리 또는 단일 파일인지 지정합니다. data_type 매개 변수가 제공되지 않은 경우 Azure ML 백 엔드에서 사용하는 데이터 형식을 결정하는 데만 사용됩니다. 기본값은 False입니다.

pipeline_output_name
str
필수

제공된 경우 이 출력은 PipelineRun.get_pipeline_output()을 사용하여 사용할 수 있습니다. 파이프라인 출력 이름은 파이프라인에서 고유해야 합니다.

training_output
TrainingOutput
필수

학습 결과에 대한 출력을 정의합니다. 이는 메트릭 및 모델과 같은 다양한 종류의 출력을 생성하는 특정 학습에만 필요합니다. 예를 들어 AutoMLStep은 메트릭 및 모델을 생성합니다. 최상의 모델을 얻는 데 사용되는 특정 학습 반복 또는 메트릭을 정의할 수도 있습니다. HyperDriveStep의 경우 출력에 포함할 특정 모델 파일을 정의할 수도 있습니다.

설명

PipelineData는 단계가 실행될 때 생성할 데이터 출력을 나타냅니다. 단계를 만들 때 PipelineData를 사용하여 단계에서 생성될 파일 또는 디렉터리를 설명합니다. 이러한 데이터 출력은 지정된 데이터 저장소에 추가되며 나중에 검색하여 볼 수 있습니다.

예를 들어 다음 파이프라인 단계는 "모델"이라는 하나의 출력을 생성합니다.


   from azureml.pipeline.core import PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   step_output = PipelineData("model", datastore=datastore)
   step = PythonScriptStep(script_name="train.py",
                           arguments=["--model", step_output],
                           outputs=[step_output],
                           compute_target=aml_compute,
                           source_directory=source_directory)

이 경우 train.py 스크립트는 생성하는 모델을 –model 인수를 통해 스크립트에 제공되는 위치에 씁니다.

PipelineData 개체는 단계 종속성을 설명하는 파이프라인을 생성할 때도 사용됩니다. 단계에 다른 단계의 출력이 입력으로 필요하도록 지정하려면 두 단계의 생성자에서 PipelineData 개체를 사용합니다.

예를 들어 파이프라인 학습 단계는 파이프라인 프로세스 단계의 process_step_output 출력에 따라 다릅니다.


   from azureml.pipeline.core import Pipeline, PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   process_step_output = PipelineData("processed_data", datastore=datastore)
   process_step = PythonScriptStep(script_name="process.py",
                                   arguments=["--data_for_train", process_step_output],
                                   outputs=[process_step_output],
                                   compute_target=aml_compute,
                                   source_directory=process_directory)
   train_step = PythonScriptStep(script_name="train.py",
                                 arguments=["--data_for_train", process_step_output],
                                 inputs=[process_step_output],
                                 compute_target=aml_compute,
                                 source_directory=train_directory)

   pipeline = Pipeline(workspace=ws, steps=[process_step, train_step])

이렇게 하면 두 단계로 파이프라인이 만들어집니다. 프로세스 단계가 먼저 실행되고 완료된 후 학습 단계가 실행됩니다. Azure ML은 프로세스 단계에서 생성된 출력을 학습 단계에 제공합니다.

PipelineData를 사용하여 파이프라인을 생성하는 추가 예제는 https://aka.ms/pl-data-dep 페이지를 참조하세요.

지원되는 컴퓨팅 형식의 경우 PipelineData를 사용하여 실행에서 데이터를 생성하고 소비하는 방법을 지정할 수도 있습니다. 다음과 같은 두 가지 메서드가 지원됩니다.

  • Mount(기본값): 입력 또는 출력 데이터가 컴퓨팅 노드의 로컬 스토리지에 탑재되고 이 데이터의 경로($AZUREML_DATAREFERENCE_name)를 가리키는 환경 변수가 설정됩니다. 편의상 PipelineData 개체를 스크립트에 대한 인수 중 하나로 전달할 수 있습니다(예: PythonScriptSteparguments 매개 변수 사용). 그러면 개체가 데이터 경로로 확인됩니다. 출력의 경우 컴퓨팅 스크립트는 이 출력 경로에 파일 또는 디렉터리를 만들어야 합니다. Pipeline 개체를 인수로 전달할 때 사용되는 환경 변수의 값을 보려면 get_env_variable_name 메서드를 사용합니다.

  • Upload: 스크립트가 생성할 파일 또는 디렉터리 이름에 해당하는 output_path_on_compute를 지정합니다. (이 경우 환경 변수는 사용되지 않습니다.)

메서드

as_dataset

중간 출력을 데이터 세트로 승격합니다.

이 데이터 세트는 단계가 실행된 후에 존재합니다. 후속 입력을 데이터 세트로 사용하려면 출력을 데이터 세트로 승격해야 합니다. as_dataset가 출력에서 호출될 뿐 아니라 입력에서도 호출되는 경우 as_dataset는 noop이 되며 입력은 데이터 세트로 사용되지 않습니다. 아래 코드 예제에서는 올바른 as_dataset 사용 방법을 보여 줍니다.


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_download

PipelineData를 다운로드로 사용합니다.

as_input

InputPortBinding을 만들고 입력 이름을 지정합니다(그러나 기본 모드 사용).

as_mount

PipelineData를 탑재로 사용합니다.

create_input_binding

입력 바인딩을 만듭니다.

get_env_variable_name

이 PipelineData에 대한 환경 변수의 이름을 반환합니다.

as_dataset

중간 출력을 데이터 세트로 승격합니다.

이 데이터 세트는 단계가 실행된 후에 존재합니다. 후속 입력을 데이터 세트로 사용하려면 출력을 데이터 세트로 승격해야 합니다. as_dataset가 출력에서 호출될 뿐 아니라 입력에서도 호출되는 경우 as_dataset는 noop이 되며 입력은 데이터 세트로 사용되지 않습니다. 아래 코드 예제에서는 올바른 as_dataset 사용 방법을 보여 줍니다.


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_dataset()

반환

데이터 세트로서 중간 출력입니다.

반환 형식

as_download

PipelineData를 다운로드로 사용합니다.

as_download(input_name=None, path_on_compute=None, overwrite=None)

매개 변수

input_name
str
기본값: None

이 입력의 이름을 지정하는 데 사용합니다.

path_on_compute
str
기본값: None

다운로드할 컴퓨팅의 경로입니다.

overwrite
bool
기본값: None

기존 데이터를 덮어쓸지 여부를 나타내는 데 사용합니다.

반환

이 PipelineData를 원본으로 사용하는 InputPortBinding입니다.

반환 형식

as_input

InputPortBinding을 만들고 입력 이름을 지정합니다(그러나 기본 모드 사용).

as_input(input_name)

매개 변수

input_name
str
필수

이 입력의 이름을 지정하는 데 사용합니다.

반환

이 PipelineData를 원본으로 사용하는 InputPortBinding입니다.

반환 형식

as_mount

PipelineData를 탑재로 사용합니다.

as_mount(input_name=None)

매개 변수

input_name
str
기본값: None

이 입력의 이름을 지정하는 데 사용합니다.

반환

이 PipelineData를 원본으로 사용하는 InputPortBinding입니다.

반환 형식

create_input_binding

입력 바인딩을 만듭니다.

create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)

매개 변수

input_name
str
기본값: None

입력의 이름입니다.

mode
str
기본값: None

PipelineData에 액세스하는 모드("탑재" 또는 "다운로드")입니다.

path_on_compute
str
기본값: None

"download" 모드의 경우 데이터가 상주할 컴퓨팅의 경로입니다.

overwrite
bool
기본값: None

"download" 모드의 경우 기존 데이터를 덮어쓸지 여부를 나타냅니다.

반환

이 PipelineData를 원본으로 사용하는 InputPortBinding입니다.

반환 형식

get_env_variable_name

이 PipelineData에 대한 환경 변수의 이름을 반환합니다.

get_env_variable_name()

반환

환경 변수 이름입니다.

반환 형식

str

특성

data_type

생성될 데이터 형식입니다.

반환

데이터 형식 이름입니다.

반환 형식

str

datastore

PipelineData가 상주할 데이터 저장소입니다.

반환

데이터 저장소 개체입니다.

반환 형식

name

PipelineData 개체의 이름입니다.

반환

이름.

반환 형식

str