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
- script
- str
Der relative Pfad zur Python-Skriptdatei. Der Dateipfad ist relativ zum Quellverzeichnis, das an submit übergeben wurde.
- framework
- str
Das Zielframework für die Ausführung. Unterstützte Frameworks sind Python, PySpark, TensorFlow und PyTorch.
- 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.
- conda_dependencies
- CondaDependencies
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.
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'].
- _history_enabled
- _path
- _name
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 zum Lösen desselben Machine Learning-Problems entwickelt wurden, als auch die Unterschiede in den Konfigurationsparametern (z. B. Lernrate, Verlustfunktion usw.), die verschiedene 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
- environment
- 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
- HistoryConfiguration
Der Konfigurationsabschnitt, der zum Deaktivieren und Aktivieren von Protokollierungsfeatures für den Experimentverlauf verwendet wird.
- spark
- SparkConfiguration
Wenn als Plattform PySpark festgelegt ist, wird im Konfigurationsabschnitt für Spark die SparkConf-Standardeinstellung für den übermittelten Auftrag festgelegt.
- hdi
- HdiConfiguration
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
- DockerConfiguration
Der Docker-Konfigurationsabschnitt wird zum Festlegen von Variablen für die Docker-Umgebung verwendet.
- tensorflow
- TensorflowConfiguration
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
- MpiConfiguration
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
- PyTorchConfiguration
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
- ParallelTaskConfiguration
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
- dict[str, DataReferenceConfiguration]
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.
- datacaches
- <xref:buildin.list>[DatacacheConfiguration]
Alle Daten zum Verfügbarmachen des Datencaches während der Ausführung.
- output_data
- OutputData
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
- AmlComputeConfiguration
Die Details des Computeziels, das während des Experiments erstellt werden soll. Die Konfiguration wird nur wirksam, wenn das Computeziel „AmlCompute“ lautet.
- kubernetescompute
- KubernetesComputeConfiguration
Die Details des Computeziels, das während des Experiments verwendet werden soll. Die Konfiguration wird nur wirksam, wenn das Computeziel „KubernetesCompute“ lautet.
- services
- dict[str, ApplicationEndpointConfiguration]
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
- 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 aus einem Unterverzeichnis mit dem Namen „.azureml“ gelöscht.
Ausnahmen
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
- 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. 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.
Gibt zurück
Das Laufzeitkonfigurationsobjekt.
Rückgabetyp
Ausnahmen
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
- separate_environment_yaml
- bool
Gibt an, ob die Conda-Umgebungskonfiguration gespeichert werden soll. Bei „True“ wird die Conda-Umgebungskonfiguration in einer YAML-Datei namens „environment.yml“ gespeichert.
- 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.
Rückgabetyp
Ausnahmen
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
Der Zielname
Rückgabetyp
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für