Delen via


YAML-schema van CLI (v2) sweep-taak

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

Het JSON-bronschema vindt u op https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json.

Notitie

De YAML-syntaxis die in dit document wordt beschreven, is gebaseerd op het JSON-schema voor de nieuwste versie van de ML CLI v2-extensie. Deze syntaxis werkt gegarandeerd alleen met de nieuwste versie van de ML CLI v2-extensie. U vindt de schema's voor oudere extensieversies op https://azuremlschemasprod.azureedge.net/.

YAML-syntaxis

Sleutel Type Description Toegestane waarden Default value
$schema tekenreeks Het YAML-schema. Als u de Azure Machine Learning VS Code-extensie gebruikt om het YAML-bestand te ontwerpen, kunt u schema- en resourcevoltooiingen aanroepen als u het bestand boven aan het bestand opneemt $schema .
type Const Vereist. Het type taak. sweep sweep
name tekenreeks Naam van de taak. Moet uniek zijn voor alle taken in de werkruimte. Als u dit weglaat, wordt in Azure Machine Learning automatisch een GUID gegenereerd voor de naam.
display_name tekenreeks Weergavenaam van de taak in de gebruikersinterface van studio. Kan niet uniek zijn binnen de werkruimte. Als u dit weglaat, wordt in Azure Machine Learning automatisch een door mensen leesbare naamwoord-id voor het naamwoord voor de weergavenaam gegenereerd.
experiment_name tekenreeks Organiseer de taak onder de naam van het experiment. De uitvoeringsrecord van elke taak wordt geordend onder het bijbehorende experiment op het tabblad Experimenten van de studio. Als u dit weglaat, wordt azure Machine Learning standaard experiment_name ingesteld op de naam van de werkmap waarin de taak is gemaakt.
description tekenreeks Beschrijving van de taak.
tags object Woordenlijst met tags voor de taak.
sampling_algorithm object Vereist. Het algoritme voor hyperparametersampling dat moet worden gebruikt via de search_space. Een van RandomSamplingAlgorithm, GridSamplingAlgorithm of BayesianSamplingAlgorithm.
search_space object Vereist. Woordenlijst van de zoekruimte hyperparameter. De naam van de hyperparameter is de sleutel en de waarde is de parameterexpressie.

Naar Hyperparameters kan worden verwezen in de trial.command expressie ${{ search_space.<hyperparameter> }} .
search_space.<hyperparameter> object Ga naar parameterexpressies voor de set mogelijke expressies die u wilt gebruiken.
objective.primary_metric tekenreeks Vereist. De naam van de primaire metriek die door elke proeftaak wordt gerapporteerd. De metrische gegevens moeten worden geregistreerd in het trainingsscript van de gebruiker, met behulp van mlflow.log_metric() dezelfde bijbehorende metrische naam.
objective.goal tekenreeks Vereist. Het optimalisatiedoel van de objective.primary_metric. maximize, minimize
early_termination object Het beleid voor vroegtijdige beëindiging dat moet worden gebruikt. Een proeftaak wordt geannuleerd wanneer aan de criteria van het opgegeven beleid wordt voldaan. Als u dit weglaat, wordt er geen beleid voor vroegtijdige beëindiging toegepast. Een van BanditPolicy, MedianStoppingPolicy of TruncationSelectionPolicy.
limits object Limieten voor de sweep-taak. Zie Kenmerken van de limits sleutel.
compute tekenreeks Vereist. Naam van het rekendoel waarop de taak moet worden uitgevoerd, met de azureml:<compute_name> syntaxis.
trial object Vereist. De taaksjabloon voor elke proefversie. Elke proeftaak wordt geleverd met een andere combinatie van hyperparameterwaarden die de systeemvoorbeelden van de search_space. Ga naar Kenmerken van de trial sleutel.
inputs object Woordenlijst met invoer voor de taak. De sleutel is een naam voor de invoer binnen de context van de taak en de waarde is de invoerwaarde.

In de command ${{ inputs.<input_name> }} expressie kan naar invoer worden verwezen.
inputs.<input_name> getal, geheel getal, booleaanse waarde, tekenreeks of object Een van een letterlijke waarde (van het type getal, geheel getal, booleaanse waarde of tekenreeks) of een object dat een specificatie voor taakinvoergegevens bevat.
outputs object Woordenlijst met uitvoerconfiguraties van de taak. De sleutel is een naam voor de uitvoer binnen de context van de taak en de waarde is de uitvoerconfiguratie.

Er kan naar uitvoer worden verwezen in de command expressie ${{ outputs.<output_name> }} .
outputs.<output_name> object U kunt het object leeg laten en in dat geval is de uitvoer standaard van uri_folder het type en genereert het Azure Machine Learning-systeem een uitvoerlocatie voor de uitvoer. Alle bestanden naar de uitvoermap worden geschreven via koppeling voor lezen/schrijven. Als u een andere modus voor de uitvoer wilt opgeven, geeft u een object op dat de taakuitvoerspecificatie bevat.
identity object De identiteit wordt gebruikt voor toegang tot gegevens. Dit kan gebruikersidentiteitsconfiguratie, beheerde identiteitconfiguratie of geen zijn. Voor UserIdentityConfiguration wordt de identiteit van de taakaanzender gebruikt voor toegang tot invoergegevens en het schrijfresultaat naar de uitvoermap. Anders wordt de beheerde identiteit van het rekendoel gebruikt.

Samplingalgoritmen

RandomSamplingAlgorithm

Sleutel Type Description Toegestane waarden Default value
type Const Vereist. Het type sampling-algoritme. random
seed geheel getal Een willekeurige seed die moet worden gebruikt om de generatie van willekeurige getallen te initialiseren. Als u dit weglaat, is de standaard seed-waarde null.
rule tekenreeks Het type willekeurige steekproeven dat moet worden gebruikt. De standaardinstelling, randommaakt gebruik van eenvoudige uniforme willekeurige steekproeven, terwijl sobol de sobol quasi-willekeurige reeks wordt gebruikt. random, sobol random

GridSamplingAlgorithm

Sleutel Type Description Toegestane waarden
type Const Vereist. Het type sampling-algoritme. grid

BayesianSamplingAlgorithm

Sleutel Type Description Toegestane waarden
type Const Vereist. Het type sampling-algoritme. bayesian

Beleid voor vroegtijdige beëindiging

BanditPolicy

Sleutel Type Description Toegestane waarden Default value
type Const Vereist. Het type beleid. bandit
slack_factor Nummer De verhouding die wordt gebruikt om de toegestane afstand van de best presterende proefversie te berekenen. Een van slack_factor of slack_amount is vereist.
slack_amount Nummer De absolute afstand die is toegestaan van de best presterende proefversie. Een van slack_factor of slack_amount is vereist.
evaluation_interval geheel getal De frequentie voor het toepassen van het beleid. 1
delay_evaluation geheel getal Het aantal intervallen waarvoor de eerste beleidsevaluatie moet worden vertraagd. Indien opgegeven, is het beleid van toepassing op elk veelvoud evaluation_interval dat groter is dan of gelijk is aan delay_evaluation. 0

MedianStoppingPolicy

Sleutel Type Description Toegestane waarden Default value
type Const Vereist. Het type beleid. median_stopping
evaluation_interval geheel getal De frequentie voor het toepassen van het beleid. 1
delay_evaluation geheel getal Het aantal intervallen waarvoor de eerste beleidsevaluatie moet worden vertraagd. Indien opgegeven, is het beleid van toepassing op elk veelvoud evaluation_interval dat groter is dan of gelijk is aan delay_evaluation. 0

TruncationSelectionPolicy

Sleutel Type Description Toegestane waarden Default value
type Const Vereist. Het type beleid. truncation_selection
truncation_percentage geheel getal Vereist. Het percentage proeftaken dat bij elk evaluatieinterval moet worden geannuleerd.
evaluation_interval geheel getal De frequentie voor het toepassen van het beleid. 1
delay_evaluation geheel getal Het aantal intervallen waarvoor de eerste beleidsevaluatie moet worden vertraagd. Indien opgegeven, is het beleid van toepassing op elk veelvoud evaluation_interval dat groter is dan of gelijk is aan delay_evaluation. 0

Parameterexpressies

Keuze

Sleutel Type Description Toegestane waarden
type Const Vereist. Het expressietype. choice
values matrix Vereist. De lijst met discrete waarden waaruit u kunt kiezen.

Randint

Sleutel Type Description Toegestane waarden
type Const Vereist. Het expressietype. randint
upper geheel getal Vereist. De exclusieve bovengrens voor het bereik van gehele getallen.

Qlognormal, qnormal

Sleutel Type Description Toegestane waarden
type Const Vereist. Het expressietype. qlognormal, qnormal
mu Nummer Vereist. Het gemiddelde van de normale verdeling.
sigma Nummer Vereist. De standaarddeviatie van de normale verdeling.
q geheel getal Vereist. De vloeiende factor.

Qloguniform, quniform

Sleutel Type Description Toegestane waarden
type Const Vereist. Het expressietype. qloguniform, quniform
min_value Nummer Vereist. De minimumwaarde in het bereik (inclusief).
max_value Nummer Vereist. De maximumwaarde in het bereik (inclusief).
q geheel getal Vereist. De vloeiende factor.

Logaritmische, normale

Sleutel Type Description Toegestane waarden
type Const Vereist. Het expressietype. lognormal, normal
mu Nummer Vereist. Het gemiddelde van de normale verdeling.
sigma Nummer Vereist. De standaarddeviatie van de normale verdeling.

Loguniform

Sleutel Type Description Toegestane waarden
type Const Vereist. Het expressietype. loguniform
min_value Nummer Vereist. De minimumwaarde in het bereik is exp(min_value) (inclusief).
max_value Nummer Vereist. De maximumwaarde in het bereik is exp(max_value) (inclusief).

Uniform

Sleutel Type Description Toegestane waarden
type Const Vereist. Het expressietype. uniform
min_value Nummer Vereist. De minimumwaarde in het bereik (inclusief).
max_value Nummer Vereist. De maximumwaarde in het bereik (inclusief).

Kenmerken van de limits sleutel

Sleutel Type Description Default value
max_total_trials geheel getal Het maximum aantal proeftaken. 1000
max_concurrent_trials geheel getal Het maximum aantal proeftaken dat gelijktijdig kan worden uitgevoerd. Standaard ingesteld op max_total_trials.
timeout geheel getal De maximale tijd in seconden, dat de hele sweep-taak mag worden uitgevoerd. Zodra deze limiet is bereikt, annuleert het systeem de sweep-taak, inclusief alle proefversies. 5184000
trial_timeout geheel getal De maximale tijd in seconden mag elke proeftaak worden uitgevoerd. Zodra deze limiet is bereikt, annuleert het systeem de proefversie.

Kenmerken van de trial sleutel

Sleutel Type Description Default value
command tekenreeks Vereist. De opdracht die moet worden uitgevoerd.
code tekenreeks Lokaal pad naar de broncodemap die moet worden geüpload en gebruikt voor de taak.
environment tekenreeks of object Vereist. De omgeving die moet worden gebruikt voor de taak. Deze waarde kan een verwijzing zijn naar een bestaande versieomgeving in de werkruimte of een inline-omgevingsspecificatie.

Als u naar een bestaande omgeving wilt verwijzen, gebruikt u de azureml:<environment-name>:<environment-version> syntaxis.

Als u een omgeving inline wilt definiëren, volgt u het omgevingsschema. Sluit de name en version eigenschappen uit omdat inline-omgevingen deze niet ondersteunen.
environment_variables object Woordenlijst van naam-waardeparen van omgevingsvariabelen die moeten worden ingesteld voor het proces waarin de opdracht wordt uitgevoerd.
distribution object De distributieconfiguratie voor gedistribueerde trainingsscenario's. Een van mpi-configuratie, PyTorch-configuratie of TensorFlow-configuratie.
resources.instance_count geheel getal Het aantal knooppunten dat moet worden gebruikt voor de taak. 1

Distributieconfiguraties

MpiConfiguration
Sleutel Type Description Toegestane waarden
type Const Vereist. Distributietype. mpi
process_count_per_instance geheel getal Vereist. Het aantal processen per knooppunt dat moet worden gestart voor de taak.
PyTorchConfiguration
Sleutel Type Description Toegestane waarden Default value
type Const Vereist. Distributietype. pytorch
process_count_per_instance geheel getal Het aantal processen per knooppunt dat moet worden gestart voor de taak. 1
TensorFlowConfiguration
Sleutel Type Description Toegestane waarden Default value
type Const Vereist. Distributietype. tensorflow
worker_count geheel getal Het aantal werknemers dat voor de taak moet worden gestart. Standaard ingesteld op resources.instance_count.
parameter_server_count geheel getal Het aantal parameterservers dat moet worden gestart voor de taak. 0

Taakinvoer

Sleutel Type Description Toegestane waarden Default value
type tekenreeks Het type taakinvoer. Geef uri_file op voor invoergegevens die naar één bestandsbron verwijst of uri_folder voor invoergegevens die naar een mapbron verwijst. Ga voor meer informatie naar Meer informatie over gegevenstoegang. uri_file, , , uri_foldermltablemlflow_model uri_folder
path tekenreeks Het pad naar de gegevens die moeten worden gebruikt als invoer. Deze waarde kan op een aantal manieren worden opgegeven:

- Een lokaal pad naar het gegevensbestand of de map, bijvoorbeeld path: ./iris.csv. De gegevens worden geüpload tijdens het verzenden van taken.

- Een URI van een cloudpad naar het bestand of de map die moet worden gebruikt als invoer. Ondersteunde URI-typen zijn azureml, https, wasbs, , abfss. adl Ga naar core yaml-syntaxis voor meer informatie over het gebruik van de azureml:// URI-indeling.

- Een bestaand geregistreerd Azure Machine Learning-gegevensasset dat moet worden gebruikt als invoer. Als u wilt verwijzen naar een geregistreerde gegevensasset, gebruikt u de azureml:<data_name>:<data_version> syntaxis of azureml:<data_name>@latest (om te verwijzen naar de nieuwste versie van die gegevensasset), bijvoorbeeld path: azureml:cifar10-data:1 .path: azureml:cifar10-data@latest
mode tekenreeks Modus van hoe de gegevens moeten worden geleverd aan het rekendoel.

Voor alleen-lezenkoppeling (ro_mount) worden de gegevens gebruikt als koppelpad. Een map wordt gekoppeld als een map en een bestand wordt gekoppeld als een bestand. Azure Machine Learning lost de invoer voor het koppelpad op.

Voor download de modus worden de gegevens gedownload naar het rekendoel. Azure Machine Learning lost de invoer op naar het gedownloade pad.

Voor alleen de URL van de opslaglocatie van het gegevensartefact of artefacten, in plaats van de gegevens zelf te koppelen of te downloaden, gebruikt u de direct modus. Hiermee wordt de URL van de opslaglocatie doorgegeven als de taakinvoer. In dit geval bent u volledig verantwoordelijk voor het afhandelen van referenties voor toegang tot de opslag.
ro_mount, , downloaddirect ro_mount

Taakuitvoer

Sleutel Type Description Toegestane waarden Default value
type tekenreeks Het uitvoertype van de taak. Voor het standaardtype uri_folder komt de uitvoer overeen met een map. uri_file, , , uri_foldermltablemlflow_model uri_folder
mode tekenreeks Modus van de levering van het uitvoerbestand of de bestanden aan de doelopslag. Voor de koppelingsmodus lezen/schrijven (rw_mount) is de uitvoermap een gekoppelde map. Voor de uploadmodus worden alle geschreven bestanden aan het einde van de taak geüpload. rw_mount, upload rw_mount

Identiteitsconfiguraties

UserIdentityConfiguration

Sleutel Type Description Toegestane waarden
type Const Vereist. Identiteitstype. user_identity

ManagedIdentityConfiguration

Sleutel Type Description Toegestane waarden
type Const Vereist. Identiteitstype. managed of managed_identity

Opmerkingen

U kunt de az ml job opdracht gebruiken om Azure Machine Learning-taken te beheren.

Voorbeelden

Ga naar de GitHub-voorbeeldenopslagplaats voor voorbeelden. Er worden hier verschillende weergegeven:

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.5@latest
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: eenvoudige afstemming van Hyperparameter van Python-model

$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-1.5@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.

Volgende stappen