RunConfiguration 클래스

Azure Machine Learning에서 여러 컴퓨팅 대상을 대상으로 하는 실험 실행에 대한 구성을 나타냅니다.

RunConfiguration 개체는 실험에서 학습 실행을 제출하는 데 필요한 정보를 캡슐화합니다. 일반적으로 RunConfiguration 개체를 직접 만들지 않고 Experiment 클래스의 submit 메서드와 같이 반환하는 메서드에서 하나를 가져옵니다.

RunConfiguration은 트리거하는 실행의 종류에 따라 다른 형식의 구성 단계에서도 사용되는 기본 환경 구성입니다. 예를 들어 PythonScriptStep 설정 시 단계의 RunConfiguration 개체에 액세스하고 Conda 종속성을 구성하거나 실행에 대한 환경 속성에 액세스할 수 있습니다.

실행 구성 예제는 모델 학습을 위한 컴퓨팅 대상 선택 및 사용을 참조하세요.

기본 설정을 사용하여 RunConfiguration을 초기화합니다.

상속
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration

생성자

RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)

매개 변수

script
str
기본값: None

Python 스크립트 파일의 상대 경로입니다. 파일 경로는 submit에 전달된 소스 디렉터리에 상대적입니다.

arguments
list[str]
기본값: None

Python 스크립트 파일에 대한 명령줄 인수입니다.

framework
str
기본값: None

실행에 사용된 대상 프레임워크입니다. 지원되는 프레임워크는 Python, PySpark, TensorFlow 및 PyTorch입니다.

communicator
str
기본값: None

실행에 사용된 Communicator입니다. 지원되는 Communicator는 None, ParameterServer, OpenMpi 및 IntelMpi입니다. OpenMpi에는 OpenMpi가 설치된 사용자 지정 이미지가 필요합니다. AmlCompute 클러스터에 ParameterServer 또는 OpenMpi를 사용합니다. 분산 학습 작업에 IntelMpi를 사용합니다.

conda_dependencies
CondaDependencies
기본값: None

기본값인 False로 두면 시스템은 conda_dependencies에 지정된 패키지를 포함하는 Python 환경을 만듭니다. true로 설정하면 python_interpreter 설정으로 기존 Python 환경을 지정할 수 있습니다.

auto_prepare_environment
bool
필수

사용되지 않습니다. 이 설정은 사용되지 않습니다.

command
list[str] 또는 str
기본값: None

실행을 위해 제출할 명령입니다. 스크립트/인수 대신 명령 속성을 사용할 수도 있습니다. 명령 및 스크립트/인수 속성을 함께 사용하여 실행을 제출할 수 없습니다. 명령 속성을 사용하여 스크립트 파일을 제출하려면 - ['python', 'train.py', '–arg1', arg1_val] 실제 명령을 실행하려면 - ['ls']

_history_enabled
기본값: None
_path
기본값: None
_name
기본값: None

설명

Microsoft는 일반적으로 특정 문제를 해결하기 위해 기계 학습 컴퓨터를 빌드합니다. 예를 들어, 쿼리에 해당하는 검색 결과로 제공될 수 있는 웹 페이지의 순위를 지정하는 최상의 모델을 찾는 데 관심이 있을 수 있습니다. 최고의 기계 학습 모델을 찾기 위해 다른 알고리즘을 시도하거나 다른 매개 변수 설정 등을 고려해야 할 수 있습니다.

Azure Machine Learning SDK에서는 실험의 개념을 사용하여 다양한 학습 실행이 해결하려는 문제와 관련되어 있다는 개념을 포착합니다. 그런 다음 Experiment는 이러한 학습 실행의 논리적 컨테이너 역할을 하여 학습 실행 간의 진행 상황을 쉽게 추적하고 두 개의 학습 실행을 직접 비교하는 등의 작업을 수행합니다.

RunConfiguration은 실험에서 학습 실행을 제출하는 데 필요한 실행 환경 설정을 캡슐화합니다. 동일한 기계 학습 문제를 해결하도록 설계된 학습 실행의 공유 구조뿐만 아니라 서로 고유한 학습 실행을 구별하는 구성 매개 변수(예: 학습 속도, 손실 함수 등)의 차이점을 모두 캡처합니다.

일반적인 학습 시나리오에서 RunConfiguration은 RunConfiguration 개체와 학습용 실행 스크립트를 함께 패키지하는 ScriptRunConfig 개체를 만들어 사용됩니다.

RunConfiguration의 구성에는 다음이 포함됩니다.

  • 제출된 스크립트를 포함하여 실험 소스 디렉터리를 묶습니다.

  • 제출된 스크립트에 대한 명령줄 인수를 설정합니다.

  • Python 인터프리터의 경로를 구성합니다.

  • 애플리케이션 종속성을 관리하기 위해 Conda 구성을 가져옵니다. 작업 제출 프로세스는 구성을 사용하여 임시 Conda 환경을 프로비저닝하고 내에서 애플리케이션을 시작할 수 있습니다. 임시 환경은 캐시되어 후속 실행에서 재사용됩니다.

  • Docker 및 사용자 지정 기본 이미지를 선택적으로 사용합니다.

  • 여러 유형의 Azure 컴퓨팅에 실험을 제출하는 선택 사항입니다.

  • 입력을 구체화하고 출력을 업로드하는 방법을 구성하는 선택 사항입니다.

  • spark 및 tensorflow와 같은 일반적인 런타임에 대한 고급 런타임 설정입니다.

다음 예는 로컬 컴퓨터에서 학습 스크립트를 제출하는 방법을 보여 줍니다.


   from azureml.core import ScriptRunConfig, RunConfiguration, Experiment

   # create or load an experiment
   experiment = Experiment(workspace, "MyExperiment")
   # run a trial from the train.py code in your current directory
   config = ScriptRunConfig(source_directory='.', script='train.py',
       run_config=RunConfiguration())
   run = experiment.submit(config)

다음 예에서는 스크립트 및 인수 대신 명령 속성을 사용하여 클러스터에서 학습 스크립트를 제출하는 방법을 보여 줍니다.


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['python', 'train.py', '--arg1', arg1_val],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

다음 샘플에서는 클러스터에서 명령을 실행하는 방법을 보여 줍니다.


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['ls', '-l'],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

변수

environment
Environment

환경 정의입니다. 이 필드는 Python 환경을 구성합니다. 기존 Python 환경을 사용하도록 구성하거나 실험을 위한 임시 환경을 설정하도록 구성할 수 있습니다. 이 정의는 필요한 애플리케이션 종속성을 설정하는 역할도 담당합니다.

max_run_duration_seconds
int

실행에 허용된 최대 시간입니다. 이 값보다 오래 걸리면 시스템이 자동으로 실행을 취소하려고 시도합니다.

node_count
int

작업에 사용할 노드 수입니다.

priority
int

스케줄링 정책에 대한 작업의 우선 순위입니다.

history
HistoryConfiguration

실험 기록 로깅 기능을 사용하지 않도록 설정 및 사용하도록 설정하는 데 사용되는 구성 섹션입니다.

spark
SparkConfiguration

플랫폼이 PySpark로 설정되면 Spark 구성 섹션은 제출된 작업에 대한 기본 SparkConf를 설정하는 데 사용됩니다.

hdi
HdiConfiguration

HDI 구성 섹션은 대상이 Azure HDI 컴퓨팅으로 설정된 경우에만 적용됩니다. HDI 구성은 YARN 배포 모드를 설정하는 데 사용됩니다. 기본 배포 모드는 클러스터입니다.

docker
DockerConfiguration

Docker 구성 섹션은 Docker 환경에 대한 변수를 설정하는 데 사용됩니다.

tensorflow
TensorflowConfiguration

분산 TensorFlow 매개 변수를 구성하는 데 사용되는 구성 섹션입니다. 이 매개 변수는 framework가 TensorFlow로, communicator가 ParameterServer로 설정된 경우에만 적용됩니다. AmlCompute는 이 구성에 대해 지원되는 유일한 컴퓨팅입니다.

mpi
MpiConfiguration

분산 MPI 작업 매개 변수를 구성하는 데 사용되는 구성 섹션입니다. 이 매개 변수는 framework가 Python으로 설정되고 communicator가 OpenMpi 또는 IntelMpi로 설정된 경우에만 적용됩니다. AmlCompute는 이 구성에 대해 지원되는 유일한 컴퓨팅 형식입니다.

pytorch
PyTorchConfiguration

분산 PyTorch 작업 매개 변수를 구성하는 데 사용되는 구성 섹션입니다. 이 매개 변수는 framework가 PyTorch로 설정되고 communicator가 Nccl 또는 Gloo로 설정된 경우에만 적용됩니다. AmlCompute는 이 구성에 대해 지원되는 유일한 컴퓨팅 형식입니다.

paralleltask
ParallelTaskConfiguration

분산 병렬 작업 매개 변수를 구성하는 데 사용되는 구성 섹션입니다. 이 매개 변수는 framework가 Python으로 설정되고 communicator가 ParallelTask로 설정된 경우에만 적용됩니다. AmlCompute는 이 구성에 대해 지원되는 유일한 컴퓨팅 형식입니다.

data_references
dict[str, DataReferenceConfiguration]

모든 데이터 원본은 각 구성을 기반으로 실행하는 동안 사용할 수 있습니다. 사전의 각 항목에 대해 키는 데이터 원본에 지정된 이름이고 값은 DataReferenceConfiguration입니다.

data
dict[str, Data]

실행 중 실행에 사용할 수 있는 모든 데이터입니다.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

실행 중에 데이터 캐시를 실행할 수 있도록 하는 모든 데이터입니다.

output_data
OutputData

이 실행에 대해 업로드 및 추적해야 하는 모든 출력입니다.

source_directory_data_store
str

프로젝트 공유에 대한 백업 데이터 저장소입니다.

amlcompute
AmlComputeConfiguration

실험 중 만들 컴퓨팅 대상의 세부 정보입니다. 구성은 컴퓨팅 대상이 AmlCompute인 경우에만 적용됩니다.

kubernetescompute
KubernetesComputeConfiguration

실험 중에 사용할 컴퓨팅 대상의 세부 정보입니다. 구성은 컴퓨팅 대상이 KubernetesCompute인 경우에만 적용됩니다.

services
dict[str, ApplicationEndpointConfiguration]

컴퓨팅 리소스와 상호 작용할 엔드포인트입니다. 허용되는 엔드포인트는 Jupyter, JupyterLab, VS Code, Tensorboard, SSH 및 사용자 지정 포트입니다.

메서드

delete

실행 구성 파일을 삭제합니다.

구성 파일을 찾을 수 없으면 UserErrorException을 발생시킵니다.

load

디스크에 있는 파일에서 이전에 저장한 실행 구성 파일을 로드합니다.

path가 파일을 가리키는 경우 해당 파일에서 RunConfiguration이 로드됩니다.

path가 프로젝트 디렉터리를 가리키는 경우 RunConfiguration은 <path>/.azureml/<name> 또는 <path>/aml_config/<name>에서 로드됩니다.

save

RunConfiguration을 디스크의 파일에 저장합니다.

다음과 같은 경우 UserErrorException이 발생합니다.

  • RunConfiguration은 지정된 이름으로 저장할 수 없습니다.

  • name 매개 변수가 지정되지 않았습니다.

  • path 매개 변수가 잘못되었습니다.

path가 <dir_path>/<file_name> 형식인 경우(여기서 <dir_path>는 유효한 디렉터리임), RunConfiguration은 <dir_path>/<file_name>에 저장됩니다.

path가 프로젝트 디렉터리를 가리키는 경우 RunConfiguration은 <path>/.azureml/<name> or <path>/aml_config/<name>에 저장됩니다.

이 메서드는 구성을 수동으로 편집하거나 CLI와 구성을 공유할 때 유용합니다.

delete

실행 구성 파일을 삭제합니다.

구성 파일을 찾을 수 없으면 UserErrorException을 발생시킵니다.

static delete(path, name)

매개 변수

path
str
필수

사용자가 실행 구성을 위해 루트 디렉터리를 선택했습니다. 일반적으로 이는 Git 리포지토리 또는 Python 프로젝트 루트 디렉터리입니다. .azureml이라는 하위 디렉터리에서 구성이 삭제됩니다.

name
str
필수

구성 파일 이름입니다.

예외

UserErrorException

load

디스크에 있는 파일에서 이전에 저장한 실행 구성 파일을 로드합니다.

path가 파일을 가리키는 경우 해당 파일에서 RunConfiguration이 로드됩니다.

path가 프로젝트 디렉터리를 가리키는 경우 RunConfiguration은 <path>/.azureml/<name> 또는 <path>/aml_config/<name>에서 로드됩니다.

static load(path, name=None)

매개 변수

path
str
필수

사용자가 실행 구성을 위해 루트 디렉터리를 선택했습니다. 일반적으로 이는 Git 리포지토리 또는 Python 프로젝트 루트 디렉터리입니다. 이전 버전과의 호환성을 위해 구성은 .azureml 또는 aml_config 하위 디렉터리에서도 로드됩니다. 파일이 해당 디렉터리에 없으면 파일은 지정된 경로에서 로드됩니다.

name
str
기본값: None

구성 파일 이름입니다.

반환

실행 구성 개체입니다.

반환 형식

예외

UserErrorException

save

RunConfiguration을 디스크의 파일에 저장합니다.

다음과 같은 경우 UserErrorException이 발생합니다.

  • RunConfiguration은 지정된 이름으로 저장할 수 없습니다.

  • name 매개 변수가 지정되지 않았습니다.

  • path 매개 변수가 잘못되었습니다.

path가 <dir_path>/<file_name> 형식인 경우(여기서 <dir_path>는 유효한 디렉터리임), RunConfiguration은 <dir_path>/<file_name>에 저장됩니다.

path가 프로젝트 디렉터리를 가리키는 경우 RunConfiguration은 <path>/.azureml/<name> or <path>/aml_config/<name>에 저장됩니다.

이 메서드는 구성을 수동으로 편집하거나 CLI와 구성을 공유할 때 유용합니다.

save(path=None, name=None, separate_environment_yaml=False)

매개 변수

separate_environment_yaml
bool
기본값: False

Conda 환경 구성을 저장할지 여부를 나타냅니다. True이면 Conda 환경 구성이 'environment.yml'이라는 YAML 파일에 저장됩니다.

path
str
기본값: None

사용자가 실행 구성을 위해 루트 디렉터리를 선택했습니다. 일반적으로 이는 Git 리포지토리 또는 Python 프로젝트 루트 디렉터리입니다. 구성은 .azureml이라는 하위 디렉터리에 저장됩니다.

name
str
기본값: None

[필수] 구성 파일 이름입니다.

반환 형식

예외

UserErrorException

특성

auto_prepare_environment

auto_prepare_environment 매개 변수를 가져옵니다. 더 이상 사용되지 않는 설정입니다.

environment_variables

런타임 환경 변수입니다.

반환

런타임 변수

반환 형식

target

작업이 실행되도록 예약된 컴퓨팅 대상을 가져옵니다.

기본 대상은 로컬 컴퓨터를 참조하는 "로컬"입니다. 사용 가능한 클라우드 컴퓨팅 대상은 compute_targets 함수를 사용하여 찾을 수 있습니다.

반환

대상 이름입니다.

반환 형식

str