RunConfiguration Класс
Представляет конфигурацию для выполнений экспериментов, предназначенных для различных целевых объектов вычислений в Машинном обучении Azure.
Объект RunConfiguration инкапсулирует сведения, необходимые для отправки обучающего выполнения в эксперименте. Как правило, объект RunConfiguration не создается напрямую, но берется из метода, возвращающего его, например, метода submit класса Experiment.
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)
Параметры
Имя | Описание |
---|---|
script
|
Относительный путь к файлу скрипта Python. Путь к файлу задается относительно исходного каталога, переданного в submit. Default value: None
|
arguments
|
Аргументы командной строки для файла скрипта Python. Default value: None
|
framework
|
Целевая платформа, используемая в запуске. Поддерживаемые платформы: Python, PySpark, TensorFlow и PyTorch. Default value: None
|
communicator
|
Коммуникатор, используемый в выполнении. Поддерживаемые коммуникаторы: None, ParameterServer, OpenMpi и IntelMpi. Помните, что для OpenMpi требуется пользовательский образ с установленным OpenMpi. Используйте ParameterServer или OpenMpi для кластеров AmlCompute. Используйте IntelMpi для распределенных заданий на обучение. Default value: None
|
conda_dependencies
|
Если оставить значение по умолчанию False, система создает среду Python, которая включает пакеты, указанные в Default value: None
|
auto_prepare_environment
Обязательно
|
НЕ РЕКОМЕНДУЕТСЯ. Этот параметр больше не используется. |
command
|
Команда, которая будет отправлена для выполнения. Свойство Command можно также использовать вместо свойства Script/Argument. Для отправки выполнения не допускается одновременное использование свойств Command и Script/Argument. Для отправки файла сценария с помощью свойства Command — ['python', 'train.py', '–arg1', arg1_val]; для выполнения фактической команды — ['ls'] Default value: None
|
_history_enabled
|
Default value: None
|
_path
|
Default value: None
|
_name
|
Default value: 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
|
Максимальное время, допустимое для выполнения. Система будет пытаться автоматически отменить выполнение, если оно длится дольше, чем указано в этом значении. |
node_count
|
Число узлов, используемых для задания. |
priority
|
Приоритет задания для политики планирования. |
history
|
Раздел конфигурации, используемый для отключения и включения функции ведения журнала экспериментов. |
spark
|
Если для платформы задано значение PySpark, в разделе конфигурации Spark задается значение по умолчанию SparkConf для отправленного задания. |
hdi
|
Раздел конфигурации HDI вступает в силу, только если для целевого объекта задано вычисление Azure HDI. Конфигурация HDI используется для установки режима развертывания YARN. Режим развертывания по умолчанию — кластер. |
docker
|
Раздел конфигурации Docker используется для задания переменных среды Docker. |
tensorflow
|
Раздел конфигурации, используемый для настройки распределенных параметров TensorFlow.
Этот параметр вступает в силу, только если задать |
mpi
|
Раздел конфигурации, используемый для настройки параметров задания распределенного MPI.
Этот параметр вступает в силу только, если задать |
pytorch
|
Раздел конфигурации, используемый для настройки параметров распределенных заданий PyTorch.
Этот параметр вступает в силу, только если задать |
paralleltask
|
Раздел конфигурации, используемый для настройки параметров распределенных заданий Paralleltask.
Этот параметр вступает в силу, только если задать |
data_references
|
Все источники данных доступны для выполнения во время выполнения на основе каждой конфигурации. Для каждого элемента словаря ключом является имя, присвоенное источнику данных, а значением — DataReferenceConfiguration. |
data
|
Все данные, которые должны быть доступны для выполнения во время выполнения. |
datacaches
|
<xref:buildin.list>[DatacacheConfiguration]
Все данные, чтобы сделать объект datacache доступным для выполнения во время выполнения. |
output_data
|
Все выходные данные, которые необходимо отправить и отслеживать для этого выполнения. |
source_directory_data_store
|
Резервное хранилище данных для общей папки проекта. |
amlcompute
|
Сведения о целевом объекте вычислений, создаваемом во время эксперимента. Конфигурация вступает в силу, только когда целевым объектом вычислений является AmlCompute. |
kubernetescompute
|
Сведения о целевом объекте вычислений, который будет использоваться во время эксперимента. Конфигурация вступает в силу, только когда целевым объектом вычислений является KubernetesCompute. |
services
|
Конечные точки для интерактивного взаимодействия с ресурсом вычислений. Допустимые конечные точки: Jupyter, JupyterLab, VS Code, Tensorboard, SSH и пользовательские порты. |
Методы
delete |
Удаление файла конфигурации запуска. Вызывает UserErrorException, если файл конфигурации не найден. |
load |
Загрузка ранее сохраненного файла конфигурации запуска из файла на диске. Если Если |
save |
Сохранение RunConfiguration в файл на диске. UserErrorException вызывается, если:
Если Если Этот метод полезен при изменении конфигурации вручную или при совместном использовании конфигурации с интерфейсом командной строки. |
delete
Удаление файла конфигурации запуска.
Вызывает UserErrorException, если файл конфигурации не найден.
static delete(path, name)
Параметры
Имя | Описание |
---|---|
path
Обязательно
|
Выбранный пользователем корневой каталог для конфигураций выполнения. Обычно это репозиторий Git или корневой каталог проекта Python. Конфигурация удаляется из подкаталога с именем .azureml. |
name
Обязательно
|
Имя файла конфигурации. |
Исключения
Тип | Описание |
---|---|
UserErrorException
|
load
Загрузка ранее сохраненного файла конфигурации запуска из файла на диске.
Если path
указывает на файл, RunConfiguration загружается из этого файла.
Если path
указывает на каталог, который должен быть каталогом проекта, RunConfiguration загружается из <path>/.azureml/<name> или <path>/aml_config/<name>.
static load(path, name=None)
Параметры
Имя | Описание |
---|---|
path
Обязательно
|
Выбранный пользователем корневой каталог для конфигураций выполнения. Обычно это репозиторий Git или корневой каталог проекта Python. Для обеспечения обратной совместимости конфигурация также будет загружаться из каталога .azureml или aml_config. Если файл в этих каталогах отсутствует, файл загружается по указанному пути. |
name
|
Имя файла конфигурации. Default value: 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. Default value: False
|
path
|
Выбранный пользователем корневой каталог для конфигураций выполнения. Обычно это репозиторий Git или корневой каталог проекта Python. Конфигурация удаляется из подкаталога с именем .azureml. Default value: None
|
name
|
[Обязательно] Имя файла конфигурации. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Исключения
Тип | Описание |
---|---|
UserErrorException
|
Атрибуты
auto_prepare_environment
Получает параметр auto_prepare_environment
. Это нерекомендуемый и неиспользуемый параметр.
environment_variables
Переменные среды выполнения.
Возвращаемое значение
Тип | Описание |
---|---|
Переменные среды выполнения |
target
Получает целевой объект вычислений, в котором запланировано выполнение задания.
Целевым объектом по умолчанию является local, что означает локальный компьютер. Доступные облачные целевые объекты вычислений можно найти с помощью функции compute_targets.
Возвращаемое значение
Тип | Описание |
---|---|
Имя целевого объекта |