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
- 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.
Argumentos de línea de comandos para el archivo de script de Python.
- framework
- str
Marco de destino utilizado en la ejecución. Los marcos admitidos son Python, PySpark, TensorFlow y PyTorch.
- 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 u OpenMpi para clústeres de AmlCompute. Use IntelMpi para trabajos de entrenamiento distribuidos.
- conda_dependencies
- CondaDependencies
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.
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
- _path
- _name
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.
- 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 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
- path
- str
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.
Excepciones
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
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.
Devoluciones
Objeto de configuración de ejecución.
Tipo de valor devuelto
Excepciones
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
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
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.
Tipo de valor devuelto
Excepciones
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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de