Freigeben über


RunConfiguration Klasse

Stellt die Konfiguration für Experimentläufe dar, die auf unterschiedliche Computeziele in Azure Machine Learning abzielen.

Das RunConfiguration -Objekt kapselt die informationen, die zum Übermitteln einer Schulung in einem Experiment erforderlich sind. In der Regel erstellen Sie kein RunConfiguration-Objekt direkt, sondern rufen ein Objekt aus einer Methode ab, die es zurückgibt, z. B. die submit Methode der Experiment Klasse.

RunConfiguration ist eine Basisumgebungskonfiguration, die auch in anderen Arten von Konfigurationsschritten verwendet wird, die von der Art der Ausführung abhängen, die Sie auslösen. Wenn Sie beispielsweise ein PythonScriptStepObjekt 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 Ausführungskonfigurationen finden Sie unter Auswählen und Verwenden eines Computeziels zum Trainieren Ihres Modells.

Initialisieren Sie eine RunConfiguration mit den Standardeinstellungen.

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.

Standardwert: None
arguments

Befehlszeilenargumente für die Python-Skriptdatei.

Standardwert: None
framework
str

Das zielorientierte Framework, das in der Ausführung verwendet wird. Unterstützte Frameworks sind Python, PySpark, TensorFlow und PyTorch.

Standardwert: None
communicator
str

Der kommunikator, der in der Ausführung verwendet wird. 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 Schulungsaufträge.

Standardwert: None
conda_dependencies

Wenn der Standardwert von False links ist, erstellt das System eine Python-Umgebung, die die in conda_dependenciesangegebenen Pakete enthält. Wenn "true" festgelegt ist, kann eine vorhandene Python-Umgebung mit der einstellung python_interpreter 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. Sowohl Befehls- als auch 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 tatsächlichen Befehl aus – ['ls']

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

Hinweise

Wir erstellen Machine Learning-Systeme in der Regel, um ein bestimmtes Problem zu lösen. Beispielsweise könnten wir daran interessiert sein, das beste Modell zu finden, das Webseiten bewertet, die als Suchergebnisse bereitgestellt werden können, die einer Abfrage entsprechen. Unsere Suche nach dem besten Machine Learning-Modell erfordert möglicherweise, dass wir verschiedene Algorithmen ausprobieren oder verschiedene Parametereinstellungen in Betracht ziehen usw.

Im Azure Machine Learning SDK verwenden wir das Konzept eines Experiments, um die Vorstellung zu erfassen, dass verschiedene Schulungsläufe mit dem Problem zusammenhängen, das sie lösen möchten. Anschließend Experiment fungiert ein logischer Container für diese Trainingsläufe, wodurch es einfacher ist, den Fortschritt über Trainingsläufe hinweg nachzuverfolgen, zwei Trainingsläufe direkt zu vergleichen usw.

Die RunConfiguration kapselt die Ausführungsumgebungseinstellungen, die zum Übermitteln einer Schulung in einem Experiment erforderlich sind. Es erfasst sowohl die gemeinsame Struktur von Schulungsläufen, die entwickelt wurden, um dasselbe Machine Learning-Problem zu lösen, als auch die Unterschiede in den Konfigurationsparametern (z. B. Lernrate, Verlustfunktion usw.), die unterschiedliche Trainingsläufe voneinander unterscheiden.

In typischen Schulungsszenarien wird RunConfiguration verwendet, indem ein ScriptRunConfig Objekt erstellt wird, das ein RunConfiguration-Objekt und ein Ausführungsskript für Schulungen zusammenpackt.

Die Konfiguration von RunConfiguration umfasst:

  • Bündeln des Experimentquellverzeichnisses einschließlich des übermittelten Skripts.

  • Festlegen der Befehlszeilenargumente für das übermittelte Skript.

  • Konfigurieren des Pfads für den Python-Dolmetscher.

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

  • Optionale Verwendung von Docker und benutzerdefinierten Basisimages.

  • Optionale Auswahl der Übermittlung des Experiments an mehrere Arten von Azure Compute.

  • Optionale Konfiguration der Materialisierung von Eingaben und Hochladen von Ausgaben.

  • Erweiterte Laufzeiteinstellungen für allgemeine Laufzeiten wie Spark und Tensorflow.

Das folgende Beispiel zeigt, wie Sie ein Schulungsskript 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 mithilfe der Befehlseigenschaft anstelle von Skript und Argumenten ein Schulungsskript auf Ihrem Cluster ü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 auf 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 konfiguriert die Python-Umgebung. Es kann so konfiguriert werden, dass eine vorhandene Python-Umgebung verwendet oder konfiguriert wird, um eine temporäre Umgebung für das Experiment einzurichten. Die Definition ist auch für das Festlegen der erforderlichen Anwendungsabhängigkeiten verantwortlich.

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 länger dauerte.

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 Terminplanungsrichtlinie.

history

Der Konfigurationsabschnitt, der zum Deaktivieren und Aktivieren der Features für die Protokollierung des Experimentverlaufs verwendet wird.

spark

Wenn die Plattform auf PySpark festgelegt ist, wird der Spark-Konfigurationsabschnitt verwendet, um den Standardmäßigen SparkConf für den übermittelten Auftrag festzulegen.

hdi

Der HDI-Konfigurationsabschnitt wird nur wirksam, wenn das Ziel auf eine Azure HDI-Berechnung festgelegt ist. Die HDI-Konfiguration wird verwendet, um den YARN-Bereitstellungsmodus festzulegen. Der Standardmäßige Bereitstellungsmodus ist Cluster.

docker

Der Abschnitt "Docker-Konfiguration" wird verwendet, um Variablen für die Docker-Umgebung festzulegen.

tensorflow

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

mpi

Der Konfigurationsabschnitt zum Konfigurieren verteilter MPI-Auftragsparameter. Dieser Parameter wird nur wirksam, wenn der framework Parameter auf Python und auf communicator 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 der framework Parameter auf "PyTorch" und communicator "Nccl" oder "Gloo" festgelegt ist. AmlCompute ist der einzige unterstützte Computetyp für diese Konfiguration.

paralleltask

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

data_references

Alle Datenquellen sind für die Ausführung während der Ausführung verfügbar, basierend auf jeder Konfiguration. Für jedes Element des Wörterbuchs ist der Schlüssel ein Name der Datenquelle, und der Wert ist ein DataReferenceConfiguration.

data

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

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Alle Daten, die datencache für die Ausführung während der Ausführung verfügbar machen sollen.

output_data

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

source_directory_data_store
str

Der Sicherungsdatenspeicher 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 ist.

kubernetescompute

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

services

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

Methoden

delete

Löschen Sie eine Ausführungskonfigurationsdatei.

Löst ein UserErrorException , wenn die Konfigurationsdatei nicht gefunden wird.

load

Laden Sie eine zuvor gespeicherte Ausführungskonfigurationsdatei aus einer Datenträgerdatei.

Wenn path sie auf eine Datei verweist, wird die RunConfiguration aus dieser Datei geladen.

Wenn path sie auf ein Verzeichnis verweist, das ein Projektverzeichnis sein soll, wird die RunConfiguration aus <"path>/.azureml/name</><path>/aml_config/<name>" geladen.

save

Speichern Sie die RunConfiguration auf einer Datei auf dem Datenträger.

A UserErrorException wird ausgelöst, wenn:

  • Die 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 <dir_path>/<file_name> ist, wobei <dir_path> ein gültiges Verzeichnis ist, wird die RunConfiguration unter <dir_path>/<file_name> gespeichert.

Wenn path sie auf ein Verzeichnis verweist, das ein Projektverzeichnis sein soll, wird "RunConfiguration" unter <"path>/.azureml/name</><path>/aml_config/<name>" gespeichert.

Diese Methode ist hilfreich beim manuellen Bearbeiten der Konfiguration oder beim Freigeben der Konfiguration mit der CLI.

delete

Löschen Sie eine Ausführungskonfigurationsdatei.

Löst ein UserErrorException , wenn die Konfigurationsdatei nicht gefunden wird.

static delete(path, name)

Parameter

Name Beschreibung
path
Erforderlich
str

Ein Benutzer hat das Stammverzeichnis für Ausführungskonfigurationen ausgewählt. In der Regel ist dies das Git-Repository oder das Python-Projektstammverzeichnis. Die Konfiguration wird aus einem Unterverzeichnis namens ".azureml" gelöscht.

name
Erforderlich
str

Der Name der Konfigurationsdatei.

Ausnahmen

Typ Beschreibung
UserErrorException

load

Laden Sie eine zuvor gespeicherte Ausführungskonfigurationsdatei aus einer Datenträgerdatei.

Wenn path sie auf eine Datei verweist, wird die RunConfiguration aus dieser Datei geladen.

Wenn path sie auf ein Verzeichnis verweist, das ein Projektverzeichnis sein soll, wird die RunConfiguration aus <"path>/.azureml/name</><path>/aml_config/<name>" geladen.

static load(path, name=None)

Parameter

Name Beschreibung
path
Erforderlich
str

Ein Benutzer hat das Stammverzeichnis für Ausführungskonfigurationen ausgewählt. In der Regel ist dies das Git-Repository oder das Python-Projektstammverzeichnis. Aus Gründen der Abwärtskompatibilität wird die Konfiguration auch aus AZUREML oder aml_config Unterverzeichnis 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 Ausführungskonfigurationsobjekt.

save

Speichern Sie die RunConfiguration auf einer Datei auf dem Datenträger.

A UserErrorException wird ausgelöst, wenn:

  • Die 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 <dir_path>/<file_name> ist, wobei <dir_path> ein gültiges Verzeichnis ist, wird die RunConfiguration unter <dir_path>/<file_name> gespeichert.

Wenn path sie auf ein Verzeichnis verweist, das ein Projektverzeichnis sein soll, wird "RunConfiguration" unter <"path>/.azureml/name</><path>/aml_config/<name>" gespeichert.

Diese Methode ist hilfreich beim manuellen Bearbeiten der Konfiguration oder beim Freigeben der Konfiguration mit der CLI.

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 Benutzer hat das Stammverzeichnis für Ausführungskonfigurationen ausgewählt. In der Regel ist dies das Git-Repository oder das Python-Projektstammverzeichnis. Die Konfiguration wird in einem Unterverzeichnis namens ".azureml" gespeichert.

Standardwert: None
name
str

[Erforderlich] Der Name der Konfigurationsdatei.

Standardwert: None

Gibt zurück

Typ Beschreibung

Attribute

auto_prepare_environment

Rufen Sie den auto_prepare_environment Parameter ab. Dies ist eine veraltete und nicht verwendete Einstellung.

environment_variables

Laufzeitumgebungsvariablen.

Gibt zurück

Typ Beschreibung

Laufzeitvariablen

target

Rufen Sie das Computeziel ab, in dem der Auftrag für die Ausführung geplant ist.

Das Standardziel ist "lokal", das auf den lokalen Computer verweist. Verfügbare Cloud-Computeziele können mithilfe der Funktion compute_targetsgefunden werden.

Gibt zurück

Typ Beschreibung
str

Der Zielname