Compartir a través de


RunConfiguration Clase

Representa la configuración de las ejecuciones de experimentos que tienen como destino 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 obtendrá uno de un método que lo devuelva, como el submit método de la Experiment clase .

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 un 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 obtener ejemplos de configuraciones de ejecución, consulte Selección y uso de un destino de proceso para entrenar el modelo.

Inicialice un RunConfiguration con la configuración predeterminada.

Constructor

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

Parámetros

Nombre Description
script
str

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.

Valor predeterminado: None
arguments

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

Valor predeterminado: None
framework
str

Marco de trabajo de destino que se usa en la ejecución. Los marcos admitidos son Python, PySpark, TensorFlow y PyTorch.

Valor predeterminado: None
communicator
str

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 o OpenMpi para clústeres de AmlCompute. Use IntelMpi para trabajos de entrenamiento distribuidos.

Valor predeterminado: None
conda_dependencies

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 true, se puede especificar un entorno de Python existente con la configuración de python_interpreter.

Valor predeterminado: None
auto_prepare_environment
Requerido

OBSOLESCENTE. Esta configuración ya no se usa.

command
list[str] o str

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

Valor predeterminado: None
_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, podríamos estar interesados en encontrar el mejor modelo que clasifica las páginas web que podrían servirse como resultados de búsqueda correspondientes a una consulta. Nuestra búsqueda del mejor modelo de aprendizaje automático puede requerir que pruebemos algoritmos diferentes, o considere la posibilidad de una configuración de parámetros diferente, etc.

En el SDK de Azure Machine Learning, se usa el concepto de un experimento para capturar la noción de que las distintas ejecuciones de entrenamiento están relacionadas con el problema que intentan resolver. A Experiment continuación, actúa como un contenedor lógico para estas ejecuciones de entrenamiento, lo que facilita el seguimiento del progreso entre 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 las distintas ejecuciones de entrenamiento entre sí.

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

La configuración de RunConfiguration incluye:

  • Agrupación del directorio de origen del experimento, incluido el script enviado.

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

  • Configuración de la ruta de acceso para el intérprete de Python.

  • Obtenga 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 y imágenes base personalizadas.

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

  • Opció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 la máquina 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 argumentos.


   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

Nombre Description
environment

Definición del entorno. Este campo configura el entorno de Python. Se puede configurar para usar un entorno de Python existente o configurar para configurar un entorno temporal para el experimento. La definición también es responsable de establecer las dependencias de 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 de 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

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

spark

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

hdi

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

docker

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

tensorflow

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

mpi

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

pytorch

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

paralleltask

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

data_references

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 asignado al origen de datos y el valor es dataReferenceConfiguration.

data

Todos los datos que se van a poner a disposición de la ejecución durante la ejecución.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

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

output_data

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

source_directory_data_store
str

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

amlcompute

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

kubernetescompute

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

services

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

Métodos

delete

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

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

load

Cargue un archivo de configuración de ejecución guardado anteriormente 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

Guarde RunConfiguration en un archivo en el disco.

Se UserErrorException genera una excepción cuando:

  • RunConfiguration no se puede guardar con el nombre especificado.

  • No se especificó ningún name parámetro.

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

Si path es del 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

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

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

static delete(path, name)

Parámetros

Nombre Description
path
Requerido
str

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

name
Requerido
str

Nombre del archivo de configuración.

Excepciones

Tipo Description
UserErrorException

load

Cargue un archivo de configuración de ejecución guardado anteriormente 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

Nombre Description
path
Requerido
str

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

name
str

Nombre del archivo de configuración.

Valor predeterminado: None

Devoluciones

Tipo Description

Objeto de configuración de ejecución.

save

Guarde RunConfiguration en un archivo en el disco.

Se UserErrorException genera una excepción cuando:

  • RunConfiguration no se puede guardar con el nombre especificado.

  • No se especificó ningún name parámetro.

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

Si path es del 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

Nombre Description
separate_environment_yaml

Indica si se va a 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".

Valor predeterminado: False
path
str

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

Valor predeterminado: None
name
str

[Obligatorio] Nombre del archivo de configuración.

Valor predeterminado: None

Devoluciones

Tipo Description

Atributos

auto_prepare_environment

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

environment_variables

Variables de entorno en tiempo de ejecución.

Devoluciones

Tipo Description

Variables en tiempo de ejecución

target

Obtenga el destino de proceso en el que el trabajo está programado para su ejecución.

El destino predeterminado es "local" que hace referencia al equipo local. Los destinos de proceso en la nube disponibles se pueden encontrar mediante la función compute_targets.

Devoluciones

Tipo Description
str

El nombre de destino