RunConfiguration Класс

Представляет конфигурацию для выполнений экспериментов, предназначенных для различных целевых объектов вычислений в Машинном обучении Azure.

Объект RunConfiguration инкапсулирует сведения, необходимые для отправки обучающего выполнения в эксперименте. Как правило, объект RunConfiguration не создается напрямую, но берется из метода, возвращающего его, например, метода submit класса Experiment.

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

Коммуникатор, используемый в выполнении. Поддерживаемые коммуникаторы: None, ParameterServer, OpenMpi и IntelMpi. Помните, что для OpenMpi требуется пользовательский образ с установленным OpenMpi. Используйте ParameterServer или OpenMpi для кластеров AmlCompute. Используйте IntelMpi для распределенных заданий на обучение.

conda_dependencies
CondaDependencies
значение по умолчанию: None

Если оставить значение по умолчанию False, система создает среду Python, которая включает пакеты, указанные в conda_dependencies. Если задано значение True, существующая среда Python может быть указана с параметром python_interpreter.

auto_prepare_environment
bool
Обязательно

НЕ РЕКОМЕНДУЕТСЯ. Этот параметр больше не используется.

command
list[str] или str
значение по умолчанию: None

Команда, которая будет отправлена для выполнения. Свойство Command можно также использовать вместо свойства Script/Argument. Для отправки выполнения не допускается одновременное использование свойств Command и Script/Argument. Для отправки файла сценария с помощью свойства Command — ['python', 'train.py', '–arg1', arg1_val]; для выполнения фактической команды — ['ls']

_history_enabled
значение по умолчанию: None
_path
значение по умолчанию: None
_name
значение по умолчанию: None

Комментарии

Как правило, мы создаем системы машинного обучения для решения определенной проблемы. Например, задача может заключаться в поиске наиболее эффективной модели, способной ранжировать веб-страницы, которые могут обрабатываться в виде результатов поиска, соответствующих запросу. Поиск самой эффективной модели машинного обучения может потребовать испытания различных алгоритмов или использования других параметров и т. п.

В пакете SDK для Машинного обучения Azure мы используем концепцию эксперимента, чтобы проверить, связаны ли различные обучающие выполнения с проблемой, для решения которой они предназначены. В таком случае Experiment выступает в качестве логического контейнера для этих обучающих выполнений, что упрощает отслеживание обучающих выполнений, сравнение двух учебных обучающих выполнений напрямую и т. п.

RunConfiguration инкапсулирует параметры среды выполнения, необходимые для отправки обучающего выполнения в эксперименте. Он фиксирует как общую структуру обучающих запусков, предназначенных для решения одной и той же задачи машинного обучения, так и различия в параметрах конфигурации (например, скорость обучения, функция потери и т. д.), которые отличают разные запуски обучения друг от друга.

В типичных сценариях обучения RunConfiguration используется путем создания объекта ScriptRunConfig, который упаковывает как объект RunConfiguration, так и сценарий выполнения для обучения.

Конфигурация 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)

В следующем примере показано, как отправить обучающий сценарий в кластер с помощью свойства Command вместо свойств Script и arguments.


   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

Раздел конфигурации, используемый для настройки параметров распределенных заданий Paralleltask. Этот параметр вступает в силу, только если задать framework для Python, а communicator для ParallelTask. AmlCompute является единственным поддерживаемым типом вычислений для этой конфигурации.

data_references
dict[str, DataReferenceConfiguration]

Все источники данных доступны для выполнения во время выполнения на основе каждой конфигурации. Для каждого элемента словаря ключом является имя, присвоенное источнику данных, а значением — DataReferenceConfiguration.

data
dict[str, Data]

Все данные, которые должны быть доступны для выполнения во время выполнения.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Все данные, чтобы сделать объект datacache доступным для выполнения во время выполнения.

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> или <path>/aml_config/<name>.

Этот метод полезен при изменении конфигурации вручную или при совместном использовании конфигурации с интерфейсом командной строки.

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> или <path>/aml_config/<name>.

Этот метод полезен при изменении конфигурации вручную или при совместном использовании конфигурации с интерфейсом командной строки.

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

Параметры

separate_environment_yaml
bool
значение по умолчанию: False

Указывает, следует ли сохранить конфигурацию среды Conda. При значении True конфигурация среды Conda сохраняется в файл YAML с именем environment.yml.

path
str
значение по умолчанию: None

Выбранный пользователем корневой каталог для конфигураций выполнения. Обычно это репозиторий Git или корневой каталог проекта Python. Конфигурация удаляется из подкаталога с именем .azureml.

name
str
значение по умолчанию: None

[Обязательно] Имя файла конфигурации.

Возвращаемый тип

Исключения

UserErrorException

Атрибуты

auto_prepare_environment

Получает параметр auto_prepare_environment. Это нерекомендуемый и неиспользуемый параметр.

environment_variables

Переменные среды выполнения.

Возвращаемое значение

Переменные среды выполнения

Возвращаемый тип

target

Получает целевой объект вычислений, в котором запланировано выполнение задания.

Целевым объектом по умолчанию является local, что означает локальный компьютер. Доступные облачные целевые объекты вычислений можно найти с помощью функции compute_targets.

Возвращаемое значение

Имя целевого объекта

Возвращаемый тип

str