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.objectPipelineData
생성자
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 | Description |
---|---|
name
필수
|
문자, 숫자 및 밑줄만 포함할 수 있는 PipelineData 개체의 이름입니다. PipelineData 이름은 단계의 출력을 식별하는 데 사용됩니다. 파이프라인 실행이 완료된 후 출력 이름과 함께 단계 이름을 사용하여 특정 출력에 액세스할 수 있습니다. 이름은 파이프라인의 단일 단계 내에서 고유해야 합니다. |
datastore
|
PipelineData가 상주할 데이터 저장소입니다. 지정하지 않으면 기본 데이터 저장소가 사용됩니다. Default value: None
|
output_name
|
None 이름이 사용되는 경우 출력의 이름입니다. 문자, 숫자 및 밑줄만 포함할 수 있습니다. Default value: None
|
output_mode
|
생성 단계에서 "upload" 또는 "mount" 메서드를 사용하여 데이터에 액세스할지 여부를 지정합니다. Default value: mount
|
output_path_on_compute
|
Default value: None
|
output_overwrite
|
Default value: None
|
data_type
|
선택 사항입니다. 데이터 형식을 사용하여 예상되는 출력 형식을 지정하고 소비 단계에서 데이터를 사용하는 방법을 자세히 설명할 수 있습니다. 사용자 정의 문자열일 수 있습니다. Default value: None
|
is_directory
|
데이터가 디렉터리 또는 단일 파일인지 지정합니다.
Default value: None
|
pipeline_output_name
|
제공된 경우 이 출력은 Default value: None
|
training_output
|
학습 결과에 대한 출력을 정의합니다. 이는 메트릭 및 모델과 같은 다양한 종류의 출력을 생성하는 특정 학습에만 필요합니다. 예를 들어 AutoMLStep은 메트릭 및 모델을 생성합니다. 최상의 모델을 얻는 데 사용되는 특정 학습 반복 또는 메트릭을 정의할 수도 있습니다. HyperDriveStep의 경우 출력에 포함할 특정 모델 파일을 정의할 수도 있습니다. Default value: None
|
name
필수
|
문자, 숫자 및 밑줄만 포함할 수 있는 PipelineData 개체의 이름입니다. PipelineData 이름은 단계의 출력을 식별하는 데 사용됩니다. 파이프라인 실행이 완료된 후 출력 이름과 함께 단계 이름을 사용하여 특정 출력에 액세스할 수 있습니다. 이름은 파이프라인의 단일 단계 내에서 고유해야 합니다. |
datastore
필수
|
PipelineData가 상주할 데이터 저장소입니다. 지정하지 않으면 기본 데이터 저장소가 사용됩니다. |
output_name
필수
|
None 이름이 사용되는 경우 출력의 이름입니다. 문자, 숫자 및 밑줄만 포함할 수 있습니다. |
output_mode
필수
|
생성 단계에서 "upload" 또는 "mount" 메서드를 사용하여 데이터에 액세스할지 여부를 지정합니다. |
output_path_on_compute
필수
|
|
output_overwrite
필수
|
|
data_type
필수
|
선택 사항입니다. 데이터 형식을 사용하여 예상되는 출력 형식을 지정하고 소비 단계에서 데이터를 사용하는 방법을 자세히 설명할 수 있습니다. 사용자 정의 문자열일 수 있습니다. |
is_directory
필수
|
데이터가 디렉터리 또는 단일 파일인지 지정합니다.
|
pipeline_output_name
필수
|
제공된 경우 이 출력은 |
training_output
필수
|
학습 결과에 대한 출력을 정의합니다. 이는 메트릭 및 모델과 같은 다양한 종류의 출력을 생성하는 특정 학습에만 필요합니다. 예를 들어 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 개체를 스크립트에 대한 인수 중 하나로 전달할 수 있습니다(예: PythonScriptStep의
arguments
매개 변수 사용). 그러면 개체가 데이터 경로로 확인됩니다. 출력의 경우 컴퓨팅 스크립트는 이 출력 경로에 파일 또는 디렉터리를 만들어야 합니다. Pipeline 개체를 인수로 전달할 때 사용되는 환경 변수의 값을 보려면 get_env_variable_name 메서드를 사용합니다.Upload: 스크립트가 생성할 파일 또는 디렉터리 이름에 해당하는
output_path_on_compute
를 지정합니다. (이 경우 환경 변수는 사용되지 않습니다.)
메서드
as_dataset |
중간 출력을 데이터 세트로 승격합니다. 이 데이터 세트는 단계가 실행된 후에 존재합니다. 후속 입력을 데이터 세트로 사용하려면 출력을 데이터 세트로 승격해야 합니다. as_dataset가 출력에서 호출될 뿐 아니라 입력에서도 호출되는 경우 as_dataset는 noop이 되며 입력은 데이터 세트로 사용되지 않습니다. 아래 코드 예제에서는 올바른 as_dataset 사용 방법을 보여 줍니다.
|
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()
반환
형식 | Description |
---|---|
데이터 세트로서 중간 출력입니다. |
as_download
PipelineData를 다운로드로 사용합니다.
as_download(input_name=None, path_on_compute=None, overwrite=None)
매개 변수
Name | Description |
---|---|
input_name
|
이 입력의 이름을 지정하는 데 사용합니다. Default value: None
|
path_on_compute
|
다운로드할 컴퓨팅의 경로입니다. Default value: None
|
overwrite
|
기존 데이터를 덮어쓸지 여부를 나타내는 데 사용합니다. Default value: None
|
반환
형식 | Description |
---|---|
이 PipelineData를 원본으로 사용하는 InputPortBinding입니다. |
as_input
InputPortBinding을 만들고 입력 이름을 지정합니다(그러나 기본 모드 사용).
as_input(input_name)
매개 변수
Name | Description |
---|---|
input_name
필수
|
이 입력의 이름을 지정하는 데 사용합니다. |
반환
형식 | Description |
---|---|
이 PipelineData를 원본으로 사용하는 InputPortBinding입니다. |
as_mount
PipelineData를 탑재로 사용합니다.
as_mount(input_name=None)
매개 변수
Name | Description |
---|---|
input_name
|
이 입력의 이름을 지정하는 데 사용합니다. Default value: None
|
반환
형식 | Description |
---|---|
이 PipelineData를 원본으로 사용하는 InputPortBinding입니다. |
create_input_binding
입력 바인딩을 만듭니다.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
매개 변수
Name | Description |
---|---|
input_name
|
입력의 이름입니다. Default value: None
|
mode
|
PipelineData에 액세스하는 모드("탑재" 또는 "다운로드")입니다. Default value: None
|
path_on_compute
|
"download" 모드의 경우 데이터가 상주할 컴퓨팅의 경로입니다. Default value: None
|
overwrite
|
"download" 모드의 경우 기존 데이터를 덮어쓸지 여부를 나타냅니다. Default value: None
|
반환
형식 | Description |
---|---|
이 PipelineData를 원본으로 사용하는 InputPortBinding입니다. |
get_env_variable_name
특성
data_type
datastore
PipelineData가 상주할 데이터 저장소입니다.
반환
형식 | Description |
---|---|
데이터 저장소 개체입니다. |