ParallelRunConfig 클래스
개체에 대한 구성을 ParallelRunStep 정의합니다.
ParallelRunStep을 사용하는 예제는 Notebook https://aka.ms/batch-inference-notebooks을 참조하세요.
문제 해결 가이드는 다음을 참조하세요 https://aka.ms/prstsg. 더 많은 참조를 찾을 수 있습니다.
구성 개체를 초기화합니다.
생성자
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
필수
|
레코드 오류 수 및 해당 오류에 대한 TabularDatasetFileDataset 파일 오류는 처리하는 동안 무시해야 합니다. 오류 수가 이 값을 초과하면 작업이 중단됩니다. 오류 임계값은 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 입력의 경우 이 필드는 사용자 스크립트가 한 번의 실행() 호출에서 처리할 수 있는 파일 수입니다. TabularDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 실행() 호출에서 처리할 수 있는 데이터의 대략적인 크기입니다. 예제 값은 1024, 1024KB, 10MB 및 1GB입니다. (선택 사항, 기본값은 FileDataset의 경우 10개 파일, TabularDataset의 경우 1MB입니다.) Default value: None
|
source_directory
|
컴퓨팅 대상에서 Default value: None
|
description
|
표시 용도로 사용되는 일괄 처리 서비스를 제공하는 설명입니다. Default value: None
|
logging_level
|
'로깅'에 정의된 로깅 수준 이름의 문자열입니다. 가능한 값은 '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
|
'append_row'인 경우 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 덤프 스트럿이어야 합니다. 입력은 분할된 데이터 세트여야 하며 partition_keys 작동하려면 모든 입력 데이터 세트의 키 하위 집합이어야 합니다. Default value: None
|
environment_variables
|
환경 변수 이름 및 값의 사전입니다. 이러한 환경 변수는 사용자 스크립트가 실행되는 프로세스에서 설정됩니다. Default value: None
|
environment
필수
|
Python 환경을 구성하는 환경 정의입니다. 기존 Python 환경을 사용하거나 실험에 대한 임시 환경을 설정하도록 구성할 수 있습니다. 환경 정의는 conda 또는 pip 패키지와 같은 필수 애플리케이션 종속성을 정의합니다. |
entry_script
필수
|
여러 노드에서 병렬로 실행되는 사용자 스크립트입니다. 로컬 파일 경로로 지정됩니다. 지정된 |
error_threshold
필수
|
레코드 오류 수 및 해당 오류에 대한 TabularDatasetFileDataset 파일 오류는 처리하는 동안 무시해야 합니다. 오류 수가 이 값을 초과하면 작업이 중단됩니다. 오류 임계값은 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 입력의 경우 이 필드는 사용자 스크립트가 한 번의 실행() 호출에서 처리할 수 있는 파일 수입니다. TabularDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 실행() 호출에서 처리할 수 있는 데이터의 대략적인 크기입니다. 예제 값은 1024, 1024KB, 10MB 및 1GB입니다. (선택 사항, 기본값은 FileDataset의 경우 10개 파일, TabularDataset의 경우 1MB입니다.) |
source_directory
필수
|
컴퓨팅 대상에서 |
description
필수
|
표시 용도로 사용되는 일괄 처리 서비스를 제공하는 설명입니다. |
logging_level
필수
|
'로깅'에 정의된 로깅 수준 이름의 문자열입니다. 가능한 값은 'WARNING', 'INFO' 및 'DEBUG'입니다. (선택 사항, 기본값은 'INFO'입니다.) |
run_invocation_timeout
필수
|
run() 메서드의 각 호출에 대한 시간 제한(초)입니다. (선택 사항, 기본값은 60입니다.) |
run_max_try
필수
|
실패한 또는 시간 제한 미니 일괄 처리에 대한 최대 시도 횟수입니다. 범위는 [1, int.max]입니다. 기본값은 3입니다. 큐에서 제거 횟수가 이보다 큰 미니 일괄 처리는 다시 처리되지 않으며 직접 삭제됩니다. |
append_row_file_name
필수
|
'append_row'인 경우 |
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 덤프 스트럿이어야 합니다. 입력은 분할된 데이터 세트여야 하며 partition_keys 작동하려면 모든 입력 데이터 세트의 키 하위 집합이어야 합니다. |
environment_variables
필수
|
환경 변수 이름 및 값의 사전입니다. 이러한 환경 변수는 사용자 스크립트가 실행되는 프로세스에서 설정됩니다. |
설명
ParallelRunConfig 클래스는 클래스에 대한 구성을 ParallelRunStep 제공하는 데 사용됩니다. ParallelRunConfig 및 ParallelRunStep을 함께 사용하여 대량의 데이터를 병렬로 처리할 수 있습니다. 일반적인 사용 사례는 ML 모델을 학습하거나 오프라인 추론을 실행하여 관찰 일괄 처리에 대한 예측을 생성하는 것입니다. ParallelRunStep은 데이터를 병렬로 처리되는 일괄 처리로 분할하여 작동합니다. 병렬 처리 속도를 높이기 위한 일괄 처리 크기, 노드 수 및 기타 튜닝 가능한 매개 변수는 클래스를 ParallelRunConfig 사용하여 제어할 수 있습니다. ParallelRunStep은 TabularDataset 입력으로 작동할 FileDataset 수 있습니다.
ParallelRunStep 및 ParallelRunConfig를 사용하려면:
ParallelRunConfig 일괄 처리가 수행되는 방법, 일괄 처리 크기를 제어하는 매개 변수, 컴퓨팅 대상당 노드 수 및 사용자 지정 Python 스크립트에 대한 참조를 지정하는 개체를 만듭니다.
ParallelRunConfig 개체를 사용하고 단계에 대한 입력 및 출력을 정의하는 ParallelRunStep 개체를 만듭니다.
다른 파이프라인 단계 형식과 마찬가지로 구성된 ParallelRunStep 개체 Pipeline 를 사용합니다.
일괄 처리 유추를 위해 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 파일로 내보냅니다. |