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

Относительный путь к файлу скрипта Python. Путь к файлу задается относительно исходного каталога, переданного в submit.

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

Аргументы командной строки для файла скрипта Python.

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

Целевая платформа, используемая в запуске. Поддерживаемые платформы: Python, PySpark, TensorFlow и PyTorch.

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

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

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

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

значение по умолчанию: None
auto_prepare_environment
Обязательно

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

command
list[str] или str

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

значение по умолчанию: None
_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

Определение среды. Это поле настраивает среду Python. Настройку можно выполнить для использования существующей среды Python или временной среды для эксперимента. Также это определение может задавать необходимые зависимости приложения.

max_run_duration_seconds
int

Максимальное время, допустимое для выполнения. Система будет пытаться автоматически отменить выполнение, если оно длится дольше, чем указано в этом значении.

node_count
int

Число узлов, используемых для задания.

priority
int

Приоритет задания для политики планирования.

history

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

spark

Если для платформы задано значение PySpark, в разделе конфигурации Spark задается значение по умолчанию SparkConf для отправленного задания.

hdi

Раздел конфигурации HDI вступает в силу, только если для целевого объекта задано вычисление Azure HDI. Конфигурация HDI используется для установки режима развертывания YARN. Режим развертывания по умолчанию — кластер.

docker

Раздел конфигурации Docker используется для задания переменных среды Docker.

tensorflow

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

mpi

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

pytorch

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

paralleltask

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

data_references

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

data

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

datacaches
<xref:buildin.list>[DatacacheConfiguration]

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

output_data

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

source_directory_data_store
str

Резервное хранилище данных для общей папки проекта.

amlcompute

Сведения о целевом объекте вычислений, создаваемом во время эксперимента. Конфигурация вступает в силу, только когда целевым объектом вычислений является AmlCompute.

kubernetescompute

Сведения о целевом объекте вычислений, который будет использоваться во время эксперимента. Конфигурация вступает в силу, только когда целевым объектом вычислений является KubernetesCompute.

services

Конечные точки для интерактивного взаимодействия с ресурсом вычислений. Допустимые конечные точки: 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

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

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

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

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

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

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

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

Тип Описание

Исключения

Тип Описание
UserErrorException

Атрибуты

auto_prepare_environment

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

environment_variables

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

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

Тип Описание

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

target

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

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

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

Тип Описание
str

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