Delen via


RunConfiguration Klas

Vertegenwoordigt de configuratie voor experimentuitvoeringen die zijn gericht op verschillende rekendoelen in Azure Machine Learning.

Het RunConfiguration-object bevat de informatie die nodig is om een trainingsuitvoering in een experiment in te dienen. Normaal gesproken maakt u geen RunConfiguration-object rechtstreeks, maar haalt u er een op uit een methode die het retourneert, zoals de submit methode van de Experiment klasse.

RunConfiguration is een basisomgevingsconfiguratie die ook wordt gebruikt in andere typen configuratiestappen die afhankelijk zijn van het type uitvoering dat u activeert. Als u bijvoorbeeld een PythonScriptStepinstelling instelt, hebt u toegang tot het RunConfiguration-object van de stap en configureert u Conda-afhankelijkheden of opent u de omgevingseigenschappen voor de uitvoering.

Zie Een rekendoel selecteren en gebruiken om uw model te trainen voor voorbeelden van uitvoeringsconfiguraties.

Initialiseer een RunConfiguration met de standaardinstellingen.

Constructor

RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)

Parameters

Name Description
script
str

Het relatieve pad naar het Python-scriptbestand. Het bestandspad is relatief ten opzichte van de bronmap die wordt doorgegeven aan submit.

Default value: None
arguments

Opdrachtregelargumenten voor het Python-scriptbestand.

Default value: None
framework
str

Het beoogde framework dat in de uitvoering wordt gebruikt. Ondersteunde frameworks zijn Python, PySpark, TensorFlow en PyTorch.

Default value: None
communicator
str

De communicator die in de uitvoering wordt gebruikt. De ondersteunde communicatoren zijn None, ParameterServer, OpenMpi en IntelMpi. Houd er rekening mee dat OpenMpi een aangepaste installatiekopieën vereist waarop OpenMpi is geïnstalleerd. Gebruik ParameterServer of OpenMpi voor AmlCompute-clusters. Gebruik IntelMpi voor gedistribueerde trainingstaken.

Default value: None
conda_dependencies

Wanneer het systeem de standaardwaarde False heeft, maakt het systeem een Python-omgeving, die de pakketten bevat die zijn opgegeven in conda_dependencies. Wanneer de waarde waar is ingesteld, kan een bestaande Python-omgeving worden opgegeven met de instelling python_interpreter.

Default value: None
auto_prepare_environment
Vereist

VEROUDERD. Deze instelling wordt niet meer gebruikt.

command
list[str] of str

De opdracht die moet worden verzonden voor de uitvoering. De opdrachteigenschap kan ook worden gebruikt in plaats van script/argumenten. Eigenschappen van zowel opdrachten als scripts/argumenten kunnen niet samen worden gebruikt om een uitvoering te verzenden. Een scriptbestand verzenden met behulp van de opdrachteigenschap ['python', 'train.py', '–arg1', arg1_val] Een werkelijke opdracht uitvoeren - ['ls']

Default value: None
_history_enabled
Default value: None
_path
Default value: None
_name
Default value: None

Opmerkingen

We bouwen machine learning-systemen doorgaans om een specifiek probleem op te lossen. We kunnen bijvoorbeeld geïnteresseerd zijn in het vinden van het beste model dat webpagina's rangschikt die kunnen worden geleverd als zoekresultaten die overeenkomen met een query. Voor onze zoekopdracht naar het beste machine learning-model kunnen we verschillende algoritmen uitproberen, of verschillende parameterinstellingen overwegen, enzovoort.

In de Azure Machine Learning SDK gebruiken we het concept van een experiment om het idee vast te leggen dat verschillende trainingsuitvoeringen zijn gerelateerd aan het probleem dat ze proberen op te lossen. Een Experiment fungeert vervolgens als een logische container voor deze trainingsuitvoeringen, waardoor het gemakkelijker is om de voortgang van trainingsuitvoeringen bij te houden, twee trainingsuitvoeringen rechtstreeks te vergelijken, enzovoort.

De RunConfiguration bevat uitvoeringsomgevingsinstellingen die nodig zijn om een trainingsuitvoering in een experiment in te dienen. Het legt zowel de gedeelde structuur van trainingsuitvoeringen vast die zijn ontworpen om hetzelfde machine learning-probleem op te lossen, evenals de verschillen in de configuratieparameters (bijvoorbeeld leersnelheid, verliesfunctie, enzovoort) die verschillende trainingsuitvoeringen van elkaar onderscheiden.

In typische trainingsscenario's wordt RunConfiguration gebruikt door een object te maken dat een ScriptRunConfig RunConfiguration-object samenpakt en een uitvoeringsscript voor training.

De configuratie van RunConfiguration omvat:

  • Bundeling van de bronmap van het experiment, inclusief het ingediende script.

  • De opdrachtregelargumenten voor het ingediende script instellen.

  • Het pad voor de Python-interpreter configureren.

  • Conda-configuratie verkrijgen voor het beheren van de toepassingsafhankelijkheden. Het proces voor het indienen van taken kan de configuratie gebruiken om een tijdelijke Conda-omgeving in te richten en de toepassing binnen te starten. De tijdelijke omgevingen worden in de cache opgeslagen en opnieuw gebruikt in volgende uitvoeringen.

  • Optioneel gebruik van Docker- en aangepaste basisinstallatiekopieën.

  • Optionele keuze voor het verzenden van het experiment naar meerdere typen Azure Compute.

  • Optionele keuze voor het configureren van het materialiseren van invoer- en uploaduitvoer.

  • Geavanceerde runtime-instellingen voor algemene runtimes, zoals spark en tensorflow.

In het volgende voorbeeld ziet u hoe u een trainingsscript verzendt op uw lokale computer.


   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)

In het volgende voorbeeld ziet u hoe u een trainingsscript op uw cluster verzendt met behulp van de opdrachteigenschap in plaats van script en argumenten.


   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)

In het volgende voorbeeld ziet u hoe u een opdracht uitvoert op uw 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)

Variabelen

Name Description
environment

De omgevingsdefinitie. Met dit veld configureert u de Python-omgeving. Het kan worden geconfigureerd om een bestaande Python-omgeving te gebruiken of te configureren voor het instellen van een tijdelijke omgeving voor het experiment. De definitie is ook verantwoordelijk voor het instellen van de vereiste toepassingsafhankelijkheden.

max_run_duration_seconds
int

De maximale tijd die is toegestaan voor de uitvoering. Het systeem probeert de uitvoering automatisch te annuleren als het langer duurde dan deze waarde.

node_count
int

Het aantal knooppunten dat moet worden gebruikt voor de taak.

priority
int

De prioriteit van de taak voor planningsbeleid.

history

De configuratiesectie die wordt gebruikt om functies voor logboekregistratie van experimentgeschiedenis uit te schakelen en in te schakelen.

spark

Wanneer het platform is ingesteld op PySpark, wordt de Spark-configuratiesectie gebruikt om de standaard SparkConf in te stellen voor de ingediende taak.

hdi

De sectie HDI-configuratie wordt alleen van kracht wanneer het doel is ingesteld op een Azure HDI-rekenproces. De HDI-configuratie wordt gebruikt om de YARN-implementatiemodus in te stellen. De standaardimplementatiemodus is cluster.

docker

De sectie Docker-configuratie wordt gebruikt om variabelen in te stellen voor de Docker-omgeving.

tensorflow

De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde TensorFlow-parameters. Deze parameter wordt alleen van kracht wanneer de framework parameter is ingesteld op TensorFlow en de communicator parameterserver. AmlCompute is de enige ondersteunde berekening voor deze configuratie.

mpi

De configuratiesectie die wordt gebruikt voor het configureren van parameters voor gedistribueerde MPI-taken. Deze parameter wordt alleen van kracht wanneer de framework parameter is ingesteld op Python en de communicator op OpenMpi of IntelMpi. AmlCompute is het enige ondersteunde rekentype voor deze configuratie.

pytorch

De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde PyTorch-taakparameters. Deze parameter wordt alleen van kracht wanneer de framework parameter is ingesteld op PyTorch en de communicator naar Nccl of Gloo. AmlCompute is het enige ondersteunde rekentype voor deze configuratie.

paralleltask

De configuratiesectie die wordt gebruikt voor het configureren van parameters voor gedistribueerde paralleltask-taken. Deze parameter wordt alleen van kracht wanneer de framework parameter is ingesteld op Python en de communicator parameter paralleltask. AmlCompute is het enige ondersteunde rekentype voor deze configuratie.

data_references

Alle gegevensbronnen zijn beschikbaar voor de uitvoering tijdens de uitvoering op basis van elke configuratie. Voor elk item van de woordenlijst is de sleutel een naam die aan de gegevensbron wordt gegeven en de waarde een DataReferenceConfiguration is.

data

Alle gegevens die tijdens de uitvoering beschikbaar moeten worden gesteld voor de uitvoering.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Alle gegevens om datacache beschikbaar te maken voor de uitvoering tijdens de uitvoering.

output_data

Alle uitvoer die moet worden geüpload en bijgehouden voor deze uitvoering.

source_directory_data_store
str

Het back-upgegevensarchief voor de projectshare.

amlcompute

De details van het rekendoel dat tijdens het experiment moet worden gemaakt. De configuratie wordt alleen van kracht wanneer het rekendoel AmlCompute is.

kubernetescompute

De details van het rekendoel dat tijdens het experiment moet worden gebruikt. De configuratie wordt alleen van kracht wanneer het rekendoel KubernetesCompute is.

services

Eindpunten voor interactief gebruik met de rekenresource. Toegestane eindpunten zijn Jupyter-, JupyterLab-, VS Code-, Tensorboard-, SSH- en Aangepaste poorten.

Methoden

delete

Verwijder een uitvoeringsconfiguratiebestand.

Hiermee wordt een UserErrorException opgegeven als het configuratiebestand niet wordt gevonden.

load

Laad een eerder opgeslagen uitvoeringsconfiguratiebestand vanuit een on-disk-bestand.

Als path er naar een bestand wordt verwezen, wordt de RunConfiguration vanuit dat bestand geladen.

Als path verwijst naar een map, die een projectmap moet zijn, wordt runconfiguration geladen vanuit <path>/.azureml/<name> of <path>/aml_config/<name>.

save

Sla RunConfiguration op in een bestand op schijf.

A UserErrorException wordt verhoogd wanneer:

  • De RunConfiguration kan niet worden opgeslagen met de opgegeven naam.

  • Er is geen name parameter opgegeven.

  • De path parameter is ongeldig.

Als path de indeling <dir_path>/<file_name>, waarbij <dir_path> een geldige map is, wordt RunConfiguration opgeslagen op <dir_path>/<file_name>.

Als path verwijst naar een map, die een projectmap moet zijn, wordt runconfiguration opgeslagen op <path>/.azureml/<name> of <path>/aml_config/<name>.

Deze methode is handig bij het handmatig bewerken van de configuratie of bij het delen van de configuratie met de CLI.

delete

Verwijder een uitvoeringsconfiguratiebestand.

Hiermee wordt een UserErrorException opgegeven als het configuratiebestand niet wordt gevonden.

static delete(path, name)

Parameters

Name Description
path
Vereist
str

Een gebruiker heeft de hoofdmap geselecteerd voor het uitvoeren van configuraties. Dit is doorgaans de Git-opslagplaats of de hoofdmap van het Python-project. De configuratie wordt verwijderd uit een submap met de naam .azureml.

name
Vereist
str

De naam van het configuratiebestand.

Uitzonderingen

Type Description
UserErrorException

load

Laad een eerder opgeslagen uitvoeringsconfiguratiebestand vanuit een on-disk-bestand.

Als path er naar een bestand wordt verwezen, wordt de RunConfiguration vanuit dat bestand geladen.

Als path verwijst naar een map, die een projectmap moet zijn, wordt runconfiguration geladen vanuit <path>/.azureml/<name> of <path>/aml_config/<name>.

static load(path, name=None)

Parameters

Name Description
path
Vereist
str

Een gebruiker heeft de hoofdmap geselecteerd voor het uitvoeren van configuraties. Dit is doorgaans de Git-opslagplaats of de hoofdmap van het Python-project. Voor compatibiliteit met eerdere versies wordt de configuratie ook geladen vanuit .azureml of aml_config submap. Als het bestand zich niet in deze mappen bevindt, wordt het bestand vanuit het opgegeven pad geladen.

name
str

De naam van het configuratiebestand.

Default value: None

Retouren

Type Description

Het uitvoeringsconfiguratieobject.

save

Sla RunConfiguration op in een bestand op schijf.

A UserErrorException wordt verhoogd wanneer:

  • De RunConfiguration kan niet worden opgeslagen met de opgegeven naam.

  • Er is geen name parameter opgegeven.

  • De path parameter is ongeldig.

Als path de indeling <dir_path>/<file_name>, waarbij <dir_path> een geldige map is, wordt RunConfiguration opgeslagen op <dir_path>/<file_name>.

Als path verwijst naar een map, die een projectmap moet zijn, wordt runconfiguration opgeslagen op <path>/.azureml/<name> of <path>/aml_config/<name>.

Deze methode is handig bij het handmatig bewerken van de configuratie of bij het delen van de configuratie met de CLI.

save(path=None, name=None, separate_environment_yaml=False)

Parameters

Name Description
separate_environment_yaml

Geeft aan of de Conda-omgevingsconfiguratie moet worden opgeslagen. Indien waar, wordt de Configuratie van de Conda-omgeving opgeslagen in een YAML-bestand met de naam 'environment.yml'.

Default value: False
path
str

Een gebruiker heeft de hoofdmap geselecteerd voor het uitvoeren van configuraties. Dit is doorgaans de Git-opslagplaats of de hoofdmap van het Python-project. De configuratie wordt opgeslagen in een submap met de naam .azureml.

Default value: None
name
str

[Vereist] De naam van het configuratiebestand.

Default value: None

Retouren

Type Description

Kenmerken

auto_prepare_environment

Haal de auto_prepare_environment parameter op. Dit is een afgeschafte en ongebruikte instelling.

environment_variables

Runtime-omgevingsvariabelen.

Retouren

Type Description

Runtimevariabelen

target

Rekendoel ophalen waarbij de taak is gepland voor uitvoering.

Het standaarddoel is 'lokaal' dat verwijst naar de lokale computer. Beschikbare cloud-rekendoelen zijn te vinden met behulp van de functie compute_targets.

Retouren

Type Description
str

De doelnaam