YAML-schema för CLI -svepjobb (v2)

GÄLLER FÖR:Azure CLI ml extension v2 (aktuell)

JSON-källschemat finns på https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json.

Kommentar

YAML-syntaxen som beskrivs i det här dokumentet baseras på JSON-schemat för den senaste versionen av ML CLI v2-tillägget. Den här syntaxen är garanterad att endast fungera med den senaste versionen av ML CLI v2-tillägget. Du hittar scheman för äldre tilläggsversioner på https://azuremlschemasprod.azureedge.net/.

YAML-syntax

Nyckel Typ Beskrivning Tillåtna värden Default value
$schema sträng YAML-schemat. Om du använder Azure Machine Learning VS Code-tillägget för att skapa YAML-filen kan du anropa schema- och resursavslutningar om du tar med $schema längst upp i filen.
type Const Obligatoriska. Typen av jobb. sweep sweep
name sträng Namnet på jobbet. Måste vara unikt för alla jobb på arbetsytan. Om det utelämnas skapar Azure Machine Learning automatiskt ett GUID för namnet.
display_name sträng Visningsnamn för jobbet i studiogränssnittet. Kan vara icke-unik på arbetsytan. Om detta utelämnas skapar Azure Machine Learning automatiskt en adjektiv-substantividentifierare som kan läsas av människor för visningsnamnet.
experiment_name sträng Organisera jobbet under experimentnamnet. Körningsposten för varje jobb ordnas under motsvarande experiment på fliken Experiment i studion. Om det utelämnas experiment_name är Azure Machine Learning som standard namnet på arbetskatalogen där jobbet skapades.
description sträng Beskrivning av jobbet.
tags objekt Ordlista med taggar för jobbet.
sampling_algorithm objekt Obligatoriska. Algoritmen för hyperparametersampling som ska användas via search_space. En av RandomSamplingAlgorithm, GridSamplingAlgorithm eller BayesianSamplingAlgorithm.
search_space objekt Obligatoriska. Ordlista för hyperparameterns sökutrymme. Hyperparameternamnet är nyckeln och värdet är parameteruttrycket.

Hyperparametrar kan refereras i trial.command med - ${{ search_space.<hyperparameter> }} uttrycket.
search_space.<hyperparameter> objekt Gå till Parameteruttryck för den uppsättning möjliga uttryck som ska användas.
objective.primary_metric sträng Obligatoriska. Namnet på det primära mått som rapporteras av varje utvärderingsjobb. Måttet måste loggas i användarens träningsskript med mlflow.log_metric() samma motsvarande måttnamn.
objective.goal sträng Obligatoriska. Optimeringsmålet för objective.primary_metric. maximize, minimize
early_termination objekt Principen för tidig uppsägning som ska användas. Ett utvärderingsjobb avbryts när kriterierna för den angivna principen uppfylls. Om det utelämnas tillämpas ingen princip för förtidsavslut. En av BanditPolicy, MedianStoppingPolicy eller TruncationSelectionPolicy.
limits objekt Gränser för svepjobbet. Se Attribut för limits nyckeln.
compute sträng Obligatoriska. Namnet på beräkningsmålet som jobbet ska köras på med syntaxen azureml:<compute_name> .
trial objekt Obligatoriska. Jobbmallen för varje utvärderingsversion. Varje utvärderingsjobb har en annan kombination av hyperparametervärden som systemexemplen från search_space. Gå till Attribut för trial nyckeln.
inputs objekt Ordlista över indata till jobbet. Nyckeln är ett namn på indata i jobbets kontext och värdet är indatavärdet.

Indata kan refereras i command med uttrycket ${{ inputs.<input_name> }} .
inputs.<input_name> tal, heltal, booleskt värde, sträng eller objekt Ett av ett literalvärde (av typnummer, heltal, booleskt värde eller sträng) eller ett objekt som innehåller en dataspecifikation för jobbindata.
outputs objekt Ordlista över utdatakonfigurationer för jobbet. Nyckeln är ett namn på utdata i jobbets kontext och värdet är utdatakonfigurationen.

Utdata kan refereras i command med uttrycket ${{ outputs.<output_name> }} .
outputs.<output_name> objekt Du kan lämna objektet tomt, och i så fall är utdata som standard av uri_folder typen och Azure Machine Learning-systemet genererar en utdataplats för utdata. Alla filer till utdatakatalogen skrivs via läs- och skrivmontering. Om du vill ange ett annat läge för utdata anger du ett objekt som innehåller jobbutdataspecifikationen.
identity objekt Identiteten används för dataåtkomst. Det kan vara konfiguration av användaridentitet, konfiguration av hanterad identitet eller Ingen. För UserIdentityConfiguration används identiteten för jobbinskickare för att komma åt indata och skriva resultat till utdatamappen. Annars används den hanterade identiteten för beräkningsmålet.

Samplingsalgoritmer

RandomSamplingAlgorithm

Nyckel Typ Beskrivning Tillåtna värden Default value
type Const Obligatoriska. Typ av samplingsalgoritm. random
seed integer Ett slumpmässigt frö som ska användas för att initiera slumptalsgenereringen. Om det utelämnas är standardvärdet för startvärde null.
rule sträng Vilken typ av slumpmässig sampling som ska användas. Standardvärdet, random, använder enkel enhetlig slumpmässig sampling, medan sobol sobol kvasi-slumpmässig sekvens används. random, sobol random

GridSamplingAlgorithm

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Typ av samplingsalgoritm. grid

BayesianSamplingAlgorithm

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Typ av samplingsalgoritm. bayesian

Principer för tidig uppsägning

BanditPolicy

Nyckel Typ Beskrivning Tillåtna värden Default value
type Const Obligatoriska. Policytypen. bandit
slack_factor Nummer Förhållandet som används för att beräkna det tillåtna avståndet från den bästa utvärderingsversionen. En av slack_factor eller slack_amount krävs.
slack_amount Nummer Det absoluta avståndet som tillåts från utvärderingsversionen med bäst resultat. En av slack_factor eller slack_amount krävs.
evaluation_interval integer Frekvensen för att tillämpa principen. 1
delay_evaluation integer Antalet intervall som den första principutvärderingen ska fördröjas för. Om det anges gäller principen för varje multipel av evaluation_interval som är större än eller lika med delay_evaluation. 0

MedianStoppingPolicy

Nyckel Typ Beskrivning Tillåtna värden Default value
type Const Obligatoriska. Policytypen. median_stopping
evaluation_interval integer Frekvensen för att tillämpa principen. 1
delay_evaluation integer Antalet intervall som den första principutvärderingen ska fördröjas för. Om det anges gäller principen för varje multipel av evaluation_interval som är större än eller lika med delay_evaluation. 0

TruncationSelectionPolicy

Nyckel Typ Beskrivning Tillåtna värden Default value
type Const Obligatoriska. Policytypen. truncation_selection
truncation_percentage integer Obligatoriska. Procentandelen utvärderingsjobb som ska avbrytas vid varje utvärderingsintervall.
evaluation_interval integer Frekvensen för att tillämpa principen. 1
delay_evaluation integer Antalet intervall som den första principutvärderingen ska fördröjas för. Om det anges gäller principen för varje multipel av evaluation_interval som är större än eller lika med delay_evaluation. 0

Parameteruttryck

Alternativ

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Uttryckstypen. choice
values matris Obligatoriska. Listan med diskreta värden som du vill välja mellan.

Randint

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Uttryckstypen. randint
upper integer Obligatoriska. Den exklusiva övre gränsen för heltalsintervallet.

Qlognormal, qnormal

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Uttryckstypen. qlognormal, qnormal
mu Nummer Obligatoriska. Medelvärdet av den normala fördelningen.
sigma Nummer Obligatoriska. Standardavvikelsen för den normala fördelningen.
q integer Obligatoriska. Utjämningsfaktorn.

Qloguniform, quniform

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Uttryckstypen. qloguniform, quniform
min_value Nummer Obligatoriska. Minimivärdet i intervallet (inklusive).
max_value Nummer Obligatoriska. Det maximala värdet i intervallet (inklusive).
q integer Obligatoriska. Utjämningsfaktorn.

Lognormal, normal

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Uttryckstypen. lognormal, normal
mu Nummer Obligatoriska. Medelvärdet av den normala fördelningen.
sigma Nummer Obligatoriska. Standardavvikelsen för den normala fördelningen.

Loguniform

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Uttryckstypen. loguniform
min_value Nummer Obligatoriska. Minimivärdet i intervallet är exp(min_value) (inkluderande).
max_value Nummer Obligatoriska. Det maximala värdet i intervallet är exp(max_value) (inkluderande).

Enhetlig

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Uttryckstypen. uniform
min_value Nummer Obligatoriska. Minimivärdet i intervallet (inklusive).
max_value Nummer Obligatoriska. Det maximala värdet i intervallet (inklusive).

Attribut för limits nyckeln

Nyckel Typ Beskrivning Default value
max_total_trials integer Det maximala antalet utvärderingsjobb. 1000
max_concurrent_trials integer Det maximala antalet utvärderingsjobb som kan köras samtidigt. Standardvärdet är max_total_trials.
timeout integer Den maximala tiden i sekunder som hela svepjobbet tillåts att köras. När den här gränsen har nåtts avbryter systemet svepjobbet, inklusive alla utvärderingsversioner. 5184000
trial_timeout integer Den maximala tiden i sekunder som varje utvärderingsjobb tillåts köras. När den här gränsen har nåtts avbryter systemet utvärderingsversionen.

Attribut för trial nyckeln

Nyckel Typ Beskrivning Default value
command sträng Obligatoriska. Kommandot som ska köras.
code sträng Lokal sökväg till källkodskatalogen som ska laddas upp och användas för jobbet.
environment sträng eller objekt Obligatoriska. Miljön som ska användas för jobbet. Det här värdet kan antingen vara en referens till en befintlig version av miljön på arbetsytan eller en infogad miljöspecifikation.

Om du vill referera till en befintlig miljö använder du syntaxen azureml:<environment-name>:<environment-version> .

Om du vill definiera en infogad miljö följer du miljöschemat. name Exkludera egenskaperna och version eftersom infogade miljöer inte stöder dem.
environment_variables objekt Ordlista med miljövariabelns namn/värde-par som ska anges i processen där kommandot körs.
distribution objekt Distributionskonfigurationen för distribuerade träningsscenarier. En av Mpi-konfigurationerna, PyTorch-konfigurationen eller TensorFlow-konfigurationen.
resources.instance_count integer Antalet noder som ska användas för jobbet. 1

Distributionskonfigurationer

MpiConfiguration
Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Distributionstyp. mpi
process_count_per_instance integer Obligatoriska. Antalet processer per nod som ska startas för jobbet.
PyTorchConfiguration
Nyckel Typ Beskrivning Tillåtna värden Default value
type Const Obligatoriska. Distributionstyp. pytorch
process_count_per_instance integer Antalet processer per nod som ska startas för jobbet. 1
TensorFlowConfiguration
Nyckel Typ Beskrivning Tillåtna värden Default value
type Const Obligatoriska. Distributionstyp. tensorflow
worker_count integer Antalet arbetare som ska startas för jobbet. Standardvärdet är resources.instance_count.
parameter_server_count integer Antalet parameterservrar som ska startas för jobbet. 0

Jobbindata

Nyckel Typ Beskrivning Tillåtna värden Default value
type sträng Typ av jobbindata. Ange uri_file för indata som pekar på en enda filkälla eller uri_folder för indata som pekar på en mappkälla. Mer information finns i Läs mer om dataåtkomst. uri_file, uri_folder, , mltablemlflow_model uri_folder
path sträng Sökvägen till de data som ska användas som indata. Det här värdet kan anges på några sätt:

– En lokal sökväg till datakällans fil eller mapp, till exempel path: ./iris.csv. Data överförs under jobböverföringen.

– En URI för en molnsökväg till filen eller mappen som ska användas som indata. URI-typer som stöds är azureml, https, wasbs, abfss, adl. Mer information om hur du använder azureml:// URI-formatet finns i Core yaml-syntax.

– En befintlig registrerad Azure Machine Learning-datatillgång som ska användas som indata. Om du vill referera till en registrerad datatillgång använder du syntaxen azureml:<data_name>:<data_version> eller azureml:<data_name>@latest (för att referera till den senaste versionen av den datatillgången) – till exempel path: azureml:cifar10-data:1 eller path: azureml:cifar10-data@latest.
mode sträng Läge för hur data ska levereras till beräkningsmålet.

För skrivskyddad montering (ro_mount) används data som en monteringssökväg. En mapp monteras som en mapp och en fil monteras som en fil. Azure Machine Learning löser indata till monteringssökvägen.

För download läge laddas data ned till beräkningsmålet. Azure Machine Learning löser indata till den nedladdade sökvägen.

För bara URL:en för lagringsplatsen för dataartefakten eller artefakterna använder direct du läget i stället för att montera eller ladda ned själva data. Detta skickar in URL:en för lagringsplatsen som jobbindata. I det här fallet är du helt ansvarig för att hantera autentiseringsuppgifter för att få åtkomst till lagringen.
ro_mount, , downloaddirect ro_mount

Jobbutdata

Nyckel Typ Beskrivning Tillåtna värden Default value
type sträng Jobbutdatatypen. För standardtypen uri_folder motsvarar utdata en mapp. uri_file, uri_folder, , mltablemlflow_model uri_folder
mode sträng Läge för leverans av utdatafilen eller filerna till mållagringen. För skrivskyddat monteringsläge (rw_mount) är utdatakatalogen en monterad katalog. För uppladdningsläget laddas alla filer som skrivs upp i slutet av jobbet. rw_mount, upload rw_mount

Identitetskonfigurationer

UserIdentityConfiguration

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Identitetstyp. user_identity

ManagedIdentityConfiguration

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriska. Identitetstyp. managed eller managed_identity

Kommentarer

Du kan använda az ml job kommandot för att hantera Azure Machine Learning-jobb.

Exempel

Gå till exempel GitHub-lagringsplatsen i exemplen. Flera visas här:

YAML: hello sweep

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  command: >-
    python hello-sweep.py
    --A ${{inputs.A}}
    --B ${{search_space.B}}
    --C ${{search_space.C}}
  code: src
  environment: azureml:azureml-sklearn-1.0:23
inputs:
  A: 0.5
sampling_algorithm: random
search_space:
  B:
    type: choice
    values: ["hello", "world", "hello_world"]
  C:
    type: uniform
    min_value: 0.1
    max_value: 1.0
objective:
  goal: minimize
  primary_metric: random_metric
limits:
  max_total_trials: 4
  max_concurrent_trials: 2
  timeout: 3600
display_name: hello-sweep-example
experiment_name: hello-sweep-example
description: Hello sweep job example.

YAML: grundläggande hyperparameterjustering för Python-modell

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  code: src
  command: >-
    python main.py 
    --iris-csv ${{inputs.iris_csv}}
    --C ${{search_space.C}}
    --kernel ${{search_space.kernel}}
    --coef0 ${{search_space.coef0}}
  environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest
inputs:
  iris_csv: 
    type: uri_file
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm: random
search_space:
  C:
    type: uniform
    min_value: 0.5
    max_value: 0.9
  kernel:
    type: choice
    values: ["rbf", "linear", "poly"]
  coef0:
    type: uniform
    min_value: 0.1
    max_value: 1
objective:
  goal: minimize
  primary_metric: training_f1_score
limits:
  max_total_trials: 20
  max_concurrent_trials: 10
  timeout: 7200
display_name: sklearn-iris-sweep-example
experiment_name: sklearn-iris-sweep-example
description: Sweep hyperparemeters for training a scikit-learn SVM on the Iris dataset.

Nästa steg