YAML-schema voor CLI-pijplijntaak (v2)
VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)
U vindt het JSON-bronschema op https://azuremlschemas.azureedge.net/latest/pipelineJob.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. | pipeline |
|
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. |
||
tags |
object | Woordenlijst met tags voor de taak. | ||
settings |
object | Standaardinstellingen voor de pijplijntaak. Ga naar Kenmerken van de settings sleutel voor de set configureerbare eigenschappen. |
||
jobs |
object | Vereist. Woordenlijst van de set afzonderlijke taken die moeten worden uitgevoerd als stappen in de pijplijn. Deze taken worden beschouwd als onderliggende taken van de bovenliggende pijplijntaak. De sleutel is de naam van de stap binnen de context van de pijplijntaak. Deze naam verschilt van de unieke taaknaam van de onderliggende taak. De waarde is de taakspecificatie, die het opdrachttaakschema of het sweep-taakschema kan volgen. Op dit moment kunnen alleen opdrachttaken en sweep-taken worden uitgevoerd in een pijplijn. Latere releases bieden ondersteuning voor andere taaktypen. |
||
inputs |
object | Woordenlijst met invoer voor de pijplijntaak. De sleutel is een naam voor de invoer binnen de context van de taak. De waarde is de invoerwaarde. De invoer van een afzonderlijke staptaak in de pijplijn kan verwijzen naar deze pijplijninvoeren met de ${{ parent.inputs.<input_name> }} expressie. Voor meer informatie over het binden van de invoer van een pijplijnstap aan de invoer van de pijplijntaak op het hoogste niveau, gaat u naar de syntaxis van de expressie voor bindingsinvoer en -uitvoer tussen stappen in een pijplijntaak. |
||
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 met een specificatie van de invoergegevens van een taak. | ||
outputs |
object | Woordenlijst met uitvoerconfiguraties van de pijplijntaak. De sleutel is een naam voor de uitvoer binnen de context van de taak. De waarde is de uitvoerconfiguratie. De uitvoer van een afzonderlijke staptaak in de pijplijn kan verwijzen naar deze pijplijnuitvoer met de ${{ parents.outputs.<output_name> }} expressie. Voor meer informatie over het binden van de uitvoer van een pijplijnstap aan de uitvoer van de pijplijntaak op het hoogste niveau, gaat u naar de syntaxis van de expressie voor bindingsinvoer en -uitvoer tussen de stappen in een pijplijntaak. |
||
outputs.<output_name> |
object | U kunt het object leeg laten. In dit geval is de uitvoer standaard van het type uri_folder en genereert Azure Machine Learning een uitvoerlocatie voor de uitvoer op basis van dit tijdelijke pad: {settings.datastore}/azureml/{job-name}/{output-name}/ . Bestanden naar de uitvoermap worden geschreven via een koppeling voor lezen/schrijven. Als u een andere uitvoermodus wilt opgeven, geeft u een object op dat de taakuitvoerspecificatie bevat. |
||
identity |
object | De identiteit wordt gebruikt voor toegang tot gegevens. Dit kan UserIdentityConfiguration, ManagedIdentityConfiguration of None zijn. Als het UserIdentityConfiguration is, 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. |
Kenmerken van de settings
sleutel
Sleutel | Type | Description | Default value |
---|---|---|---|
default_datastore |
tekenreeks | De naam van het gegevensarchief dat moet worden gebruikt als het standaardgegevensarchief voor de pijplijntaak. Deze waarde moet een verwijzing naar een bestaand gegevensarchief in de werkruimte zijn met behulp van de azureml:<datastore-name> syntaxis. Uitvoer die is gedefinieerd in de eigenschap van de outputs bovenliggende pijplijntaak of onderliggende staptaken, worden opgeslagen in dit gegevensarchief. Als u dit weglaat, worden uitvoer opgeslagen in het gegevensarchief van de werkruimteblob. |
|
default_compute |
tekenreeks | De naam van het rekendoel dat moet worden gebruikt als de standaard berekenen voor alle stappen in de pijplijn. Compute die op stapniveau is gedefinieerd, overschrijft deze standaard rekenkracht voor die specifieke stap. De default_compute waarde moet een verwijzing naar een bestaande berekening in de werkruimte zijn met behulp van de azureml:<compute-name> syntaxis. |
|
continue_on_step_failure |
boolean | Deze instelling bepaalt wat er gebeurt als een stap in de pijplijn mislukt. Standaard wordt de pijplijn nog steeds uitgevoerd, zelfs als één stap mislukt. Dit betekent dat alle stappen die niet afhankelijk zijn van de mislukte stap nog steeds worden uitgevoerd. Als u deze instelling echter wijzigt in False, wordt de hele pijplijn niet meer uitgevoerd en worden alle stappen die momenteel worden uitgevoerd geannuleerd als één stap mislukt. | True |
force_rerun |
boolean | Of de hele pijplijn opnieuw moet worden uitgevoerd. De standaardwaarde is False . Dit betekent dat de pijplijn standaard de uitvoer van de vorige taak opnieuw probeert te gebruiken als deze voldoet aan criteria voor hergebruik. Als deze optie is ingesteld True , worden alle stappen in de pijplijn opnieuw uitgevoerd. |
False |
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_folder mltable mlflow_model |
uri_folder |
path |
tekenreeks | Het pad naar de gegevens die moeten worden gebruikt als invoer. Dit 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 , , download direct |
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_folder mltable mlflow_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 de 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 pipeline
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline
jobs:
hello_job:
command: echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
world_job:
command: echo "world"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
YAML: invoer-/uitvoerafhankelijkheid
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_io
jobs:
hello_job:
command: echo "hello" && echo "world" > ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
outputs:
world_output:
world_job:
command: cat ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
inputs:
world_input: ${{parent.jobs.hello_job.outputs.world_output}}
YAML: algemene instellingen voor pijplijntaken
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_settings
settings:
default_datastore: azureml:workspaceblobstore
default_compute: azureml:cpu-cluster
jobs:
hello_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
world_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: invoer op het hoogste niveau en algemene instellingen voor pijplijntaken overschrijven
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_abc
settings:
default_compute: azureml:cpu-cluster
inputs:
hello_string_top_level_input: "hello world"
jobs:
a:
command: echo hello ${{inputs.hello_string}}
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
hello_string: ${{parent.inputs.hello_string_top_level_input}}
b:
command: echo "world" >> ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
outputs:
world_output:
c:
command: echo ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
world_input: ${{parent.jobs.b.outputs.world_output}}