다음을 통해 공유


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
필수
str

여러 노드에서 병렬로 실행되는 사용자 스크립트입니다. 로컬 파일 경로로 지정됩니다. 지정된 source_directory 경우 entry_script 디렉터리 내의 상대 경로입니다. 그렇지 않으면 컴퓨터에서 액세스할 수 있는 경로일 수 있습니다. entry_script 두 개의 함수 init()를 포함해야 합니다. 이 함수는 모델을 역직렬화하고 전역 개체로 로드하는 등의 후속 유추를 위한 비용이 많이 들거나 일반적인 준비에 사용해야 합니다. run(mini_batch): 병렬 처리할 메서드입니다. 각 호출에는 하나의 미니 일괄 처리가 있습니다. 'mini_batch': 일괄 처리 유추는 실행 메서드를 호출하고 목록 또는 Pandas DataFrame을 메서드에 인수로 전달합니다. 입력이 FileDataset이면 min_batch 각 항목은 filepath이고, 입력이 TabularDataset인 경우 Pandas DataFrame입니다. run() 메서드는 Pandas DataFrame 또는 배열을 반환해야 합니다. append_row output_action의 경우 반환되는 요소가 공통 출력 파일에 추가됩니다. summary_only의 경우 요소의 내용이 무시됩니다. 모든 출력 작업의 경우 반환된 각 출력 요소는 입력 미니 일괄 처리에서 입력 요소의 성공적인 유추를 나타냅니다. 각 병렬 작업자 프로세스는 init를 한 번 호출한 다음 모든 미니 일괄 처리가 처리될 때까지 실행 함수를 반복합니다.

error_threshold
필수
int

레코드 오류 수 및 해당 오류에 대한 TabularDatasetFileDataset 파일 오류는 처리하는 동안 무시해야 합니다. 오류 수가 이 값을 초과하면 작업이 중단됩니다. 오류 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아니라 전체 입력에 대한 것입니다. 범위는 [-1, int.max]입니다. -1은 처리 중 모든 오류를 무시함을 나타냅니다.

output_action
필수
str

출력을 구성하는 방법. 현재 지원되는 값은 'append_row' 및 'summary_only'입니다.

  1. 'append_row' – run() 메서드 호출을 통해 출력되는 모든 값은 출력 위치에 생성되는 parallel_run_step.txt라는 하나의 고유한 파일로 집계됩니다.
  2. 'summary_only' – 사용자 스크립트는 출력 자체를 저장해야 합니다. 처리된 각 성공적인 입력 항목에 대해 출력 행이 여전히 필요합니다. 시스템은 이 출력을 오류 임계값 계산에만 사용합니다(행의 실제 값 무시).
compute_target
필수
AmlCompute 또는 str

ParallelRunStep 실행에 사용할 컴퓨팅 대상입니다. 이 매개 변수는 작업 영역에서 컴퓨팅 대상 개체 또는 컴퓨팅 대상의 이름으로 지정할 수 있습니다.

node_count
필수
int

ParallelRunStep을 실행하는 데 사용되는 컴퓨팅 대상의 노드 수입니다.

process_count_per_node
int

항목 스크립트를 병렬로 실행하는 노드당 작업자 프로세스 수입니다. GPU 컴퓨터의 경우 기본값은 1입니다. CPU 컴퓨터의 경우 기본값은 코어 수입니다. 작업자 프로세스는 가져온 미니 일괄 처리를 전달하여 run()을 반복적으로 호출합니다. 작업에서 실행되는 작업자 프로세스의 총수는 process_count_per_node * node_count이며 이 수에 따라 병렬로 실행되는 run()의 최대 수가 결정됩니다.

Default value: None
mini_batch_size

FileDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 실행() 호출에서 처리할 수 있는 파일 수입니다. TabularDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 실행() 호출에서 처리할 수 있는 데이터의 대략적인 크기입니다. 예제 값은 1024, 1024KB, 10MB 및 1GB입니다. (선택 사항, 기본값은 FileDataset의 경우 10개 파일, TabularDataset의 경우 1MB입니다.)

Default value: None
source_directory
str

컴퓨팅 대상에서 entry_script 실행하는 데 사용되는 지원 파일이 포함된 폴더의 경로입니다.

Default value: None
description
str

표시 용도로 사용되는 일괄 처리 서비스를 제공하는 설명입니다.

Default value: None
logging_level
str

'로깅'에 정의된 로깅 수준 이름의 문자열입니다. 가능한 값은 'WARNING', 'INFO' 및 'DEBUG'입니다. (선택 사항, 기본값은 'INFO'입니다.)

Default value: INFO
run_invocation_timeout
int

run() 메서드의 각 호출에 대한 시간 제한(초)입니다. (선택 사항, 기본값은 60입니다.)

Default value: 60
run_max_try
int

실패한 또는 시간 제한 미니 일괄 처리에 대한 최대 시도 횟수입니다. 범위는 [1, int.max]입니다. 기본값은 3입니다. 큐에서 제거 횟수가 이보다 큰 미니 일괄 처리는 다시 처리되지 않으며 직접 삭제됩니다.

Default value: 3
append_row_file_name
str

'append_row'인 경우 output_action 출력 파일의 이름입니다. (선택 사항, 기본값은 'parallel_run_step.txt')

Default value: None
allowed_failed_count
int

처리 중에 무시해야 하는 실패한 미니 일괄 처리 수입니다. 실패한 수가 이 값보다 높으면 작업이 중단됩니다. 이 임계값은 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
필수
str

여러 노드에서 병렬로 실행되는 사용자 스크립트입니다. 로컬 파일 경로로 지정됩니다. 지정된 source_directory 경우 entry_script 디렉터리 내의 상대 경로입니다. 그렇지 않으면 컴퓨터에서 액세스할 수 있는 경로일 수 있습니다. entry_script 두 개의 함수 init()를 포함해야 합니다. 이 함수는 모델을 역직렬화하고 전역 개체로 로드하는 등의 후속 유추를 위한 비용이 많이 들거나 일반적인 준비에 사용해야 합니다. run(mini_batch): 병렬 처리할 메서드입니다. 각 호출에는 하나의 미니 일괄 처리가 있습니다. 'mini_batch': 일괄 처리 유추는 실행 메서드를 호출하고 목록 또는 Pandas DataFrame을 메서드에 인수로 전달합니다. 입력이 FileDataset이면 min_batch 각 항목은 filepath이고, 입력이 TabularDataset인 경우 Pandas DataFrame입니다. run() 메서드는 Pandas DataFrame 또는 배열을 반환해야 합니다. append_row output_action의 경우 반환되는 요소가 공통 출력 파일에 추가됩니다. summary_only의 경우 요소의 내용이 무시됩니다. 모든 출력 작업의 경우 반환된 각 출력 요소는 입력 미니 일괄 처리에서 입력 요소의 성공적인 유추를 나타냅니다. 각 병렬 작업자 프로세스는 init를 한 번 호출한 다음 모든 미니 일괄 처리가 처리될 때까지 실행 함수를 반복합니다.

error_threshold
필수
int

레코드 오류 수 및 해당 오류에 대한 TabularDatasetFileDataset 파일 오류는 처리하는 동안 무시해야 합니다. 오류 수가 이 값을 초과하면 작업이 중단됩니다. 오류 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아니라 전체 입력에 대한 것입니다. 범위는 [-1, int.max]입니다. -1은 처리 중 모든 오류를 무시함을 나타냅니다.

output_action
필수
str

출력을 구성하는 방법. 현재 지원되는 값은 'append_row' 및 'summary_only'입니다.

  1. 'append_row' – run() 메서드 호출을 통해 출력되는 모든 값은 출력 위치에 생성되는 parallel_run_step.txt라는 하나의 고유한 파일로 집계됩니다.
  2. 'summary_only' – 사용자 스크립트는 출력 자체를 저장해야 합니다. 처리된 각 성공적인 입력 항목에 대해 출력 행이 여전히 필요합니다. 시스템은 이 출력을 오류 임계값 계산에만 사용합니다(행의 실제 값 무시).
compute_target
필수
AmlCompute 또는 str

ParallelRunStep 실행에 사용할 컴퓨팅 대상입니다. 이 매개 변수는 작업 영역에서 컴퓨팅 대상 개체 또는 컴퓨팅 대상의 이름으로 지정할 수 있습니다.

node_count
필수
int

ParallelRunStep을 실행하는 데 사용되는 컴퓨팅 대상의 노드 수입니다.

process_count_per_node
필수
int

항목 스크립트를 병렬로 실행하는 노드당 작업자 프로세스 수입니다. GPU 머신의 경우 기본값은 1입니다. CPU 컴퓨터의 경우 기본값은 코어 수입니다. 작업자 프로세스는 가져온 미니 일괄 처리를 전달하여 run()을 반복적으로 호출합니다. 작업에서 실행되는 작업자 프로세스의 총수는 process_count_per_node * node_count이며 이 수에 따라 병렬로 실행되는 run()의 최대 수가 결정됩니다.

mini_batch_size
필수
str 또는 int

FileDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 실행() 호출에서 처리할 수 있는 파일 수입니다. TabularDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 실행() 호출에서 처리할 수 있는 데이터의 대략적인 크기입니다. 예제 값은 1024, 1024KB, 10MB 및 1GB입니다. (선택 사항, 기본값은 FileDataset의 경우 10개 파일, TabularDataset의 경우 1MB입니다.)

source_directory
필수
str

컴퓨팅 대상에서 entry_script 실행하는 데 사용되는 지원 파일이 포함된 폴더의 경로입니다.

description
필수
str

표시 용도로 사용되는 일괄 처리 서비스를 제공하는 설명입니다.

logging_level
필수
str

'로깅'에 정의된 로깅 수준 이름의 문자열입니다. 가능한 값은 'WARNING', 'INFO' 및 'DEBUG'입니다. (선택 사항, 기본값은 'INFO'입니다.)

run_invocation_timeout
필수
int

run() 메서드의 각 호출에 대한 시간 제한(초)입니다. (선택 사항, 기본값은 60입니다.)

run_max_try
필수
int

실패한 또는 시간 제한 미니 일괄 처리에 대한 최대 시도 횟수입니다. 범위는 [1, int.max]입니다. 기본값은 3입니다. 큐에서 제거 횟수가 이보다 큰 미니 일괄 처리는 다시 처리되지 않으며 직접 삭제됩니다.

append_row_file_name
필수
str

'append_row'인 경우 output_action 출력 파일의 이름입니다. (선택 사항, 기본값은 'parallel_run_step.txt')

allowed_failed_count
필수
int

처리 중에 무시해야 하는 실패한 미니 일괄 처리 수입니다. 실패한 수가 이 값보다 높으면 작업이 중단됩니다. 이 임계값은 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 클래스를 사용하는 예제는 다음 문서에서 설명합니다.


   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
필수
str

구성을 로드할 경로입니다.

save_to_yaml

병렬 실행 구성 데이터를 YAML 파일로 내보냅니다.

save_to_yaml(path)

매개 변수

Name Description
path
필수
str

파일을 저장할 경로입니다.