RunConfiguration Classe

Rappresenta la configurazione per le esecuzioni di esperimenti destinate a destinazioni di calcolo diverse in Azure Machine Learning.

L'oggetto RunConfiguration incapsula le informazioni necessarie per inviare un'esecuzione di training in un esperimento. In genere, non si creerà direttamente un oggetto RunConfiguration, ma si otterrà uno da un metodo che lo restituisce, ad esempio il submit metodo della Experiment classe.

RunConfiguration è una configurazione dell'ambiente di base usata anche in altri tipi di passaggi di configurazione che dipendono dal tipo di esecuzione che si sta attivando. Ad esempio, quando si configura un PythonScriptStepoggetto , è possibile accedere all'oggetto RunConfiguration del passaggio e configurare le dipendenze di Conda o accedere alle proprietà dell'ambiente per l'esecuzione.

Per esempi di configurazioni di esecuzione, vedere Selezionare e usare una destinazione di calcolo per eseguire il training del modello.

Inizializzare un runConfiguration con le impostazioni predefinite.

Ereditarietà
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration

Costruttore

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

Parametri

script
str
valore predefinito: None

Percorso relativo del file di script Python. Il percorso del file è relativo alla directory di origine passata a submit.

arguments
list[str]
valore predefinito: None

Argomenti della riga di comando per il file di script Python.

framework
str
valore predefinito: None

Framework di destinazione usato nell'esecuzione. I framework supportati sono Python, PySpark, TensorFlow e PyTorch.

communicator
str
valore predefinito: None

Il comunicatore usato nell'esecuzione. I comunicatori supportati sono None, ParameterServer, OpenMpi e IntelMpi. Tenere presente che OpenMpi richiede un'immagine personalizzata con OpenMpi installata. Usare ParameterServer o OpenMpi per i cluster AmlCompute. Usare IntelMpi per i processi di training distribuiti.

conda_dependencies
CondaDependencies
valore predefinito: None

Quando viene lasciato al valore predefinito false, il sistema crea un ambiente Python, che include i pacchetti specificati in conda_dependencies. Se impostato true, è possibile specificare un ambiente Python esistente con l'impostazione python_interpreter.

auto_prepare_environment
bool
Necessario

DEPRECATO. Questa impostazione non viene più usata.

command
list[str] oppure str
valore predefinito: None

Comando da inviare per l'esecuzione. La proprietà del comando può essere usata anche invece di script/argomenti. Non è possibile usare insieme le proprietà di comando e script/argomento per inviare un'esecuzione. Per inviare un file di script usando la proprietà del comando - ['python', 'train.py', '-arg1', arg1_val] Per eseguire un comando effettivo - ['ls']

_history_enabled
valore predefinito: None
_path
valore predefinito: None
_name
valore predefinito: None

Commenti

Vengono in genere compilati sistemi di Machine Learning per risolvere un problema specifico. Ad esempio, potrebbe essere utile trovare il modello migliore che classifica le pagine Web che potrebbero essere servite come risultati della ricerca corrispondenti a una query. La ricerca del modello di Machine Learning migliore può richiedere di provare algoritmi diversi o prendere in considerazione impostazioni di parametri diverse e così via.

In Azure Machine Learning SDK viene usato il concetto di esperimento per acquisire la nozione che le diverse esecuzioni di training sono correlate al problema che stanno tentando di risolvere. Un Experiment oggetto funge quindi da contenitore logico per queste esecuzioni di training, rendendo più semplice tenere traccia dello stato di avanzamento tra le esecuzioni di training, confrontare due esecuzioni di training direttamente e così via.

RunConfiguration incapsula le impostazioni dell'ambiente di esecuzione necessarie per inviare un'esecuzione di training in un esperimento. Acquisisce sia la struttura condivisa delle esecuzioni di training progettate per risolvere lo stesso problema di Machine Learning, sia le differenze nei parametri di configurazione (ad esempio, frequenza di apprendimento, funzione di perdita e così via) che distingueno le esecuzioni di training distinte tra loro.

In scenari di training tipici, RunConfiguration viene usato creando un oggetto che raggruppa un ScriptRunConfig oggetto RunConfiguration e uno script di esecuzione per il training.

La configurazione di RunConfiguration include:

  • Raggruppamento della directory di origine dell'esperimento, incluso lo script inviato.

  • Impostazione degli argomenti della riga di comando per lo script inviato.

  • Configurazione del percorso per l'interprete Python.

  • Ottenere la configurazione di Conda per gestire le dipendenze dell'applicazione. Il processo di invio del processo può usare la configurazione per effettuare il provisioning di un ambiente temp Conda e avviare l'applicazione all'interno. Gli ambienti temporanei vengono memorizzati nella cache e riutilizzati nelle esecuzioni successive.

  • Utilizzo facoltativo delle immagini di base Docker e personalizzate.

  • Scelta facoltativa dell'invio dell'esperimento a più tipi di calcolo di Azure.

  • Scelta facoltativa della configurazione di come materializzare gli input e caricare gli output.

  • Impostazioni di runtime avanzate per common runtime, ad esempio spark e tensorflow.

Nell'esempio seguente viene illustrato come inviare uno script di training nel computer locale.


   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)

Nell'esempio seguente viene illustrato come inviare uno script di training nel cluster usando la proprietà del comando anziché gli argomenti e gli script.


   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)

Nell'esempio seguente viene illustrato come eseguire un comando nel cluster.


   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)

Variabili

environment
Environment

Definizione dell'ambiente. Questo campo configura l'ambiente Python. Può essere configurato per usare un ambiente Python esistente o configurare per configurare un ambiente temp per l'esperimento. La definizione è anche responsabile dell'impostazione delle dipendenze dell'applicazione necessarie.

max_run_duration_seconds
int

Tempo massimo consentito per l'esecuzione. Il sistema tenterà di annullare automaticamente l'esecuzione se è necessario più tempo di questo valore.

node_count
int

Numero di nodi da usare per il processo.

priority
int

Priorità del processo per la pianificazione dei criteri.

history
HistoryConfiguration

La sezione di configurazione usata per disabilitare e abilitare le funzionalità di registrazione della cronologia degli esperimenti.

spark
SparkConfiguration

Quando la piattaforma è impostata su PySpark, viene usata la sezione di configurazione spark per impostare SparkConf predefinito per il processo inviato.

hdi
HdiConfiguration

La sezione di configurazione HDI ha effetto solo quando la destinazione è impostata su un calcolo HDI di Azure. La configurazione HDI viene usata per impostare la modalità di distribuzione YARN. La modalità di distribuzione predefinita è cluster.

docker
DockerConfiguration

La sezione di configurazione Docker viene usata per impostare le variabili per l'ambiente Docker.

tensorflow
TensorflowConfiguration

Sezione di configurazione usata per configurare i parametri TensorFlow distribuiti. Questo parametro ha effetto solo quando l'oggetto framework è impostato su TensorFlow e su communicator ParameterServer. AmlCompute è l'unico calcolo supportato per questa configurazione.

mpi
MpiConfiguration

Sezione di configurazione usata per configurare i parametri del processo MPI distribuiti. Questo parametro ha effetto solo quando l'oggetto framework è impostato su Python e su communicator OpenMpi o IntelMpi. AmlCompute è l'unico tipo di calcolo supportato per questa configurazione.

pytorch
PyTorchConfiguration

Sezione di configurazione usata per configurare i parametri del processo PyTorch distribuiti. Questo parametro ha effetto solo quando l'oggetto framework è impostato su PyTorch e su communicator Nccl o Gloo. AmlCompute è l'unico tipo di calcolo supportato per questa configurazione.

paralleltask
ParallelTaskConfiguration

Sezione di configurazione usata per configurare i parametri di processo paralleltask distribuiti. Questo parametro ha effetto solo quando l'oggetto framework è impostato su Python e su communicator ParallelTask. AmlCompute è l'unico tipo di calcolo supportato per questa configurazione.

data_references
dict[str, DataReferenceConfiguration]

Tutte le origini dati sono disponibili per l'esecuzione durante l'esecuzione in base a ogni configurazione. Per ogni elemento del dizionario, la chiave è un nome assegnato all'origine dati e il valore è DataReferenceConfiguration.

data
dict[str, Data]

Tutti i dati da rendere disponibili per l'esecuzione durante l'esecuzione.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Tutti i dati per rendere disponibili i dati per l'esecuzione.

output_data
OutputData

Tutti gli output che devono essere caricati e monitorati per questa esecuzione.

source_directory_data_store
str

Archivio dati di backup per la condivisione di progetto.

amlcompute
AmlComputeConfiguration

Dettagli della destinazione di calcolo da creare durante l'esperimento. La configurazione ha effetto solo quando la destinazione di calcolo è AmlCompute.

kubernetescompute
KubernetesComputeConfiguration

Dettagli della destinazione di calcolo da usare durante l'esperimento. La configurazione ha effetto solo quando la destinazione di calcolo è KubernetesCompute.

services
dict[str, ApplicationEndpointConfiguration]

Endpoint da interattività con la risorsa di calcolo. Gli endpoint consentiti sono Jupyter, JupyterLab, VS Code, Tensorboard, SSH e Porte personalizzate.

Metodi

delete

Eliminare un file di configurazione di esecuzione.

Genera un valore UserErrorException se il file di configurazione non viene trovato.

load

Caricare un file di configurazione eseguito in precedenza salvato da un file su disco.

Se path punta a un file, RunConfiguration viene caricato da tale file.

Se path punta a una directory, che deve essere una directory di progetto, RunConfiguration viene caricato da <path>/.azureml/<name> o <path>/aml_config/<name>.

save

Salvare RunConfiguration in un file su disco.

Viene generato un oggetto UserErrorException quando:

  • Impossibile salvare RunConfiguration con il nome specificato.

  • Non name è stato specificato alcun parametro.

  • Il parametro path non è valido.

Se path è del formato <dir_path/><file_name>, dove <dir_path> è una directory valida, RunConfiguration viene salvato in <dir_path>/<file_name>.

Se path punta a una directory, che deve essere una directory di progetto, RunConfiguration viene salvato in <percorso>/.azureml/<name> o <percorso>/aml_config/<name>.

Questo metodo è utile quando si modifica la configurazione manualmente o quando si condivide la configurazione con l'interfaccia della riga di comando.

delete

Eliminare un file di configurazione di esecuzione.

Genera un valore UserErrorException se il file di configurazione non viene trovato.

static delete(path, name)

Parametri

path
str
Necessario

Directory radice selezionata dall'utente per le configurazioni di esecuzione. In genere si tratta del repository Git o della directory radice del progetto Python. La configurazione viene eliminata da una sotto directory denominata .azureml.

name
str
Necessario

Nome del file di configurazione.

Eccezioni

UserErrorException

load

Caricare un file di configurazione eseguito in precedenza salvato da un file su disco.

Se path punta a un file, RunConfiguration viene caricato da tale file.

Se path punta a una directory, che deve essere una directory di progetto, RunConfiguration viene caricato da <path>/.azureml/<name> o <path>/aml_config/<name>.

static load(path, name=None)

Parametri

path
str
Necessario

Directory radice selezionata dall'utente per le configurazioni di esecuzione. In genere si tratta del repository Git o della directory radice del progetto Python. Per la compatibilità con le versioni precedenti, la configurazione verrà caricata anche da .azureml o aml_config sotto directory. Se il file non si trova in tali directory, il file viene caricato dal percorso specificato.

name
str
valore predefinito: None

Nome del file di configurazione.

Restituisce

Oggetto di configurazione dell'esecuzione.

Tipo restituito

Eccezioni

UserErrorException

save

Salvare RunConfiguration in un file su disco.

Viene generato un oggetto UserErrorException quando:

  • Impossibile salvare RunConfiguration con il nome specificato.

  • Non name è stato specificato alcun parametro.

  • Il parametro path non è valido.

Se path è del formato <dir_path/><file_name>, dove <dir_path> è una directory valida, RunConfiguration viene salvato in <dir_path>/<file_name>.

Se path punta a una directory, che deve essere una directory di progetto, RunConfiguration viene salvato in <percorso>/.azureml/<name> o <percorso>/aml_config/<name>.

Questo metodo è utile quando si modifica la configurazione manualmente o quando si condivide la configurazione con l'interfaccia della riga di comando.

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

Parametri

separate_environment_yaml
bool
valore predefinito: False

Indica se salvare la configurazione dell'ambiente Conda. Se True, la configurazione dell'ambiente Conda viene salvata in un file YAML denominato 'environment.yml'.

path
str
valore predefinito: None

Directory radice selezionata dall'utente per le configurazioni di esecuzione. In genere si tratta del repository Git o della directory radice del progetto Python. La configurazione viene salvata in una sotto directory denominata .azureml.

name
str
valore predefinito: None

[Obbligatorio] Nome del file di configurazione.

Tipo restituito

Eccezioni

UserErrorException

Attributi

auto_prepare_environment

Ottenere il auto_prepare_environment parametro. Si tratta di un'impostazione deprecata e inutilizzata.

environment_variables

Variabili di ambiente di runtime.

Restituisce

Variabili di runtime

Tipo restituito

target

Ottenere la destinazione di calcolo in cui il processo è pianificato per l'esecuzione.

La destinazione predefinita è "locale" che fa riferimento al computer locale. Le destinazioni di cloud compute disponibili sono disponibili usando la funzione compute_targets.

Restituisce

Nome di destinazione

Tipo restituito

str