RunConfiguration 클래스
Azure Machine Learning에서 여러 컴퓨팅 대상을 대상으로 하는 실험 실행에 대한 구성을 나타냅니다.
RunConfiguration 개체는 실험에서 학습 실행을 제출하는 데 필요한 정보를 캡슐화합니다. 일반적으로 RunConfiguration 개체를 직접 만들지 않고 Experiment 클래스의 submit 메서드와 같이 반환하는 메서드에서 하나를 가져옵니다.
RunConfiguration은 트리거하는 실행의 종류에 따라 다른 형식의 구성 단계에서도 사용되는 기본 환경 구성입니다. 예를 들어 PythonScriptStep 설정 시 단계의 RunConfiguration 개체에 액세스하고 Conda 종속성을 구성하거나 실행에 대한 환경 속성에 액세스할 수 있습니다.
실행 구성 예제는 모델 학습을 위한 컴퓨팅 대상 선택 및 사용을 참조하세요.
기본 설정을 사용하여 RunConfiguration을 초기화합니다.
- 상속
-
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElementRunConfiguration
생성자
RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)
매개 변수
Name | Description |
---|---|
script
|
Python 스크립트 파일의 상대 경로입니다. 파일 경로는 submit에 전달된 소스 디렉터리에 상대적입니다. Default value: None
|
arguments
|
Python 스크립트 파일에 대한 명령줄 인수입니다. Default value: None
|
framework
|
실행에 사용된 대상 프레임워크입니다. 지원되는 프레임워크는 Python, PySpark, TensorFlow 및 PyTorch입니다. Default value: None
|
communicator
|
실행에 사용된 Communicator입니다. 지원되는 Communicator는 None, ParameterServer, OpenMpi 및 IntelMpi입니다. OpenMpi에는 OpenMpi가 설치된 사용자 지정 이미지가 필요합니다. AmlCompute 클러스터에 ParameterServer 또는 OpenMpi를 사용합니다. 분산 학습 작업에 IntelMpi를 사용합니다. Default value: None
|
conda_dependencies
|
기본값인 False로 두면 시스템은 Default value: None
|
auto_prepare_environment
필수
|
사용되지 않습니다. 이 설정은 사용되지 않습니다. |
command
|
실행을 위해 제출할 명령입니다. 스크립트/인수 대신 명령 속성을 사용할 수도 있습니다. 명령 및 스크립트/인수 속성을 함께 사용하여 실행을 제출할 수 없습니다. 명령 속성을 사용하여 스크립트 파일을 제출하려면 - ['python', 'train.py', '–arg1', arg1_val] 실제 명령을 실행하려면 - ['ls'] Default value: None
|
_history_enabled
|
Default value: None
|
_path
|
Default value: None
|
_name
|
Default value: 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)
변수
Name | Description |
---|---|
environment
|
환경 정의입니다. 이 필드는 Python 환경을 구성합니다. 기존 Python 환경을 사용하도록 구성하거나 실험을 위한 임시 환경을 설정하도록 구성할 수 있습니다. 이 정의는 필요한 애플리케이션 종속성을 설정하는 역할도 담당합니다. |
max_run_duration_seconds
|
실행에 허용된 최대 시간입니다. 이 값보다 오래 걸리면 시스템이 자동으로 실행을 취소하려고 시도합니다. |
node_count
|
작업에 사용할 노드 수입니다. |
priority
|
스케줄링 정책에 대한 작업의 우선 순위입니다. |
history
|
실험 기록 로깅 기능을 사용하지 않도록 설정 및 사용하도록 설정하는 데 사용되는 구성 섹션입니다. |
spark
|
플랫폼이 PySpark로 설정되면 Spark 구성 섹션은 제출된 작업에 대한 기본 SparkConf를 설정하는 데 사용됩니다. |
hdi
|
HDI 구성 섹션은 대상이 Azure HDI 컴퓨팅으로 설정된 경우에만 적용됩니다. HDI 구성은 YARN 배포 모드를 설정하는 데 사용됩니다. 기본 배포 모드는 클러스터입니다. |
docker
|
Docker 구성 섹션은 Docker 환경에 대한 변수를 설정하는 데 사용됩니다. |
tensorflow
|
분산 TensorFlow 매개 변수를 구성하는 데 사용되는 구성 섹션입니다.
이 매개 변수는 |
mpi
|
분산 MPI 작업 매개 변수를 구성하는 데 사용되는 구성 섹션입니다.
이 매개 변수는 |
pytorch
|
분산 PyTorch 작업 매개 변수를 구성하는 데 사용되는 구성 섹션입니다.
이 매개 변수는 |
paralleltask
|
분산 병렬 작업 매개 변수를 구성하는 데 사용되는 구성 섹션입니다.
이 매개 변수는 |
data_references
|
모든 데이터 원본은 각 구성을 기반으로 실행하는 동안 사용할 수 있습니다. 사전의 각 항목에 대해 키는 데이터 원본에 지정된 이름이고 값은 DataReferenceConfiguration입니다. |
data
|
실행 중 실행에 사용할 수 있는 모든 데이터입니다. |
datacaches
|
<xref:buildin.list>[DatacacheConfiguration]
실행 중에 데이터 캐시를 실행할 수 있도록 하는 모든 데이터입니다. |
output_data
|
이 실행에 대해 업로드 및 추적해야 하는 모든 출력입니다. |
source_directory_data_store
|
프로젝트 공유에 대한 백업 데이터 저장소입니다. |
amlcompute
|
실험 중 만들 컴퓨팅 대상의 세부 정보입니다. 구성은 컴퓨팅 대상이 AmlCompute인 경우에만 적용됩니다. |
kubernetescompute
|
실험 중에 사용할 컴퓨팅 대상의 세부 정보입니다. 구성은 컴퓨팅 대상이 KubernetesCompute인 경우에만 적용됩니다. |
services
|
컴퓨팅 리소스와 상호 작용할 엔드포인트입니다. 허용되는 엔드포인트는 Jupyter, JupyterLab, VS Code, Tensorboard, SSH 및 사용자 지정 포트입니다. |
메서드
delete |
실행 구성 파일을 삭제합니다. 구성 파일을 찾을 수 없으면 UserErrorException을 발생시킵니다. |
load |
디스크에 있는 파일에서 이전에 저장한 실행 구성 파일을 로드합니다.
|
save |
RunConfiguration을 디스크의 파일에 저장합니다. 다음과 같은 경우 UserErrorException이 발생합니다.
이 메서드는 구성을 수동으로 편집하거나 CLI와 구성을 공유할 때 유용합니다. |
delete
실행 구성 파일을 삭제합니다.
구성 파일을 찾을 수 없으면 UserErrorException을 발생시킵니다.
static delete(path, name)
매개 변수
Name | Description |
---|---|
path
필수
|
사용자가 실행 구성을 위해 루트 디렉터리를 선택했습니다. 일반적으로 이는 Git 리포지토리 또는 Python 프로젝트 루트 디렉터리입니다. .azureml이라는 하위 디렉터리에서 구성이 삭제됩니다. |
name
필수
|
구성 파일 이름입니다. |
예외
형식 | Description |
---|---|
UserErrorException
|
load
디스크에 있는 파일에서 이전에 저장한 실행 구성 파일을 로드합니다.
path
가 파일을 가리키는 경우 해당 파일에서 RunConfiguration이 로드됩니다.
path
가 프로젝트 디렉터리를 가리키는 경우 RunConfiguration은 <path>/.azureml/<name> 또는 <path>/aml_config/<name>에서 로드됩니다.
static load(path, name=None)
매개 변수
Name | Description |
---|---|
path
필수
|
사용자가 실행 구성을 위해 루트 디렉터리를 선택했습니다. 일반적으로 이는 Git 리포지토리 또는 Python 프로젝트 루트 디렉터리입니다. 이전 버전과의 호환성을 위해 구성은 .azureml 또는 aml_config 하위 디렉터리에서도 로드됩니다. 파일이 해당 디렉터리에 없으면 파일은 지정된 경로에서 로드됩니다. |
name
|
구성 파일 이름입니다. Default value: None
|
반환
형식 | Description |
---|---|
실행 구성 개체입니다. |
예외
형식 | Description |
---|---|
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)
매개 변수
Name | Description |
---|---|
separate_environment_yaml
|
Conda 환경 구성을 저장할지 여부를 나타냅니다. True이면 Conda 환경 구성이 'environment.yml'이라는 YAML 파일에 저장됩니다. Default value: False
|
path
|
사용자가 실행 구성을 위해 루트 디렉터리를 선택했습니다. 일반적으로 이는 Git 리포지토리 또는 Python 프로젝트 루트 디렉터리입니다. 구성은 .azureml이라는 하위 디렉터리에 저장됩니다. Default value: None
|
name
|
[필수] 구성 파일 이름입니다. Default value: None
|
반환
형식 | Description |
---|---|
예외
형식 | Description |
---|---|
UserErrorException
|
특성
auto_prepare_environment
auto_prepare_environment
매개 변수를 가져옵니다. 더 이상 사용되지 않는 설정입니다.
environment_variables
target
작업이 실행되도록 예약된 컴퓨팅 대상을 가져옵니다.
기본 대상은 로컬 컴퓨터를 참조하는 "로컬"입니다. 사용 가능한 클라우드 컴퓨팅 대상은 compute_targets 함수를 사용하여 찾을 수 있습니다.
반환
형식 | Description |
---|---|
대상 이름입니다. |