Delen via


RunConfiguration Klas

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

Het object RunConfiguration bevat de informatie die nodig is voor het verzenden van een trainingsuitvoering in een experiment. Normaal gesproken maakt u niet rechtstreeks een RunConfiguration-object, 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. Wanneer u bijvoorbeeld een PythonScriptStepinstelt, kunt u het runconfiguration-object van de stap openen en Conda-afhankelijkheden configureren of toegang krijgen tot 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.

Overname
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration

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.

standaardwaarde: None
arguments

Opdrachtregelargumenten voor het Python-scriptbestand.

standaardwaarde: None
framework
str

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

standaardwaarde: None
communicator
str

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

standaardwaarde: None
conda_dependencies

Wanneer de standaardwaarde Onwaar wordt gelaten, maakt het systeem een Python-omgeving, die de pakketten bevat die zijn opgegeven in conda_dependencies. Als true is ingesteld, kan een bestaande Python-omgeving worden opgegeven met de instelling python_interpreter.

standaardwaarde: None
auto_prepare_environment
Vereist

AFGEKEURD. 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. Zowel opdracht- als script-/argumenteigenschappen 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']

standaardwaarde: None
_history_enabled
standaardwaarde: None
_path
standaardwaarde: None
_name
standaardwaarde: None

Opmerkingen

We bouwen meestal machine learning-systemen 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 mogelijk worden weergegeven als zoekresultaten die overeenkomen met een query. Voor onze zoektocht naar het beste machine learning-model moeten we mogelijk verschillende algoritmen uitproberen of andere parameterinstellingen overwegen, enzovoort.

In de Azure Machine Learning SDK gebruiken we het concept van een experiment om vast te leggen dat verschillende trainingsuitvoeringen gerelateerd zijn 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 instellingen voor de uitvoeringsomgeving 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, als de verschillen in de configuratieparameters (bijvoorbeeld leersnelheid, verliesfunctie, enzovoort) die verschillende trainingsuitvoeringen van elkaar onderscheiden.

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

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 om de toepassingsafhankelijkheden te beheren. Het proces voor het indienen van de taak 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 het uploaden van uitvoer.

  • Geavanceerde runtime-instellingen voor veelvoorkomende 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 in 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 wordt de Python-omgeving geconfigureerd. Deze kan worden geconfigureerd voor het gebruik van een bestaande Python-omgeving of 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 maximaal toegestane tijd voor de uitvoering. Het systeem probeert de uitvoering automatisch te annuleren als deze langer duurde dan deze waarde.

node_count
int

Het aantal knooppunten dat voor de taak moet worden gebruikt.

priority
int

De prioriteit van de taak voor planningsbeleid.

history

De configuratiesectie die wordt gebruikt voor het uitschakelen en inschakelen van functies voor logboekregistratie van experimentgeschiedenis.

spark

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

hdi

De sectie HDI-configuratie wordt alleen van kracht wanneer het doel is ingesteld op een Azure HDI-berekening. 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 is ingesteld op TensorFlow en de communicator op ParameterServer. AmlCompute is de enige ondersteunde berekening voor deze configuratie.

mpi

De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde MPI-taakparameters. Deze parameter wordt alleen van kracht wanneer de framework 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 is ingesteld op PyTorch en de communicator op Nccl of Gloo. AmlCompute is het enige ondersteunde rekentype voor deze configuratie.

paralleltask

De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde parallelletaaktaakparameters. Deze parameter wordt alleen van kracht wanneer de framework is ingesteld op Python en de communicator op 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 is gegeven en de waarde is een DataReferenceConfiguration.

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.

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 die interactief zijn met de rekenresource. Toegestane eindpunten zijn Jupyter, JupyterLab, VS Code, Tensorboard, SSH en Aangepaste poorten.

Methoden

delete

Een uitvoeringsconfiguratiebestand verwijderen.

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

load

Laad een eerder opgeslagen uitvoeringsconfiguratiebestand uit een bestand op schijf.

Als path naar een bestand verwijst, wordt de RunConfiguration uit dat bestand geladen.

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

save

Sla RunConfiguration op in een bestand op schijf.

A UserErrorException wordt gegenereerd 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> is, waarbij <dir_path> een geldige map is, wordt RunConfiguration opgeslagen op <dir_path>/<file_name>.

Als path naar een map verwijst, wat een projectmap moet zijn, wordt RunConfiguration opgeslagen op <pad>/.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

Een uitvoeringsconfiguratiebestand verwijderen.

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

static delete(path, name)

Parameters

Name Description
path
Vereist
str

Een gebruiker heeft de hoofdmap geselecteerd voor uitvoeringsconfiguraties. Dit is meestal 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 uit een bestand op schijf.

Als path naar een bestand verwijst, wordt de RunConfiguration uit dat bestand geladen.

Als path naar een map verwijst, wat een projectmap moet zijn, wordt RunConfiguration geladen vanuit <pad>/.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 uitvoeringsconfiguraties. Dit is meestal 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 geladen vanuit het opgegeven pad.

name
str

De naam van het configuratiebestand.

standaardwaarde: None

Retouren

Type Description

Het configuratieobject uitvoeren.

Uitzonderingen

Type Description
UserErrorException

save

Sla RunConfiguration op in een bestand op schijf.

A UserErrorException wordt gegenereerd 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> is, waarbij <dir_path> een geldige map is, wordt RunConfiguration opgeslagen op <dir_path>/<file_name>.

Als path naar een map verwijst, wat een projectmap moet zijn, wordt RunConfiguration opgeslagen op <pad>/.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 configuratie van de Conda-omgeving moet worden opgeslagen. Indien waar, wordt de Configuratie van de Conda-omgeving opgeslagen in een YAML-bestand met de naam 'environment.yml'.

standaardwaarde: False
path
str

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

standaardwaarde: None
name
str

[Vereist] De naam van het configuratiebestand.

standaardwaarde: None

Retouren

Type Description

Uitzonderingen

Type Description
UserErrorException

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

Runtime-variabelen

target

Haal het rekendoel op waar de taak is gepland voor uitvoering.

Het standaarddoel is 'lokaal' dat verwijst naar de lokale computer. Beschikbare cloud-rekendoelen kunnen worden gevonden met behulp van de functie compute_targets.

Retouren

Type Description
str

De doelnaam