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
|
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 trabajo de destino que se usa 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 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 Valor predeterminado: None
|
|
auto_prepare_environment
Requerido
|
OBSOLESCENTE. Esta configuración ya no se usa. |
|
command
|
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
|
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
|
El número de nodos que se usarán para el trabajo. |
|
priority
|
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 |
|
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 |
|
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 |
|
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 |
|
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
|
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 Si |
| save |
Guarde RunConfiguration en un archivo en el disco. Se UserErrorException genera una excepción cuando:
Si Si 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
|
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
|
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
|
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
|
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
nameparámetro.El
pathpará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
|
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
|
[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
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 |
|---|---|
|
El nombre de destino |