La sintassi YAML descritta in dettaglio in questo documento si basa sullo schema JSON per la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2. Il funzionamento di questa sintassi è garantito solo con la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2.
È possibile trovare gli schemi per le versioni di estensione precedenti in https://azuremlschemasprod.azureedge.net/.
Sintassi YAML
Chiave
Type
Descrizione
Valori consentiti
Valore predefinito
$schema
string
Schema YAML. Se si usa l'estensione VS Code di Azure Machine Learning per creare il file YAML, è possibile richiamare i completamenti dello schema e delle risorse se si include $schema nella parte superiore del file.
type
const
Obbligatorio. Tipo di processo.
sweep
sweep
name
string
Nome del processo. Deve essere univoco in tutti i processi nell'area di lavoro. Se omesso, Azure Machine Learning genera automaticamente un GUID per il nome.
display_name
string
Nome visualizzato del processo nell'interfaccia utente di Studio. Può essere non univoco all'interno dell'area di lavoro. Se omesso, Azure Machine Learning genera automaticamente un identificatore aggettivo-sostantivo leggibile per il nome visualizzato.
experiment_name
string
Organizzare il processo sotto il nome dell'esperimento. Il record di esecuzione di ogni processo è organizzato nell'esperimento corrispondente nella scheda "Esperimenti" dello studio. Se omesso, Per impostazione predefinita, Azure Machine Learning corrisponde experiment_name al nome della directory di lavoro in cui è stato creato il processo.
Obbligatorio. Dizionario dello spazio di ricerca degli iperparametri. Il nome dell'iperparametro è la chiave e il valore è l'espressione di parametro.
È possibile fare riferimento agli iperparametri in trial.command con l'espressione ${{ search_space.<hyperparameter> }} .
search_space.<hyperparameter>
oggetto
Vedere Espressioni di parametro per il set di espressioni possibili da usare.
objective.primary_metric
string
Obbligatorio. Nome della metrica primaria segnalata da ogni processo di valutazione. La metrica deve essere registrata nello script di training dell'utente, usando mlflow.log_metric() con lo stesso nome della metrica corrispondente.
objective.goal
string
Obbligatorio. Obiettivo di ottimizzazione di objective.primary_metric.
maximize, minimize
early_termination
oggetto
Criteri di terminazione anticipata da usare. Un processo di valutazione viene annullato quando vengono soddisfatti i criteri dei criteri specificati. Se omesso, non viene applicato alcun criterio di terminazione anticipata. Uno di BanditPolicy, MedianStoppingPolicy o TruncationSelectionPolicy.
Obbligatorio. Nome della destinazione di calcolo in cui eseguire il processo, con la azureml:<compute_name> sintassi .
trial
oggetto
Obbligatorio. Modello di processo per ogni versione di valutazione. Ogni processo di valutazione viene fornito con una combinazione diversa di valori degli iperparametri campionati dal sistema da search_space. Visitare Attributi della trial chiave.
inputs
oggetto
Dizionario di input per il processo. La chiave è un nome per l'input nel contesto del processo e il valore è il valore di input.
È possibile fare riferimento agli input nell'oggetto command usando l'espressione ${{ inputs.<input_name> }} .
inputs.<input_name>
number, integer, boolean, string o object
Un valore letterale (di tipo number, integer, boolean o string) o un oggetto che contiene una specifica dei dati di input del processo.
outputs
oggetto
Dizionario delle configurazioni di output del processo. La chiave è un nome per l'output nel contesto del processo e il valore è la configurazione di output.
È possibile fare riferimento agli output nell'oggetto command usando l'espressione ${{ outputs.<output_name> }} .
outputs.<output_name>
oggetto
È possibile lasciare vuoto l'oggetto e, in tal caso, per impostazione predefinita l'output è di uri_folder tipo e il sistema di Azure Machine Learning genera un percorso di output per l'output. Tutti i file nella directory di output vengono scritti tramite il montaggio in lettura/scrittura. Per specificare una modalità diversa per l'output, specificare un oggetto contenente la specifica dell'output del processo.
identity
oggetto
L'identità viene usata per l'accesso ai dati. Può trattarsi di configurazione dell'identità utente, configurazione dell'identità gestita o Nessuno. Per UserIdentityConfiguration, l'identità del mittente del processo viene usata per accedere ai dati di input e scrivere i risultati nella cartella di output. In caso contrario, viene usata l'identità gestita della destinazione di calcolo.
Algoritmi di campionamento
RandomSamplingAlgorithm
Chiave
Type
Descrizione
Valori consentiti
Default value
type
const
Obbligatorio. Tipo di algoritmo di campionamento.
random
seed
integer
Valore di inizializzazione casuale da usare per inizializzare la generazione di numeri casuali. Se omesso, il valore di inizializzazione predefinito è Null.
rule
string
Tipo di campionamento casuale da usare. Il valore predefinito, random, usa un semplice campionamento casuale uniforme, mentre sobol usa la sequenza quasi casuale di Sobol.
random, sobol
random
GridSamplingAlgorithm
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di algoritmo di campionamento.
grid
BayesianSamplingAlgorithm
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di algoritmo di campionamento.
bayesian
Criteri di interruzione anticipata
BanditPolicy
Chiave
Type
Descrizione
Valori consentiti
Default value
type
const
Obbligatorio. Tipo di criterio.
bandit
slack_factor
number
Rapporto usato per calcolare la distanza consentita dalla versione di valutazione con prestazioni migliori. Uno di slack_factor o slack_amount è obbligatorio.
slack_amount
number
Distanza assoluta consentita dalla versione di valutazione con prestazioni migliori. Uno di slack_factor o slack_amount è obbligatorio.
evaluation_interval
integer
Frequenza per l'applicazione dei criteri.
1
delay_evaluation
integer
Numero di intervalli per i quali ritardare la prima valutazione dei criteri. Se specificato, il criterio si applica a ogni multiplo maggiore evaluation_interval o uguale a delay_evaluation.
0
MedianStoppingPolicy
Chiave
Type
Descrizione
Valori consentiti
Default value
type
const
Obbligatorio. Tipo di criterio.
median_stopping
evaluation_interval
integer
Frequenza per l'applicazione dei criteri.
1
delay_evaluation
integer
Numero di intervalli per i quali ritardare la prima valutazione dei criteri. Se specificato, il criterio si applica a ogni multiplo maggiore evaluation_interval o uguale a delay_evaluation.
0
TruncationSelectionPolicy
Chiave
Type
Descrizione
Valori consentiti
Default value
type
const
Obbligatorio. Tipo di criterio.
truncation_selection
truncation_percentage
integer
Obbligatorio. Percentuale di processi di valutazione da annullare a ogni intervallo di valutazione.
evaluation_interval
integer
Frequenza per l'applicazione dei criteri.
1
delay_evaluation
integer
Numero di intervalli per i quali ritardare la prima valutazione dei criteri. Se specificato, il criterio si applica a ogni multiplo maggiore evaluation_interval o uguale a delay_evaluation.
0
Espressioni di parametro
Scelta
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di espressione.
choice
values
array
Obbligatorio. Elenco di valori discreti da cui scegliere.
Randint
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di espressione.
randint
upper
integer
Obbligatorio. Limite superiore esclusivo per l'intervallo di interi.
Qlognormal, qnormal
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di espressione.
qlognormal, qnormal
mu
number
Obbligatorio. Media della distribuzione normale.
sigma
number
Obbligatorio. Deviazione standard della distribuzione normale.
q
integer
Obbligatorio. Fattore di smussamento.
Qloguniform, quniform
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di espressione.
qloguniform, quniform
min_value
number
Obbligatorio. Valore minimo nell'intervallo (inclusivo).
max_value
number
Obbligatorio. Valore massimo nell'intervallo (inclusivo).
q
integer
Obbligatorio. Fattore di smussamento.
Lognormal, normale
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di espressione.
lognormal, normal
mu
number
Obbligatorio. Media della distribuzione normale.
sigma
number
Obbligatorio. Deviazione standard della distribuzione normale.
Loguniform
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di espressione.
loguniform
min_value
number
Obbligatorio. Il valore minimo nell'intervallo è exp(min_value) (inclusivo).
max_value
number
Obbligatorio. Il valore massimo nell'intervallo è exp(max_value) (inclusivo).
Uniforme
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di espressione.
uniform
min_value
number
Obbligatorio. Valore minimo nell'intervallo (inclusivo).
max_value
number
Obbligatorio. Valore massimo nell'intervallo (inclusivo).
Attributi della limits chiave
Chiave
Type
Descrizione
Default value
max_total_trials
integer
Numero massimo di processi di valutazione.
1000
max_concurrent_trials
integer
Numero massimo di processi di valutazione che possono essere eseguiti simultaneamente.
Il valore predefinito è max_total_trials.
timeout
integer
Tempo massimo in secondi consentito per l'esecuzione dell'intero processo di sweep. Una volta raggiunto questo limite, il sistema annulla il processo sweep, incluse tutte le prove.
5184000
trial_timeout
integer
Tempo massimo in secondi per l'esecuzione di ogni processo di valutazione. Una volta raggiunto questo limite, il sistema annulla la versione di valutazione.
Attributi della trial chiave
Chiave
Type
Descrizione
Default value
command
string
Obbligatorio. Comando da eseguire.
code
string
Percorso locale della directory del codice sorgente da caricare e usare per il processo.
environment
stringa o oggetto
Obbligatorio. Ambiente da usare per il processo. Questo valore può essere un riferimento a un ambiente con controllo delle versioni esistente nell'area di lavoro o a una specifica dell'ambiente inline.
Per fare riferimento a un ambiente esistente, usare la sintassi azureml:<environment-name>:<environment-version>.
Per definire un ambiente inline, seguire lo schema Ambiente. Escludere le name proprietà e version perché gli ambienti inline non li supportano.
environment_variables
oggetto
Dizionario di coppie nome-valore della variabile di ambiente da impostare nel processo in cui viene eseguito il comando.
Obbligatorio. Numero di processi per nodo da avviare per il processo.
PyTorchConfiguration
Chiave
Type
Descrizione
Valori consentiti
Default value
type
const
Obbligatorio. Tipo di distribuzione.
pytorch
process_count_per_instance
integer
Numero di processi per nodo da avviare per il processo.
1
TensorFlowConfiguration
Chiave
Type
Descrizione
Valori consentiti
Default value
type
const
Obbligatorio. Tipo di distribuzione.
tensorflow
worker_count
integer
Numero di ruoli di lavoro da avviare per il processo.
Il valore predefinito è resources.instance_count.
parameter_server_count
integer
Numero di server di parametri da avviare per il processo.
0
Input del processo
Chiave
Type
Descrizione
Valori consentiti
Valore predefinito
type
string
Tipo di input del processo. Specificare uri_file per i dati di input che puntano a una singola origine file o uri_folder per i dati di input che puntano a un'origine cartella. Per altre informazioni, vedere Altre informazioni sull'accesso ai dati.
uri_file, uri_folder, mltablemlflow_model
uri_folder
path
string
Percorso dei dati da usare come input. Questo valore può essere specificato in alcuni modi:
- Percorso locale del file o della cartella dell'origine dati, path: ./iris.csvad esempio . I dati si caricano durante l'invio del processo.
- URI di un percorso cloud del file o della cartella da usare come input. I tipi URI supportati sono azureml, https, wasbs, abfss, adl. Per altre informazioni sull'uso azureml:// del formato URI, vedere sintassi yaml di base.
: asset di dati di Azure Machine Learning registrato esistente da usare come input. Per fare riferimento a un asset di dati registrato, usare la azureml:<data_name>:<data_version> sintassi o azureml:<data_name>@latest (per fare riferimento alla versione più recente di tale asset di dati), ad esempio path: azureml:cifar10-data:1 o path: azureml:cifar10-data@latest.
mode
string
Modalità di distribuzione dei dati alla destinazione di calcolo.
Per il montaggio di sola lettura (ro_mount), i dati vengono utilizzati come percorso di montaggio. Una cartella viene montata come cartella e un file viene montato come file. Azure Machine Learning risolve l'input nel percorso di montaggio.
Per download la modalità, i dati vengono scaricati nella destinazione di calcolo. Azure Machine Learning risolve l'input nel percorso scaricato.
Per solo l'URL del percorso di archiviazione dell'artefatto o degli artefatti di dati, invece di montare o scaricare i dati stessi, usare la direct modalità . In questo modo viene passato l'URL della posizione di archiviazione come input del processo. In questo caso, si è completamente responsabili della gestione delle credenziali per accedere all'archiviazione.
ro_mount, download, direct
ro_mount
Output del processo
Chiave
Type
Descrizione
Valori consentiti
Valore predefinito
type
string
Tipo di output del processo. Per il tipo predefinito uri_folder , l'output corrisponde a una cartella.
uri_file, uri_folder, mltablemlflow_model
uri_folder
mode
string
Modalità di recapito del file di output o dei file nella risorsa di archiviazione di destinazione. Per la modalità di montaggio in lettura/scrittura (rw_mount), la directory di output è una directory montata. Per la modalità di caricamento, tutti i file scritti vengono caricati alla fine del processo.
rw_mount, upload
rw_mount
Configurazioni di identità
UserIdentityConfiguration
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di identità.
user_identity
ManagedIdentityConfiguration
Chiave
Type
Descrizione
Valori consentiti
type
const
Obbligatorio. Tipo di identità.
managed oppure managed_identity
Osservazioni:
È possibile usare il az ml job comando per gestire i processi di Azure Machine Learning.
Esempi
Per esempi, visitare il repository GitHub di esempi. Di seguito sono riportati alcuni elementi: