RunConfiguration 类

表示针对 Azure 机器学习中不同计算目标的试验运行配置。

RunConfiguration 对象封装在试验中提交训练运行所需的信息。 通常,不会直接创建 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

Python 脚本文件的相对路径。 相对于传递给 submit 的源目录的文件路径。

默认值: None
arguments

Python 脚本文件的命令行参数。

默认值: None
framework
str

运行中使用的目标框架。 受支持的框架包括 Python、PySpark、TensorFlow 和 PyTorch。

默认值: None
communicator
str

运行中使用的通信器。 受支持通信器包括 None、ParameterServer、OpenMpi 和 IntelMpi。 请记住,OpenMpi 需要安装 OpenMpi 的自定义映像。 对 AmlCompute 群集使用 ParameterServer 或 OpenMpi。 将 IntelMpi 用于分布式训练作业。

默认值: None
conda_dependencies

当保留为默认值 False 时,系统将创建一个 Python 环境,其中包括 conda_dependencies 中指定的包。 如果设置为 True,可以通过 python_interpreter 设置指定现有 Python 环境。

默认值: None
auto_prepare_environment
必需

已弃用。 该设置不再使用。

command
list[str] 或 str

要为运行提交的命令。 命令属性也可以用来替代脚本/参数。 命令和脚本/参数属性不能一起用于提交运行。 要上传脚本文件,使用命令参数 - ['python', 'train.py', '–arg1', arg1_val],运行实际命令 - ['ls']

默认值: None
_history_enabled
默认值: None
_path
默认值: None
_name
默认值: None

注解

我们通常生成机器学习系统来解决特定问题。 例如,我们可能需要找到最适合的模型来对网页进行排序,这可能被用作与查询相对应的搜索结果。 在搜索最适合的机器学习模型时,我们可能需要尝试不同的算法,或考虑不同的参数设置等。

在 Azure 机器学习 SDK 中,我们使用试验的概念来抓住这样一个想法,即不同的训练允许与其试图解决的问题是相关的。 然后 Experiment 充当这些训练运行的逻辑容器,以便更轻松地跟踪训练运行的进度、直接比较两个训练运行,等等。

RunConfiguration 封装在试验中提交训练运行所需的执行环境设置。 它捕获旨在解决相同机器学习问题的训练运行的共享结构,以及配置参数 (的差异,例如,学习率、损失函数等,) 区分不同的训练运行。

在典型的训练方案中,通过创建对象 ScriptRunConfig 来使用 RunConfiguration,该对象将 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)

以下示例演示如何使用命令属性(而不是脚本和参数)在群集上提交训练脚本。


   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

用于配置分布式并行任务作业参数的配置节。 仅当 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 和 Custom 端口。

方法

delete

删除运行配置文件。

如果找不到配置文件,则引发 UserErrorException

load

从磁盘上文件加载以前保存的运行配置文件。

如果 path 指向某文件,则从该文件加载 RunConfiguration。

如果 path 指向某目录(应该为项目目录),则从 <path>/.azureml/<name> 或 <path>/aml_config/<name> 加载 RunConfiguration。

save

将 RunConfiguration 保存到磁盘上的文件。

引发 UserErrorException 的情况:

  • 无法用指定名称保存 RunConfiguration。

  • 未指定 name 参数。

  • path 参数无效。

如果 path 的格式为 <dir_path>/<file_name>,其中 <dir_path> 是有效目录,则 RunConfiguration 的保存位置为 <dir_path>/<file_name>。

如果 path 指向某目录(应该为项目目录),则在 <path>/.azureml/<name> 或 <path>/aml_config/<name> 保存 RunConfiguration。

在手动编辑配置或与 CLI 共享配置时,此方法非常有用。

delete

删除运行配置文件。

如果找不到配置文件,则引发 UserErrorException

static delete(path, name)

参数

名称 说明
path
必需
str

用户为运行配置选择根目录。 通常,这是 Git 存储库或 Python 项目根目录。 将从名为 .azureml 的子目录中删除配置。

name
必需
str

配置文件名称。

例外

类型 说明
UserErrorException

load

从磁盘上文件加载以前保存的运行配置文件。

如果 path 指向某文件,则从该文件加载 RunConfiguration。

如果 path 指向某目录(应该为项目目录),则从 <path>/.azureml/<name> 或 <path>/aml_config/<name> 加载 RunConfiguration。

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 指向某目录(应该为项目目录),则在 <path>/.azureml/<name> 或 <path>/aml_config/<name> 保存 RunConfiguration。

在手动编辑配置或与 CLI 共享配置时,此方法非常有用。

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

参数

名称 说明
separate_environment_yaml

指示是否保存 Conda 环境配置。 如果为 True,则 Conda 环境配置将保存到名为 environment.yml 的 YAML 文件中。

默认值: False
path
str

用户为运行配置选择根目录。 通常,这是 Git 存储库或 Python 项目根目录。 配置将保存到名为 .azureml 的子目录中。

默认值: None
name
str

[必需] 配置文件名。

默认值: None

返回

类型 说明

例外

类型 说明
UserErrorException

属性

auto_prepare_environment

获取 auto_prepare_environment 参数。 这是已弃用且未使用的设置。

environment_variables

运行时环境变量。

返回

类型 说明

运行时变量

target

获取计划执行作业的计算目标。

默认目标是“本地”,指的是本机计算机。 可以使用函数 compute_targets 找到可用的云计算目标。

返回

类型 说明
str

目标名称