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._AbstractRunConfigElementRunConfiguration
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
|
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
|
Marco de destino utilizado en la ejecución. Los marcos admitidos son Python, PySpark, TensorFlow y PyTorch. Valor predeterminado: None
|
communicator
|
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. 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 Valor predeterminado: None
|
auto_prepare_environment
Requerido
|
EN DESUSO. Este valor ya no se utiliza. |
command
|
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'] 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, 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
Nombre | Description |
---|---|
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
|
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
|
El número de nodos que se usarán para el trabajo. |
priority
|
Prioridad del trabajo para la directiva de programación. |
history
|
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, se usa la sección de configuración de Spark para establecer el valor predeterminado de SparkConf para el trabajo enviado. |
hdi
|
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
|
La sección de configuración de Docker se usa para establecer variables para el entorno de Docker. |
tensorflow
|
Sección de configuración que se usa para configurar los parámetros distribuidos de TensorFlow.
Este parámetro solo tiene efecto cuando |
mpi
|
Sección de configuración que se usa para configurar los parámetros distribuidos del trabajo MPI.
Este parámetro solo tiene efecto cuando |
pytorch
|
Sección de configuración que se usa para configurar parámetros del trabajo de PyTorch distribuido.
Este parámetro solo tiene efecto cuando |
paralleltask
|
Sección de configuración que se usa para configurar los parámetros distribuidos del trabajo ParallelTask.
Este parámetro solo tiene efecto cuando |
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 dado al origen de datos y el valor es DataReferenceConfiguration. |
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
|
Todas las salidas que se deben cargar y de las que se debe realizar un seguimiento para esta ejecución. |
source_directory_data_store
|
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 tiene 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 tiene efecto cuando el destino de proceso es KubernetesCompute. |
services
|
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 Si |
save |
Guarda RunConfiguration en un archivo en el disco. UserErrorException se genera cuando:
Si Si 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
Nombre | Description |
---|---|
path
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
Requerido
|
Nombre del archivo de configuración. |
Excepciones
Tipo | Description |
---|---|
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
Nombre | Description |
---|---|
path
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
|
Nombre del archivo de configuración. Valor predeterminado: None
|
Devoluciones
Tipo | Description |
---|---|
Objeto de configuración de ejecución. |
Excepciones
Tipo | Description |
---|---|
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
Nombre | Description |
---|---|
separate_environment_yaml
|
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". Valor predeterminado: False
|
path
|
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. Valor predeterminado: None
|
name
|
[Obligatorio] Nombre del archivo de configuración. Valor predeterminado: None
|
Devoluciones
Tipo | Description |
---|---|
Excepciones
Tipo | Description |
---|---|
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
Tipo | Description |
---|---|
Variables en tiempo de ejecución. |
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
Tipo | Description |
---|---|
Nombre del destino. |