RunConfiguration Clase

Representa la configuración de las ejecuciones de experimentos destinadas a distintos destinos de proceso en Azure Machine Learning.

El objeto RunConfiguration encapsula la información necesaria para enviar una ejecución de entrenamiento en un experimento. Normalmente, no creará un objeto RunConfiguration directamente, sino que obtiene uno de un método que lo devuelve, submit como el método de la clase Experiment.

RunConfiguration es una configuración de entorno base que también se usa en otros tipos de pasos de configuración que dependen del tipo de ejecución que se está desencadenando. Por ejemplo, al configurar PythonScriptStep, puede acceder al objeto RunConfiguration del paso y configurar las dependencias de Conda o acceder a las propiedades del entorno para la ejecución.

Para ver ejemplos de configuraciones de ejecución, consulte Selección y uso de un destino de proceso para entrenar el modelo.

Inicialice runConfiguration con la configuración predeterminada.

Herencia
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration

Constructor

RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)

Parámetros

script
str
valor predeterminado: None

Ruta de acceso relativa al archivo de script de Python. La ruta de acceso del archivo es relativa al directorio de origen pasado a submit.

arguments
list[str]
valor predeterminado: None

Argumentos de línea de comandos para el archivo de script de Python.

framework
str
valor predeterminado: None

Marco de destino utilizado en la ejecución. Los marcos admitidos son Python, PySpark, TensorFlow y PyTorch.

communicator
str
valor predeterminado: None

Comunicador usado en la ejecución. Los comunicadores admitidos son None, ParameterServer, OpenMpi e IntelMpi. Tenga en cuenta que OpenMpi requiere una imagen personalizada con OpenMpi instalado. Use ParameterServer u OpenMpi para clústeres de AmlCompute. Use IntelMpi para trabajos de entrenamiento distribuidos.

conda_dependencies
CondaDependencies
valor predeterminado: None

Cuando se deja en el valor predeterminado de False, el sistema crea un entorno de Python, que incluye los paquetes especificados en conda_dependencies. Cuando se establece en true, se puede especificar un entorno de Python existente con el valor python_interpreter.

auto_prepare_environment
bool
Requerido

EN DESUSO. Este valor ya no se utiliza.

command
list[str] o str
valor predeterminado: None

Comando que se va a enviar para la ejecución. La propiedad command también se puede usar en lugar de script/arguments. Las propiedades command y script/argument no se pueden usar juntas para enviar una ejecución. Para enviar un archivo de script mediante la propiedad de comando: ['python', 'train.py', '–arg1', arg1_val]. Para ejecutar un comando real - ['ls']

_history_enabled
valor predeterminado: None
_path
valor predeterminado: None
_name
valor predeterminado: None

Comentarios

Normalmente, creamos sistemas de aprendizaje automático para resolver un problema específico. Por ejemplo, es posible que nos interese encontrar el mejor modelo que clasifica las páginas web que podrían servir como resultados de búsqueda correspondientes a una consulta. Nuestra búsqueda del mejor modelo de aprendizaje automático puede requerir que probemos algoritmos diferentes, que considere la posibilidad de distintas configuraciones de parámetros, etc.

En el SDK de Azure Machine Learning, usamos el concepto de un experimento para capturar la noción de que las distintas ejecuciones de entrenamiento están relacionadas por el problema que están intentando resolver. A continuación, Experiment actúa como contenedor lógico para estas ejecuciones de entrenamiento, lo que facilita el seguimiento del progreso entre las ejecuciones de entrenamiento, compara dos ejecuciones de entrenamiento directamente, etc.

RunConfiguration encapsula la configuración del entorno de ejecución necesaria para enviar una ejecución de entrenamiento en un experimento. Captura la estructura compartida de las ejecuciones de entrenamiento diseñadas para resolver el mismo problema de aprendizaje automático, así como las diferencias en los parámetros de configuración (por ejemplo, velocidad de aprendizaje, función de pérdida, etc.) que distinguen distintas ejecuciones de entrenamiento entre sí.

En escenarios de entrenamiento típicos, RunConfiguration se usa mediante la creación de un objeto ScriptRunConfig que empaqueta juntos un objeto RunConfiguration y un script de ejecución para el entrenamiento.

La configuración de RunConfiguration incluye:

  • Agrupar el directorio de origen del experimento, incluido el script enviado.

  • Establecer los argumentos de la línea de comandos para el script enviado.

  • Configurar la ruta de acceso para el intérprete de Python.

  • Obtener la configuración de Conda para administrar las dependencias de la aplicación. El proceso de envío de trabajos puede usar la configuración para aprovisionar un entorno de Conda temporal e iniciar la aplicación dentro. Los entornos temporales se almacenan en caché y se reutilizan en ejecuciones posteriores.

  • Uso opcional de Docker e imágenes base personalizadas.

  • Elección opcional para enviar el experimento a varios tipos de proceso de Azure.

  • Elección opcional para configurar cómo materializar entradas y cargar salidas.

  • Configuración avanzada del entorno de ejecución para entornos de ejecución comunes, como Spark y TensorFlow.

En el ejemplo siguiente se muestra cómo enviar un script de entrenamiento en el equipo local.


   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)

En el ejemplo siguiente se muestra cómo enviar un script de entrenamiento en el clúster mediante la propiedad command en lugar de script y 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)

En el ejemplo siguiente se muestra cómo ejecutar un comando en el clúster.


   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)

Variables

environment
Environment

Definición del entorno. Este campo configura el entorno de Python. Se puede configurar para que use un entorno de Python existente o para definir o configurar un entorno temporal para el experimento. La definición también es responsable de establecer las dependencias de la aplicación necesarias.

max_run_duration_seconds
int

Tiempo máximo permitido para la ejecución. El sistema intentará cancelar automáticamente la ejecución si tardó más que este valor.

node_count
int

El número de nodos que se usarán para el trabajo.

priority
int

Prioridad del trabajo para la directiva de programación.

history
HistoryConfiguration

Sección de configuración que se usa para deshabilitar y habilitar las características de registro del historial de experimentos.

spark
SparkConfiguration

Cuando la plataforma se establece en PySpark, se usa la sección de configuración de Spark para establecer el valor predeterminado de SparkConf para el trabajo enviado.

hdi
HdiConfiguration

La sección de configuración de HDI solo tiene efecto cuando el destino se establece en un proceso de Azure HDI. La configuración de HDI se usa para establecer el modo de implementación de YARN. El modo de implementación predeterminado es clúster.

docker
DockerConfiguration

La sección de configuración de Docker se usa para establecer variables para el entorno de Docker.

tensorflow
TensorflowConfiguration

Sección de configuración que se usa para configurar los parámetros distribuidos de TensorFlow. Este parámetro solo tiene efecto cuando framework se establece en TensorFlow y communicator en ParameterServer. AmlCompute es el único proceso admitido para esta configuración.

mpi
MpiConfiguration

Sección de configuración que se usa para configurar los parámetros distribuidos del trabajo MPI. Este parámetro solo tiene efecto cuando framework se establece en Python y communicator en OpenMpi o IntelMpi. AmlCompute es el único tipo de proceso admitido para esta configuración.

pytorch
PyTorchConfiguration

Sección de configuración que se usa para configurar parámetros del trabajo de PyTorch distribuido. Este parámetro solo tiene efecto cuando framework se establece en PyTorch y communicator en Nccl o Gloo. AmlCompute es el único tipo de proceso admitido para esta configuración.

paralleltask
ParallelTaskConfiguration

Sección de configuración que se usa para configurar los parámetros distribuidos del trabajo ParallelTask. Este parámetro solo tiene efecto cuando framework se establece en Python y communicator en ParallelTask. AmlCompute es el único tipo de proceso admitido para esta configuración.

data_references
dict[str, DataReferenceConfiguration]

Todos los orígenes de datos están disponibles para la ejecución durante la ejecución en función de cada configuración. Para cada elemento del diccionario, la clave es un nombre dado al origen de datos y el valor es DataReferenceConfiguration.

data
dict[str, Data]

Todos los datos que se ponen a disposición de la ejecución durante esta.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Todos los datos para que datacache esté disponibles para ejecutarse durante la ejecución.

output_data
OutputData

Todas las salidas que se deben cargar y de las que se debe realizar un seguimiento para esta ejecución.

source_directory_data_store
str

Almacén de datos de respaldo para el recurso compartido del proyecto.

amlcompute
AmlComputeConfiguration

Detalles del destino de proceso que se va a crear durante el experimento. La configuración solo tiene efecto cuando el destino de proceso es AmlCompute.

kubernetescompute
KubernetesComputeConfiguration

Detalles del destino de proceso que se va a usar durante el experimento. La configuración solo tiene efecto cuando el destino de proceso es KubernetesCompute.

services
dict[str, ApplicationEndpointConfiguration]

Puntos de conexión para interactuar con el recurso de proceso. Los puntos de conexión permitidos son Jupyter, JupyterLab, VS Code, Tensorboard, SSH y puertos personalizados.

Métodos

delete

Elimina un archivo de configuración de ejecución.

Genera UserErrorException si no se encuentra el archivo de configuración.

load

Carga un archivo de configuración de ejecución guardado previamente desde un archivo en disco.

Si path apunta a un archivo, RunConfiguration se carga desde ese archivo.

Si path apunta a un directorio, que debe ser un directorio de proyecto, RunConfiguration se carga desde <path>/.azureml/<name> o <path>/aml_config/<name>.

save

Guarda RunConfiguration en un archivo en el disco.

UserErrorException se genera cuando:

  • RunConfiguration no se puede guardar con el nombre especificado.

  • No se especificó el parámetro name.

  • El parámetro path no es válido.

Si path tiene el formato <dir_path>/<file_name>, donde <dir_path> es un directorio válido, RunConfiguration se guarda en <dir_path>/<file_name>.

Si path apunta a un directorio, que debe ser un directorio de proyecto, RunConfiguration se guarda en <path>/.azureml/<name> o <path>/aml_config/<name>.

Este método es útil al editar la configuración manualmente o al compartir la configuración con la CLI.

delete

Elimina un archivo de configuración de ejecución.

Genera UserErrorException si no se encuentra el archivo de configuración.

static delete(path, name)

Parámetros

path
str
Requerido

Directorio raíz seleccionado por el usuario para las configuraciones de ejecución. Normalmente es el repositorio de Git o el directorio raíz del proyecto de Python. La configuración se elimina de un subdirectorio denominado .azureml.

name
str
Requerido

Nombre del archivo de configuración.

Excepciones

UserErrorException

load

Carga un archivo de configuración de ejecución guardado previamente desde un archivo en disco.

Si path apunta a un archivo, RunConfiguration se carga desde ese archivo.

Si path apunta a un directorio, que debe ser un directorio de proyecto, RunConfiguration se carga desde <path>/.azureml/<name> o <path>/aml_config/<name>.

static load(path, name=None)

Parámetros

path
str
Requerido

Directorio raíz seleccionado por el usuario para las configuraciones de ejecución. Normalmente es el repositorio de Git o el directorio raíz del proyecto de Python. Para que sea compatible con versiones anteriores, la configuración también se cargará desde el subdirectorio .azureml o aml_config. Si el archivo no está en esos directorios, se carga desde la ruta de acceso especificada.

name
str
valor predeterminado: None

Nombre del archivo de configuración.

Devoluciones

Objeto de configuración de ejecución.

Tipo de valor devuelto

Excepciones

UserErrorException

save

Guarda RunConfiguration en un archivo en el disco.

UserErrorException se genera cuando:

  • RunConfiguration no se puede guardar con el nombre especificado.

  • No se especificó el parámetro name.

  • El parámetro path no es válido.

Si path tiene el formato <dir_path>/<file_name>, donde <dir_path> es un directorio válido, RunConfiguration se guarda en <dir_path>/<file_name>.

Si path apunta a un directorio, que debe ser un directorio de proyecto, RunConfiguration se guarda en <path>/.azureml/<name> o <path>/aml_config/<name>.

Este método es útil al editar la configuración manualmente o al compartir la configuración con la CLI.

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

Parámetros

separate_environment_yaml
bool
valor predeterminado: False

Indica si se debe guardar la configuración del entorno de Conda. Si es True, la configuración del entorno de Conda se guarda en un archivo YAML denominado "environment.yml".

path
str
valor predeterminado: None

Directorio raíz seleccionado por el usuario para las configuraciones de ejecución. Normalmente es el repositorio de Git o el directorio raíz del proyecto de Python. La configuración se guarda en un subdirectorio denominado .azureml.

name
str
valor predeterminado: None

[Obligatorio] Nombre del archivo de configuración.

Tipo de valor devuelto

Excepciones

UserErrorException

Atributos

auto_prepare_environment

Obtiene el parámetro auto_prepare_environment. Se trata de una configuración en desuso y sin usar.

environment_variables

Variables de entorno de tiempo de ejecución.

Devoluciones

Variables en tiempo de ejecución.

Tipo de valor devuelto

target

Obtiene el destino de proceso donde el trabajo está programado para su ejecución.

El destino predeterminado es "local", que hace referencia a la máquina local. Los destinos de proceso en la nube disponibles se pueden encontrar mediante la función compute_targets.

Devoluciones

Nombre del destino.

Tipo de valor devuelto

str