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._AbstractRunConfigElementRunConfiguration
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
|
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
|
Das Zielframework für die Ausführung. Unterstützte Frameworks sind Python, PySpark, TensorFlow und PyTorch. Standardwert: None
|
communicator
|
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 Standardwert: None
|
auto_prepare_environment
Erforderlich
|
VERALTET. Diese Einstellung wird nicht mehr verwendet. |
command
|
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
|
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
|
Die Anzahl von Knoten, die für den Auftrag verwendet werden sollen. |
priority
|
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 |
mpi
|
Der Konfigurationsabschnitt zum Konfigurieren verteilter MPI-Auftragsparameter.
Dieser Parameter wird nur wirksam, wenn |
pytorch
|
Der Konfigurationsabschnitt zum Konfigurieren verteilter PyTorch-Auftragsparameter.
Dieser Parameter wird nur wirksam, wenn |
paralleltask
|
Der Konfigurationsabschnitt zum Konfigurieren verteilter ParallelTask-Auftragsparameter.
Dieser Parameter wird nur wirksam, wenn |
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
|
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 Wenn |
save |
Speichern der Laufzeitkonfiguration (RunConfiguration) in einer Datei auf dem Datenträger. In folgenden Fällen wird eine Ausnahme vom Typ UserErrorException ausgelöst:
Wenn Wenn 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
|
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
|
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
|
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
|
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
|
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
|
[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
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 |
---|---|
Der Zielname |