ParallelRunConfig 클래스

ParallelRunStep 개체에 대한 구성을 정의합니다.

ParallelRunStep을 사용하는 예제는 Notebook https://aka.ms/batch-inference-notebooks을 참조하세요.

문제 해결 가이드는 https://aka.ms/prstsg를 참조하세요. 이 문서에서 더 많은 참고 자료를 찾을 수 있습니다.

구성 개체를 초기화합니다.

상속
azureml.pipeline.core._parallel_run_config_base._ParallelRunConfigBase
ParallelRunConfig

생성자

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)

매개 변수

environment
Environment
필수

Python 환경을 구성하는 환경 정의입니다. 기존 Python 환경을 사용하거나 실험을 위한 임시 환경을 설정하도록 구성할 수 있습니다. 환경 정의는 conda 또는 pip 패키지와 같은 필수 애플리케이션 종속성을 정의합니다.

entry_script
str
필수

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

error_threshold
int
필수

처리 중에 무시해야 하는 FileDataset에 대한 TabularDataset 및 파일 오류에 대한 레코드 실패 횟수입니다. 오류 수가 이 값을 초과하면 작업이 중단됩니다. 오류 임계값은 전체 입력에 대한 것이며 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
기본값: None

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

mini_batch_size
Union[str, int]
기본값: None

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

source_directory
str
기본값: None

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

description
str
기본값: None

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

logging_level
str
기본값: INFO

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

run_invocation_timeout
int
기본값: 60

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

run_max_try
int
기본값: 3

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

append_row_file_name
str
기본값: None

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

allowed_failed_count
int
기본값: None

처리하는 동안 무시해야 하는 실패한 미니 일괄 처리의 수입니다. 실패 횟수가 이 값을 초과하면 작업이 중단됩니다. 이 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아닌 전체 입력에 대한 값입니다. 범위는 [-1, int.max]입니다. -1은 처리 중 모든 실패를 무시함을 나타냅니다. 미니 일괄 처리가 처음 처리될 때 실패하고 두 번째 시도에서 성공할 수 있습니다. 첫 번째와 두 번째 시간 사이의 검사는 실패한 것으로 계산됩니다. 두 번째 시간 이후의 검사는 실패한 것으로 계산되지 않습니다. –error_threshold, –allowed_failed_count, –allowed_failed_percent 인수가 함께 작동할 수 있습니다. 값을 여러 개 지정할 경우 그 중 하나를 초과하면 작업이 중단됩니다.

allowed_failed_percent
float
기본값: None

처리하는 동안 무시해야 하는 실패한 미니 일괄 처리의 백분율입니다. 실패 백분율이 이 값을 초과하면 작업이 중단됩니다. 이 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아닌 전체 입력에 대한 값입니다. 범위는 [0, 100]입니다. 100 또는 100.0은 처리 중에 발생하는 실패를 모두 무시합니다. 모든 미니 일괄 처리가 예약된 후에 검사가 시작됩니다. –error_threshold, –allowed_failed_count, –allowed_failed_percent 인수가 함께 작동할 수 있습니다. 값을 여러 개 지정할 경우 그 중 하나를 초과하면 작업이 중단됩니다.

partition_keys
List[str]
기본값: None

데이터 세트를 미니 일괄 처리로 분할하는 데 사용되는 키입니다. 지정할 경우 키가 같은 데이터가 동일한 미니 일괄 처리로 분할됩니다. partition_keys 및 mini_batch_size를 모두 지정하면 오류가 발생합니다. 각각 입력 데이터 세트를 분할하는 데 사용되는 키인 str 요소의 목록이어야 합니다. 그러나 PipelineParameter로 승격된 경우 현재 PipelineParameter에서 목록 형식이 지원되지 않으므로 기본값은 목록의 json 덤프 str이어야 합니다. 입력은 분할된 데이터 세트여야 하며, 올바르게 작동하려면 partition_keys가 모든 입력 데이터 세트의 키 하위 집합이어야 합니다.

environment_variables
Dict[str, str]
기본값: None

환경 변수 이름 및 값의 사전입니다. 이러한 환경 변수는 사용자 스크립트가 실행되는 프로세스에서 설정됩니다.

environment
Environment
필수

Python 환경을 구성하는 환경 정의입니다. 기존 Python 환경을 사용하거나 실험을 위한 임시 환경을 설정하도록 구성할 수 있습니다. 환경 정의는 conda 또는 pip 패키지와 같은 필수 애플리케이션 종속성을 정의합니다.

entry_script
str
필수

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

error_threshold
int
필수

처리 중에 무시해야 하는 FileDataset에 대한 TabularDataset 및 파일 오류에 대한 레코드 실패 횟수입니다. 오류 수가 이 값을 초과하면 작업이 중단됩니다. 오류 임계값은 전체 입력에 대한 것이며 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 입력의 경우 이 필드는 사용자 스크립트가 한 번의 run() 호출에서 처리할 수 있는 파일 수입니다. TabularDataset 입력의 경우 이 필드는 사용자 스크립트가 한 번의 run() 호출에서 처리할 수 있는 대략적인 데이터 크기입니다. 예제 값은 1024, 1024KB, 10MB 및 1GB입니다. (선택 사항, 기본값은 FileDataset의 경우 10개 파일, TabularDataset의 경우 1MB입니다.)

source_directory
str
필수

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

description
str
필수

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

logging_level
str
필수

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

run_invocation_timeout
int
필수

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

run_max_try
int
필수

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

append_row_file_name
str
필수

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

allowed_failed_count
int
필수

처리하는 동안 무시해야 하는 실패한 미니 일괄 처리의 수입니다. 실패 횟수가 이 값을 초과하면 작업이 중단됩니다. 이 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아닌 전체 입력에 대한 값입니다. 범위는 [-1, int.max]입니다. -1은 처리 중 모든 실패를 무시함을 나타냅니다. 미니 일괄 처리가 처음 처리될 때 실패하고 두 번째 시도에서 성공할 수 있습니다. 첫 번째와 두 번째 시간 사이의 검사는 실패한 것으로 계산됩니다. 두 번째 시간 이후의 검사는 실패한 것으로 계산되지 않습니다. –error_threshold, –allowed_failed_count, –allowed_failed_percent 인수가 함께 작동할 수 있습니다. 값을 여러 개 지정할 경우 그 중 하나를 초과하면 작업이 중단됩니다.

allowed_failed_percent
float
필수

처리하는 동안 무시해야 하는 실패한 미니 일괄 처리의 백분율입니다. 실패 백분율이 이 값을 초과하면 작업이 중단됩니다. 이 임계값은 run() 메서드로 전송된 개별 미니 일괄 처리가 아닌 전체 입력에 대한 값입니다. 범위는 [0, 100]입니다. 100 또는 100.0은 처리 중에 발생하는 실패를 모두 무시합니다. 모든 미니 일괄 처리가 예약된 후에 검사가 시작됩니다. –error_threshold, –allowed_failed_count, –allowed_failed_percent 인수가 함께 작동할 수 있습니다. 값을 여러 개 지정할 경우 그 중 하나를 초과하면 작업이 중단됩니다.

partition_keys
List[str]
필수

데이터 세트를 미니 일괄 처리로 분할하는 데 사용되는 키입니다. 지정할 경우 키가 같은 데이터가 동일한 미니 일괄 처리로 분할됩니다. partition_keys 및 mini_batch_size를 모두 지정하면 오류가 발생합니다. 각각 입력 데이터 세트를 분할하는 데 사용되는 키인 str 요소의 목록이어야 합니다. 그러나 PipelineParameter로 승격된 경우 현재 PipelineParameter에서 목록 형식이 지원되지 않으므로 기본값은 목록의 json 덤프 str이어야 합니다. 입력은 분할된 데이터 세트여야 하며, 올바르게 작동하려면 partition_keys가 모든 입력 데이터 세트의 키 하위 집합이어야 합니다.

environment_variables
Dict[str, str]
필수

환경 변수 이름 및 값의 사전입니다. 이러한 환경 변수는 사용자 스크립트가 실행되는 프로세스에서 설정됩니다.

설명

ParallelRunConfig 클래스는 ParallelRunStep 클래스에 대한 구성을 제공하는 데 사용됩니다. 대량의 데이터를 병렬로 처리하기 위해 ParallelRunConfig 및 ParallelRunStep을 함께 사용할 수 있습니다. 일반적인 사용 사례는 ML 모델을 학습하거나 오프라인 추론을 실행하여 관찰 일괄 처리에 대한 예측을 생성하는 것입니다. ParallelRunStep은 데이터를 병렬로 처리되는 일괄 처리로 분할하여 작동합니다. 일괄 처리 크기, 노드 수, 병렬 처리 속도를 높이는 기타 조정 가능한 매개 변수는 ParallelRunConfig 클래스로 제어할 수 있습니다. ParallelRunStep은 TabularDataset 또는 FileDataset를 입력으로 사용할 수 있습니다.

ParallelRunStep 및 ParallelRunConfig를 사용하려면 다음을 수행합니다.

  • ParallelRunConfig 개체를 만들어 일괄 처리 크기, 컴퓨팅 대상당 노드 수 및 사용자 지정 Python 스크립트에 대한 참조를 제어하는 매개 변수와 함께 일괄 처리 처리가 수행되는 방식을 지정합니다.

  • ParallelRunConfig 개체를 사용하는 ParallelRunStep 개체를 만들고 단계에 대한 입력 및 출력을 정의합니다.

  • 다른 파이프라인 단계 유형과 마찬가지로 Pipeline에서 구성된 ParallelRunStep 개체를 사용합니다.

일괄 처리 유추를 위해 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)

매개 변수

workspace
Workspace
필수

구성 데이터를 읽을 작업 영역입니다.

path
str
필수

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

save_to_yaml

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

save_to_yaml(path)

매개 변수

path
str
필수

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