ParallelRunConfig 클래스
ParallelRunStep 개체에 대한 구성을 정의합니다.
ParallelRunStep을 사용하는 예제는 Notebook https://aka.ms/batch-inference-notebooks을 참조하세요.
문제 해결 가이드는 https://aka.ms/prstsg를 참조하세요. 이 문서에서 더 많은 참고 자료를 찾을 수 있습니다.
구성 개체를 초기화합니다.
- 상속
-
azureml.pipeline.core._parallel_run_config_base._ParallelRunConfigBaseParallelRunConfig
생성자
ParallelRunConfig(environment, entry_script, error_threshold, output_action, compute_target, node_count, process_count_per_node=None, mini_batch_size=None, source_directory=None, description=None, logging_level='INFO', run_invocation_timeout=60, run_max_try=3, append_row_file_name=None, allowed_failed_count=None, allowed_failed_percent=None, partition_keys=None, environment_variables=None)
매개 변수
Name | Description |
---|---|
environment
필수
|
Python 환경을 구성하는 환경 정의입니다. 기존 Python 환경을 사용하거나 실험을 위한 임시 환경을 설정하도록 구성할 수 있습니다. 환경 정의는 conda 또는 pip 패키지와 같은 필수 애플리케이션 종속성을 정의합니다. |
entry_script
필수
|
여러 노드에서 병렬로 실행될 사용자 스크립트입니다. 이는 로컬 파일 경로로 지정됩니다.
|
error_threshold
필수
|
처리 중에 무시해야 하는 FileDataset에 대한 TabularDataset 및 파일 오류에 대한 레코드 실패 횟수입니다. 오류 수가 이 값을 초과하면 작업이 중단됩니다. 오류 임계값은 전체 입력에 대한 것이며 run() 메서드로 전송된 개별 미니 일괄 처리에 대한 것이 아닙니다. 범위는 [-1, int.max]입니다. -1은 처리 중 모든 실패를 무시함을 나타냅니다. |
output_action
필수
|
출력을 구성할 때 따라야 하는 방법입니다. 현재 지원되는 값은 ‘append_row’ 및 ‘summary_only’입니다.
|
compute_target
필수
|
AmlCompute 또는
str
ParallelRunStep 실행에 사용할 컴퓨팅 대상입니다. 이 매개 변수는 컴퓨팅 대상 개체 또는 작업 영역의 컴퓨팅 대상의 이름으로 지정할 수 있습니다. |
node_count
필수
|
ParallelRunStep을 실행하는 데 사용되는 컴퓨팅 대상의 노드 수입니다. |
process_count_per_node
|
항목 스크립트를 병렬 실행할 노드당 작업자 프로세스 수입니다.
GPU 머신의 경우 기본값은 1입니다.
CPU 머신의 경우 기본값은 코어 수입니다.
작업자 프로세스는 가져온 미니 일괄 처리를 전달하여 Default value: None
|
mini_batch_size
|
FileDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 run() 호출에서 처리할 수 있는 파일 수입니다. TabularDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 run() 호출에서 처리할 수 있는 대략적인 데이터 크기입니다. 예제 값은 1024, 1024KB, 10MB 및 1GB입니다. (선택 사항, 기본값은 FileDataset의 경우 10개 파일, TabularDataset의 경우 1MB입니다.) Default value: None
|
source_directory
|
컴퓨팅 대상에서 실행하는 데 사용되는 Default value: None
|
description
|
표시 목적으로 사용되는 일괄 처리 서비스를 제공하는 설명입니다. Default value: None
|
logging_level
|
'logging'에 정의된 로깅 수준 이름의 문자열입니다. 가능한 값은 'WARNING', 'INFO' 및 'DEBUG'입니다. (선택 사항, 기본값은 'INFO'입니다.) Default value: INFO
|
run_invocation_timeout
|
run() 메서드의 각 호출에 대한 제한 시간(초)입니다. (선택 사항, 기본값은 60입니다.) Default value: 60
|
run_max_try
|
실패하거나 시간이 초과된 미니 배치에 대한 최대 시도 횟수입니다. 범위는 [1, int.max]입니다. 기본값은 3입니다. 큐에서 제거 횟수가 이보다 큰 미니 배치는 다시 처리되지 않으며 직접 삭제됩니다. Default value: 3
|
append_row_file_name
|
Default value: None
|
allowed_failed_count
|
처리하는 동안 무시해야 하는 실패한 미니 일괄 처리의 수입니다. 실패 횟수가 이 값을 초과하면 작업이 중단됩니다. 이 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아닌 전체 입력에 대한 값입니다. 범위는 [-1, int.max]입니다. -1은 처리 중 모든 실패를 무시함을 나타냅니다. 미니 일괄 처리가 처음 처리될 때 실패하고 두 번째 시도에서 성공할 수 있습니다. 첫 번째와 두 번째 시간 사이의 검사는 실패한 것으로 계산됩니다. 두 번째 시간 이후의 검사는 실패한 것으로 계산되지 않습니다. –error_threshold, –allowed_failed_count, –allowed_failed_percent 인수가 함께 작동할 수 있습니다. 값을 여러 개 지정할 경우 그 중 하나를 초과하면 작업이 중단됩니다. Default value: None
|
allowed_failed_percent
|
처리하는 동안 무시해야 하는 실패한 미니 일괄 처리의 백분율입니다. 실패 백분율이 이 값을 초과하면 작업이 중단됩니다. 이 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아닌 전체 입력에 대한 값입니다. 범위는 [0, 100]입니다. 100 또는 100.0은 처리 중에 발생하는 실패를 모두 무시합니다. 모든 미니 일괄 처리가 예약된 후에 검사가 시작됩니다. –error_threshold, –allowed_failed_count, –allowed_failed_percent 인수가 함께 작동할 수 있습니다. 값을 여러 개 지정할 경우 그 중 하나를 초과하면 작업이 중단됩니다. Default value: None
|
partition_keys
|
데이터 세트를 미니 일괄 처리로 분할하는 데 사용되는 키입니다. 지정할 경우 키가 같은 데이터가 동일한 미니 일괄 처리로 분할됩니다. partition_keys 및 mini_batch_size를 모두 지정하면 오류가 발생합니다. 각각 입력 데이터 세트를 분할하는 데 사용되는 키인 str 요소의 목록이어야 합니다. 그러나 PipelineParameter로 승격된 경우 현재 PipelineParameter에서 목록 형식이 지원되지 않으므로 기본값은 목록의 json 덤프 str이어야 합니다. 입력은 분할된 데이터 세트여야 하며, 올바르게 작동하려면 partition_keys가 모든 입력 데이터 세트의 키 하위 집합이어야 합니다. Default value: None
|
environment_variables
|
환경 변수 이름 및 값의 사전입니다. 이러한 환경 변수는 사용자 스크립트가 실행되는 프로세스에서 설정됩니다. Default value: None
|
environment
필수
|
Python 환경을 구성하는 환경 정의입니다. 기존 Python 환경을 사용하거나 실험을 위한 임시 환경을 설정하도록 구성할 수 있습니다. 환경 정의는 conda 또는 pip 패키지와 같은 필수 애플리케이션 종속성을 정의합니다. |
entry_script
필수
|
여러 노드에서 병렬로 실행될 사용자 스크립트입니다. 이는 로컬 파일 경로로 지정됩니다.
|
error_threshold
필수
|
처리 중에 무시해야 하는 FileDataset에 대한 TabularDataset 및 파일 오류에 대한 레코드 실패 횟수입니다. 오류 수가 이 값을 초과하면 작업이 중단됩니다. 오류 임계값은 전체 입력에 대한 것이며 run() 메서드로 전송된 개별 미니 일괄 처리에 대한 것이 아닙니다. 범위는 [-1, int.max]입니다. -1은 처리 중 모든 실패를 무시함을 나타냅니다. |
output_action
필수
|
출력을 구성할 때 따라야 하는 방법입니다. 현재 지원되는 값은 ‘append_row’ 및 ‘summary_only’입니다.
|
compute_target
필수
|
AmlCompute 또는
str
ParallelRunStep 실행에 사용할 컴퓨팅 대상입니다. 이 매개 변수는 컴퓨팅 대상 개체 또는 작업 영역의 컴퓨팅 대상의 이름으로 지정할 수 있습니다. |
node_count
필수
|
ParallelRunStep을 실행하는 데 사용되는 컴퓨팅 대상의 노드 수입니다. |
process_count_per_node
필수
|
항목 스크립트를 병렬 실행할 노드당 작업자 프로세스 수입니다.
GPU 머신의 경우 기본값은 1입니다.
CPU 컴퓨터의 경우 기본값은 코어 수입니다.
작업자 프로세스는 가져온 미니 일괄 처리를 전달하여 |
mini_batch_size
필수
|
FileDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 run() 호출에서 처리할 수 있는 파일 수입니다. TabularDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 run() 호출에서 처리할 수 있는 대략적인 데이터 크기입니다. 예제 값은 1024, 1024KB, 10MB 및 1GB입니다. (선택 사항, 기본값은 FileDataset의 경우 10개 파일, TabularDataset의 경우 1MB입니다.) |
source_directory
필수
|
컴퓨팅 대상에서 실행하는 데 사용되는 |
description
필수
|
표시 목적으로 사용되는 일괄 처리 서비스를 제공하는 설명입니다. |
logging_level
필수
|
'logging'에 정의된 로깅 수준 이름의 문자열입니다. 가능한 값은 'WARNING', 'INFO' 및 'DEBUG'입니다. (선택 사항, 기본값은 'INFO'입니다.) |
run_invocation_timeout
필수
|
run() 메서드의 각 호출에 대한 제한 시간(초)입니다. (선택 사항, 기본값은 60입니다.) |
run_max_try
필수
|
실패하거나 시간이 초과된 미니 배치에 대한 최대 시도 횟수입니다. 범위는 [1, int.max]입니다. 기본값은 3입니다. 큐에서 제거 횟수가 이보다 큰 미니 배치는 다시 처리되지 않으며 직접 삭제됩니다. |
append_row_file_name
필수
|
|
allowed_failed_count
필수
|
처리하는 동안 무시해야 하는 실패한 미니 일괄 처리의 수입니다. 실패 횟수가 이 값을 초과하면 작업이 중단됩니다. 이 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아닌 전체 입력에 대한 값입니다. 범위는 [-1, int.max]입니다. -1은 처리 중 모든 실패를 무시함을 나타냅니다. 미니 일괄 처리가 처음 처리될 때 실패하고 두 번째 시도에서 성공할 수 있습니다. 첫 번째와 두 번째 시간 사이의 검사는 실패한 것으로 계산됩니다. 두 번째 시간 이후의 검사는 실패한 것으로 계산되지 않습니다. –error_threshold, –allowed_failed_count, –allowed_failed_percent 인수가 함께 작동할 수 있습니다. 값을 여러 개 지정할 경우 그 중 하나를 초과하면 작업이 중단됩니다. |
allowed_failed_percent
필수
|
처리하는 동안 무시해야 하는 실패한 미니 일괄 처리의 백분율입니다. 실패 백분율이 이 값을 초과하면 작업이 중단됩니다. 이 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아닌 전체 입력에 대한 값입니다. 범위는 [0, 100]입니다. 100 또는 100.0은 처리 중에 발생하는 실패를 모두 무시합니다. 모든 미니 일괄 처리가 예약된 후에 검사가 시작됩니다. –error_threshold, –allowed_failed_count, –allowed_failed_percent 인수가 함께 작동할 수 있습니다. 값을 여러 개 지정할 경우 그 중 하나를 초과하면 작업이 중단됩니다. |
partition_keys
필수
|
데이터 세트를 미니 일괄 처리로 분할하는 데 사용되는 키입니다. 지정할 경우 키가 같은 데이터가 동일한 미니 일괄 처리로 분할됩니다. partition_keys 및 mini_batch_size를 모두 지정하면 오류가 발생합니다. 각각 입력 데이터 세트를 분할하는 데 사용되는 키인 str 요소의 목록이어야 합니다. 그러나 PipelineParameter로 승격된 경우 현재 PipelineParameter에서 목록 형식이 지원되지 않으므로 기본값은 목록의 json 덤프 str이어야 합니다. 입력은 분할된 데이터 세트여야 하며, 올바르게 작동하려면 partition_keys가 모든 입력 데이터 세트의 키 하위 집합이어야 합니다. |
environment_variables
필수
|
환경 변수 이름 및 값의 사전입니다. 이러한 환경 변수는 사용자 스크립트가 실행되는 프로세스에서 설정됩니다. |
설명
ParallelRunConfig 클래스는 ParallelRunStep 클래스에 대한 구성을 제공하는 데 사용됩니다. 대량의 데이터를 병렬로 처리하기 위해 ParallelRunConfig 및 ParallelRunStep을 함께 사용할 수 있습니다. 일반적인 사용 사례는 ML 모델을 학습하거나 오프라인 추론을 실행하여 관찰 일괄 처리에 대한 예측을 생성하는 것입니다. ParallelRunStep은 데이터를 병렬로 처리되는 일괄 처리로 분할하여 작동합니다. 일괄 처리 크기, 노드 수, 병렬 처리 속도를 높이는 기타 조정 가능한 매개 변수는 ParallelRunConfig 클래스로 제어할 수 있습니다. ParallelRunStep은 TabularDataset 또는 FileDataset를 입력으로 사용할 수 있습니다.
ParallelRunStep 및 ParallelRunConfig를 사용하려면 다음을 수행합니다.
ParallelRunConfig 개체를 만들어 일괄 처리 크기, 컴퓨팅 대상당 노드 수 및 사용자 지정 Python 스크립트에 대한 참조를 제어하는 매개 변수와 함께 일괄 처리 처리가 수행되는 방식을 지정합니다.
ParallelRunConfig 개체를 사용하는 ParallelRunStep 개체를 만들고 단계에 대한 입력 및 출력을 정의합니다.
다른 파이프라인 단계 유형과 마찬가지로 Pipeline에서 구성된 ParallelRunStep 개체를 사용합니다.
일괄 처리 유추를 위해 ParallelRunStep 및 ParallelRunConfig 클래스를 사용하는 예제는 다음 문서에 설명되어 있습니다.
자습서: 일괄 채점을 위한 Azure Machine Learning 파이프라인 구축. 이 문서에서는 파이프라인에서 비동기 일괄 점수 매기기에 이 두 클래스를 사용하고 REST 엔드포인트가 파이프라인을 실행하도록 설정하는 방법을 보여 줍니다.
Azure Machine Learning을 사용하여 대량의 데이터에 대한 일괄 처리 유추 실행. 이 문서에서는 MNIST 데이터 세트를 기반으로 하는 사전 학습된 이미지 분류 모델 및 사용자 지정 추론 스크립트를 사용하여 대량의 데이터를 비동기식으로 병렬로 처리하는 방법을 보여 줍니다.
from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig
parallel_run_config = ParallelRunConfig(
source_directory=scripts_folder,
entry_script=script_file,
mini_batch_size="5", # or partition_keys=["key1", "key2"], which is another way to partition the
# input to mini-batches, refer to the parameter description for details
error_threshold=10, # Optional, allowed failed count on mini batch items
allowed_failed_count=15, # Optional, allowed failed count on mini batches
allowed_failed_percent=10, # Optional, allowed failed percent on mini batches
run_max_try=3,
output_action="append_row",
environment=batch_env,
compute_target=compute_target,
node_count=2)
parallelrun_step = ParallelRunStep(
name="predict-digits-mnist",
parallel_run_config=parallel_run_config,
inputs=[ named_mnist_ds ],
output=output_dir,
arguments=[ "--extra_arg", "example_value" ],
allow_reuse=True
)
이 예제에 대한 자세한 내용은 Notebook https://aka.ms/batch-inference-notebooks를 참조하세요.
메서드
load_yaml |
YAML 파일에서 병렬 실행 구성 데이터를 로드합니다. |
save_to_yaml |
병렬 실행 구성 데이터를 YAML 파일로 내보냅니다. |
load_yaml
YAML 파일에서 병렬 실행 구성 데이터를 로드합니다.
static load_yaml(workspace, path)
매개 변수
Name | Description |
---|---|
workspace
필수
|
구성 데이터를 읽을 작업 영역입니다. |
path
필수
|
구성을 로드할 경로입니다. |