Condividi tramite


RunConfiguration Classe

Rappresenta la configurazione per le esecuzioni dell'esperimento 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 ne verrà ottenuto 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 oggetto 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

Nome Descrizione
script
str

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

Valore predefinito: None
arguments

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

Valore predefinito: None
framework
str

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

Valore predefinito: None
communicator
str

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

Valore predefinito: None
conda_dependencies

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

Valore predefinito: None
auto_prepare_environment
Necessario

DEPRECATO. Questa impostazione non viene più usata.

command
list[str] oppure str

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']

Valore predefinito: None
_history_enabled
Valore predefinito: None
_path
Valore predefinito: None
_name
Valore predefinito: None

Commenti

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

In Azure Machine Learning SDK viene usato il concetto di esperimento per acquisire la nozione che 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 direttamente due esecuzioni di training 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 distinguono le esecuzioni di training distinte tra loro.

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

La configurazione di RunConfiguration include:

  • Creazione di bundle 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.

  • Uso facoltativo di Docker e immagini di base personalizzate.

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

  • Scelta facoltativa della configurazione della modalità di materializzazione degli input e del caricamento degli output.

  • Impostazioni di runtime avanzate per common runtime come 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é script e argomenti.


   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)

L'esempio seguente illustra 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

Nome Descrizione
environment

Definizione dell'ambiente. Questo campo configura l'ambiente Python. Può essere configurato per usare un ambiente Python esistente o configurarlo per configurare un ambiente temporaneo 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

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

spark

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

hdi

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

docker

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

tensorflow

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

mpi

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

pytorch

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

paralleltask

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

data_references

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

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

datacaches
<xref:buildin.list>[DatacacheConfiguration]

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

output_data

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

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

kubernetescompute

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

services

Endpoint per l'interazione con la risorsa di calcolo. Gli endpoint consentiti sono Le porte Jupyter, JupyterLab, VS Code, Tensorboard, SSH e Custom.

Metodi

delete

Eliminare un file di configurazione di esecuzione.

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

load

Caricare un file di configurazione dell'esecuzione salvato in precedenza 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 caricata da <path>/.azureml/<name> o <path>/aml_config/<name>.

save

Salvare RunConfiguration in un file su disco.

Un UserErrorException oggetto viene generato quando:

  • Non è possibile salvare RunConfiguration con il nome specificato.

  • Non è stato specificato alcun name 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 salvata in <path>/.azureml/<name> o <path>/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'eccezione UserErrorException se il file di configurazione non viene trovato.

static delete(path, name)

Parametri

Nome Descrizione
path
Necessario
str

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 sottodirectory denominata .azureml.

name
Necessario
str

Nome del file di configurazione.

Eccezioni

Tipo Descrizione
UserErrorException

load

Caricare un file di configurazione dell'esecuzione salvato in precedenza 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 caricata da <path>/.azureml/<name> o <path>/aml_config/<name>.

static load(path, name=None)

Parametri

Nome Descrizione
path
Necessario
str

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 sottodirectory. Se il file non si trova in tali directory, il file viene caricato dal percorso specificato.

name
str

Nome del file di configurazione.

Valore predefinito: None

Restituisce

Tipo Descrizione

Oggetto di configurazione di esecuzione.

Eccezioni

Tipo Descrizione
UserErrorException

save

Salvare RunConfiguration in un file su disco.

Un UserErrorException oggetto viene generato quando:

  • Non è possibile salvare RunConfiguration con il nome specificato.

  • Non è stato specificato alcun name 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 salvata in <path>/.azureml/<name> o <path>/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

Nome Descrizione
separate_environment_yaml

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

Valore predefinito: False
path
str

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 sottodirectory denominata .azureml.

Valore predefinito: None
name
str

[Obbligatorio] Nome del file di configurazione.

Valore predefinito: None

Restituisce

Tipo Descrizione

Eccezioni

Tipo Descrizione
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

Tipo Descrizione

Variabili di runtime

target

Ottiene 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 calcolo cloud disponibili sono disponibili usando la funzione compute_targets.

Restituisce

Tipo Descrizione
str

Nome della destinazione