Freigeben über


RunConfiguration Klasse

Stellt die Konfiguration für Experimentausführungen an verschiedenen Computezielen in Azure Machine Learning dar.

Das RunConfiguration-Objekt kapselt die Informationen, die zum Übermitteln einer Trainingsausführung in einem Experiment erforderlich sind. In der Regel erstellen Sie ein RunConfiguration-Objekt nicht direkt, sondern erhalten eines über eine Methodenrückgabe, z. B. von der submit-Methode der Experiment-Klasse.

RunConfiguration ist eine Basisumgebungskonfiguration, die auch in anderen Arten von Konfigurationsschritten verwendet wird, die davon abhängen, welchen Ausführungstyp Sie auslösen. Wenn Sie beispielsweise einen Python-Skriptschritt (PythonScriptStep) einrichten, können Sie auf das RunConfiguration-Objekt des Schritts zugreifen und Conda-Abhängigkeiten konfigurieren oder auf die Umgebungseigenschaften für die Ausführung zugreifen.

Beispiele für Laufzeitkonfigurationen finden Sie unter Auswählen und Verwenden eines Computeziels zum Trainieren Ihres Modells.

Initialisieren Sie eine RunConfiguration mit den Standardeinstellungen.

Vererbung
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration

Konstruktor

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

Parameter

Name Beschreibung
script
str

Der relative Pfad zur Python-Skriptdatei. Der Dateipfad ist relativ zum Quellverzeichnis, das an submit übergeben wurde.

Standardwert: None
arguments

Befehlszeilenargumente für die Python-Skriptdatei.

Standardwert: None
framework
str

Das Zielframework für die Ausführung. Unterstützte Frameworks sind Python, PySpark, TensorFlow und PyTorch.

Standardwert: None
communicator
str

Der in der Ausführung verwendete Communicator. Die unterstützten Communicators sind „None“, „ParameterServer“, „OpenMpi“ und „IntelMpi“. Beachten Sie, dass „OpenMpi“ ein benutzerdefiniertes Image erfordert, auf dem OpenMPI installiert ist. Verwenden Sie „ParameterServer“ oder „OpenMpi“ für AmlCompute-Cluster. Verwenden Sie „IntelMpi“ für verteilte Trainingsaufträge.

Standardwert: None
conda_dependencies

Bei Verwendung des Standardwerts „False“ wird eine Python-Umgebung erstellt, die alle in conda_dependencies angegebenen Pakete enthält. Bei Verwendung von „True“ kann mit der Einstellung „python_interpreter“ eine vorhandene Python-Umgebung angegeben werden.

Standardwert: None
auto_prepare_environment
Erforderlich

VERALTET. Diese Einstellung wird nicht mehr verwendet.

command
list[str] oder str

Der Befehl, der für die Ausführung übermittelt werden soll. Die Befehlseigenschaft kann auch anstelle von Skripts/Argumenten verwendet werden. Die Befehls- und die Skript-/Argumenteigenschaften können nicht zusammen verwendet werden, um eine Ausführung zu übermitteln. So übermitteln Sie eine Skriptdatei mithilfe der Befehlseigenschaft: ['python', 'train.py', '-arg1', arg1_val]. So führen Sie einen Befehl aus: ['ls'].

Standardwert: None
_history_enabled
Standardwert: None
_path
Standardwert: None
_name
Standardwert: None

Hinweise

Systeme für maschinelles Lernen werden in der Regel erstellt, um ein bestimmtes Problem zu lösen. Sie können beispielsweise verwendet werden, um das beste Modell zu finden, das Webseiten einen Rang zuweist, die als Suchergebnisse für eine Abfrage bereitgestellt werden können. Die Suche nach dem besten Machine Learning-Modell erfordert möglicherweise unter anderem das Ausprobieren verschiedener Algorithmen oder die Anwendung unterschiedlicher Parametereinstellungen.

Im Azure Machine Learning SDK wird das Konzept von Experimenten genutzt, um der Tatsache Rechnung zu tragen, dass verschiedene Trainingsausführungen aufgrund des zu lösenden Problems miteinander verwandt sind. Ein Experiment fungiert dann als logischer Container für diese Trainingsausführungen. Dies vereinfacht die Nachverfolgung des Fortschritts über Trainingsausführungen hinweg, Direktvergleiche zweier Trainingsausführungen und vieles mehr.

Die Laufzeitkonfiguration (RunConfiguration) kapselt die Einstellungen der Ausführungsumgebung, die zum Übermitteln einer Trainingsausführung in einem Experiment erforderlich sind. Es erfasst sowohl die gemeinsame Struktur von Trainingsausführungen, die für dasselbe Machine Learning-Problem konzipiert sind, als auch die Unterschiede in den Konfigurationsparametern (z. B. Lernrate, Verlustfunktion usw.), die unterschiedliche Trainingsläufe voneinander unterscheiden.

In typischen Trainingsszenarien wird zur Verwendung einer Laufzeitkonfiguration (RunConfiguration) ein ScriptRunConfig-Objekt erstellt, das ein RunConfiguration-Objekt und ein Ausführungsskript für das Training enthält.

Die Konfiguration der Laufzeitkonfiguration (RunConfiguration) umfasst Folgendes:

  • Bündeln des Quellverzeichnisses für das Experiment einschließlich des übermittelten Skripts

  • Festlegen der Befehlszeilenargumente für das übermittelte Skript

  • Konfigurieren des Pfads für den Python-Interpreter

  • Abrufen der Conda-Konfiguration zum Verwalten der Anwendungsabhängigkeiten. Bei der Auftragsübermittlung kann die Konfiguration verwendet werden, um eine temporäre Conda-Umgebung zu erstellen und darin die Anwendung zu starten. Die temporären Umgebungen werden zwischengespeichert und in nachfolgenden Ausführungen wiederverwendet.

  • Optional: Verwenden von Docker-Images und benutzerdefinierten Basisimages

  • Optional: Übermitteln des Experiments an mehrere Azure-Computetypen

  • Optional: Konfigurieren der Materialisierung von Eingaben und des Hochladens von Ausgaben

  • Erweiterte Laufzeiteinstellungen für gängige Runtimes wie Spark und TensorFlow

Das folgende Beispiel zeigt, wie Sie ein Trainingsskript auf Ihrem lokalen Computer übermitteln:


   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)

Das folgende Beispiel zeigt, wie Sie ein Trainingsskript in Ihrem Cluster unter Verwendung der Befehlseigenschaft anstelle von Skript und Argumenten übermitteln:


   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)

Das folgende Beispiel zeigt, wie Sie einen Befehl in Ihrem Cluster ausführen:


   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)

Variablen

Name Beschreibung
environment

Die Umgebungsdefinition. Dieses Feld dient zum Konfigurieren der Python-Umgebung. Es kann für die Verwendung einer vorhandenen Python-Umgebung oder zum Einrichten einer temporären Umgebung für das Experiment konfiguriert werden. Die Definition dient auch zum Festlegen der erforderlichen Anwendungsabhängigkeiten.

max_run_duration_seconds
int

Die maximal zulässige Zeit für die Ausführung. Das System versucht, die Ausführung automatisch abzubrechen, wenn dieser Wert überschritten wurde.

node_count
int

Die Anzahl von Knoten, die für den Auftrag verwendet werden sollen.

priority
int

Die Priorität des Auftrags für die Planungsrichtlinie.

history

Der Konfigurationsabschnitt, der zum Deaktivieren und Aktivieren von Protokollierungsfeatures für den Experimentverlauf verwendet wird.

spark

Wenn als Plattform PySpark festgelegt ist, wird im Konfigurationsabschnitt für Spark die SparkConf-Standardeinstellung für den übermittelten Auftrag festgelegt.

hdi

Der HDI-Konfigurationsabschnitt wird nur wirksam, wenn ein Azure-HDI-Computeziel festgelegt wurde. Mit der HDI-Konfiguration wird der YARN-Bereitstellungsmodus festgelegt. Standardmäßig wird der Clusterbereitstellungsmodus verwendet.

docker

Der Docker-Konfigurationsabschnitt wird zum Festlegen von Variablen für die Docker-Umgebung verwendet.

tensorflow

Der Konfigurationsabschnitt zum Konfigurieren verteilter TensorFlow-Parameter. Dieser Parameter wird nur wirksam, wenn framework auf „TensorFlow“ und communicator auf „ParameterServer“ festgelegt ist. AmlCompute ist der einzige unterstützte Computetyp für diese Konfiguration.

mpi

Der Konfigurationsabschnitt zum Konfigurieren verteilter MPI-Auftragsparameter. Dieser Parameter wird nur wirksam, wenn framework auf „Python“ und communicator auf „OpenMpi“ oder „IntelMpi“ festgelegt ist. AmlCompute ist der einzige unterstützte Computetyp für diese Konfiguration.

pytorch

Der Konfigurationsabschnitt zum Konfigurieren verteilter PyTorch-Auftragsparameter. Dieser Parameter wird nur wirksam, wenn framework auf „PyTorch“ und communicator auf „Nccl“ oder „Gloo“ festgelegt ist. AmlCompute ist der einzige unterstützte Computetyp für diese Konfiguration.

paralleltask

Der Konfigurationsabschnitt zum Konfigurieren verteilter ParallelTask-Auftragsparameter. Dieser Parameter wird nur wirksam, wenn framework auf „Python“ und communicator auf „ParallelTask“ festgelegt ist. AmlCompute ist der einzige unterstützte Computetyp für diese Konfiguration.

data_references

Alle Datenquellen sind während der Ausführung basierend auf den einzelnen Konfigurationen verfügbar. Für die einzelnen Elemente im Wörterbuch ist der Schlüssel der Name der Datenquelle, und der Wert ist ein DataReferenceConfiguration-Objekt.

data

Alle Daten, die während der Ausführung zur Verfügung gestellt werden sollen.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Alle Daten zum Verfügbarmachen des Datencaches während der Ausführung.

output_data

Alle Ausgaben, die für diese Ausführung hochgeladen und nachverfolgt werden sollen.

source_directory_data_store
str

Der zugrunde liegende Datenspeicher für die Projektfreigabe.

amlcompute

Die Details des Computeziels, das während des Experiments erstellt werden soll. Die Konfiguration wird nur wirksam, wenn das Computeziel „AmlCompute“ lautet.

kubernetescompute

Die Details des Computeziels, das während des Experiments verwendet werden soll. Die Konfiguration wird nur wirksam, wenn das Computeziel „KubernetesCompute“ lautet.

services

Endpunkte für die Interaktion mit der Computeressource. Zulässige Endpunkte sind Jupyter, JupyterLab, VS Code, Tensorboard, SSH und benutzerdefinierte Ports.

Methoden

delete

Löschen einer Laufzeitkonfigurationsdatei.

Löst eine Ausnahme vom Typ UserErrorException aus, wenn die Konfigurationsdatei nicht gefunden wird.

load

Laden einer zuvor gespeicherten Laufzeitkonfigurationsdatei aus einer Datei auf dem Datenträger.

Wenn path auf eine Datei verweist, wird die Laufzeitkonfiguration (RunConfiguration) aus dieser Datei geladen.

Wenn path auf ein Verzeichnis verweist (es sollte sich um ein Projektverzeichnis handeln), wird die Laufzeitkonfiguration (RunConfiguration) aus „<Pfad>/.azureml/<Name>“ oder „<Pfad>/aml_config/<Name>“ geladen.

save

Speichern der Laufzeitkonfiguration (RunConfiguration) in einer Datei auf dem Datenträger.

In folgenden Fällen wird eine Ausnahme vom Typ UserErrorException ausgelöst:

  • Die Laufzeitkonfiguration (RunConfiguration) kann nicht mit dem angegebenen Namen gespeichert werden.

  • Es wurde kein name-Parameter angegeben.

  • Der path-Parameter ist ungültig.

Wenn path das Format <Verzeichnispfad>/<Dateiname> hat und <Verzeichnispfad> ein gültiges Verzeichnis ist, wird die Laufzeitkonfiguration (RunConfiguration) unter <Verzeichnispfad>/<Dateiname> gespeichert.

Wenn path auf ein Verzeichnis verweist (es sollte sich um ein Projektverzeichnis handeln), wird die Laufzeitkonfiguration (RunConfiguration) unter „<Pfad>/.azureml/<Name>“ oder „<Pfad>/aml_config/<Name>“ gespeichert.

Diese Methode ist hilfreich, wenn Sie die Konfiguration manuell bearbeiten oder über die Befehlszeilenschnittstelle teilen möchten.

delete

Löschen einer Laufzeitkonfigurationsdatei.

Löst eine Ausnahme vom Typ UserErrorException aus, wenn die Konfigurationsdatei nicht gefunden wird.

static delete(path, name)

Parameter

Name Beschreibung
path
Erforderlich
str

Ein vom Benutzer ausgewähltes Stammverzeichnis für Laufzeitkonfigurationen. In der Regel ist dies das Git-Repository oder das Stammverzeichnis des Python-Projekts. Die Konfiguration wird aus einem Unterverzeichnis mit dem Namen „.azureml“ gelöscht.

name
Erforderlich
str

Der Name der Konfigurationsdatei.

Ausnahmen

Typ Beschreibung
UserErrorException

load

Laden einer zuvor gespeicherten Laufzeitkonfigurationsdatei aus einer Datei auf dem Datenträger.

Wenn path auf eine Datei verweist, wird die Laufzeitkonfiguration (RunConfiguration) aus dieser Datei geladen.

Wenn path auf ein Verzeichnis verweist (es sollte sich um ein Projektverzeichnis handeln), wird die Laufzeitkonfiguration (RunConfiguration) aus „<Pfad>/.azureml/<Name>“ oder „<Pfad>/aml_config/<Name>“ geladen.

static load(path, name=None)

Parameter

Name Beschreibung
path
Erforderlich
str

Ein vom Benutzer ausgewähltes Stammverzeichnis für Laufzeitkonfigurationen. In der Regel ist dies das Git-Repository oder das Stammverzeichnis des Python-Projekts. Aus Gründen der Abwärtskompatibilität wird die Konfiguration auch aus dem Unterverzeichnis „.azureml“ oder „aml_config“ geladen. Wenn sich die Datei nicht in diesen Verzeichnissen befindet, wird die Datei aus dem angegebenen Pfad geladen.

name
str

Der Name der Konfigurationsdatei.

Standardwert: None

Gibt zurück

Typ Beschreibung

Das Laufzeitkonfigurationsobjekt.

Ausnahmen

Typ Beschreibung
UserErrorException

save

Speichern der Laufzeitkonfiguration (RunConfiguration) in einer Datei auf dem Datenträger.

In folgenden Fällen wird eine Ausnahme vom Typ UserErrorException ausgelöst:

  • Die Laufzeitkonfiguration (RunConfiguration) kann nicht mit dem angegebenen Namen gespeichert werden.

  • Es wurde kein name-Parameter angegeben.

  • Der path-Parameter ist ungültig.

Wenn path das Format <Verzeichnispfad>/<Dateiname> hat und <Verzeichnispfad> ein gültiges Verzeichnis ist, wird die Laufzeitkonfiguration (RunConfiguration) unter <Verzeichnispfad>/<Dateiname> gespeichert.

Wenn path auf ein Verzeichnis verweist (es sollte sich um ein Projektverzeichnis handeln), wird die Laufzeitkonfiguration (RunConfiguration) unter „<Pfad>/.azureml/<Name>“ oder „<Pfad>/aml_config/<Name>“ gespeichert.

Diese Methode ist hilfreich, wenn Sie die Konfiguration manuell bearbeiten oder über die Befehlszeilenschnittstelle teilen möchten.

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

Parameter

Name Beschreibung
separate_environment_yaml

Gibt an, ob die Conda-Umgebungskonfiguration gespeichert werden soll. Bei „True“ wird die Conda-Umgebungskonfiguration in einer YAML-Datei namens „environment.yml“ gespeichert.

Standardwert: False
path
str

Ein vom Benutzer ausgewähltes Stammverzeichnis für Laufzeitkonfigurationen. In der Regel ist dies das Git-Repository oder das Stammverzeichnis des Python-Projekts. Die Konfiguration wird in einem Unterverzeichnis mit dem Namen „.azureml“ gespeichert.

Standardwert: None
name
str

[Erforderlich] Der Name der Konfigurationsdatei.

Standardwert: None

Gibt zurück

Typ Beschreibung

Ausnahmen

Typ Beschreibung
UserErrorException

Attribute

auto_prepare_environment

Abrufen des Parameters auto_prepare_environment. Diese Einstellung ist veraltet und wird nicht mehr verwendet.

environment_variables

Laufzeitumgebungsvariablen

Gibt zurück

Typ Beschreibung

Laufzeitvariablen

target

Abrufen des Computeziels, an dem die Ausführung des Auftrags geplant ist.

Das Standardziel ist „local“ (also der lokale Computer). Verfügbare Computeziele in der Cloud finden Sie mithilfe der Funktion compute_targets.

Gibt zurück

Typ Beschreibung
str

Der Zielname