Freigeben über


PipelineStep Klasse

Stellt einen Ausführungsschritt in einer Azure Machine Learning-Pipeline dar.

Pipelines setzen sich aus mehreren Pipelineschritten (PipelineSteps) zusammen, bei denen es sich um unterschiedliche Recheneinheiten in der Pipeline handelt. Jeder Schritt kann unabhängig ausgeführt werden und isolierte Computeressourcen verwenden. Jeder Schritt verfügt in der Regel über eigene benannte Eingaben, Ausgaben und Parameter.

Die PipelineStep-Klasse ist die Basisklasse, von der andere integrierte Schrittklassen erben, die für gängige Szenarien konzipiert sind, etwa PythonScriptStep, DataTransferStep und HyperDriveStep.

Eine Übersicht über die Beziehung zwischen Pipelines und PipelineSteps finden Sie unter Beschreibung von Azure Machine Learning-Pipelines.

Initialisieren Sie PipelineStep.

Vererbung
builtins.object
PipelineStep

Konstruktor

PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)

Parameter

Name Beschreibung
name
Erforderlich
str

Der Name des Pipelineschritts.

inputs
Erforderlich

Die Liste der Eingaben für den Schritt.

outputs
Erforderlich

Die Liste der Ausgaben für den Schritt.

arguments

Eine optionale Liste von Argumenten, die an ein im Schritt verwendetes Skript übergeben werden.

Standardwert: None
fix_port_name_collisions

Gibt an, ob Namenskonflikte behoben werden sollen. Bei „true“ erhält die Eingabe den Präfix „INPUT“, wenn Ein- und Ausgabe denselben Namen haben. Die Standardeinstellung lautet „false“.

Standardwert: False
resource_inputs

Eine optionale Liste von Eingaben, die als Ressourcen verwendet werden sollen. Ressourcen werden in den Skriptordner heruntergeladen und bieten eine Möglichkeit, das Verhalten des Skripts zur Laufzeit zu ändern.

Standardwert: None
name
Erforderlich
str

Der Name des Pipelineschritts.

inputs
Erforderlich

Die Liste der Eingaben für den Schritt.

outputs
Erforderlich

Die Liste der Ausgaben für den Schritt.

arguments
Erforderlich

Eine optionale Liste von Argumenten, die an ein im Schritt verwendetes Skript übergeben werden.

fix_port_name_collisions
Erforderlich

Gibt an, ob Namenskonflikte behoben werden sollen. Bei „true“ erhält die Eingabe den Präfix „INPUT“, wenn Ein- und Ausgabe denselben Namen haben. Die Standardeinstellung lautet „false“.

resource_inputs
Erforderlich

Eine optionale Liste von Eingaben, die als Ressourcen verwendet werden sollen. Ressourcen werden in den Skriptordner heruntergeladen und bieten eine Möglichkeit, das Verhalten des Skripts zur Laufzeit zu ändern.

Hinweise

Ein PipelineStep ist eine Ausführungseinheit, die in der Regel ein Ausführungsziel (Computeziel), ein Skript zur Ausführung mit optionalen Skriptargumenten und Eingaben benötigt und Ausgaben erzeugen kann. Der Schritt kann auch eine Reihe anderer Parameter für den Schritt verwenden.

Pipelineschritte können zusammen konfiguriert werden, um eine Pipeline zu erstellen, die einen gemeinsam nutzbaren und wiederverwendbaren Azure Machine Learning-Workflow darstellt. Jeder Schritt einer Pipeline kann so konfiguriert werden, dass die vorherigen Ausführungsergebnisse wiederverwendet werden können, wenn die Schrittinhalte (Skripts/Abhängigkeiten) sowie Eingaben und Parameter unverändert bleiben. Wenn Sie den Schritt wiederverwenden, anstatt den Auftrag an Compute zu übermitteln, werden die Ergebnisse der vorherigen Ausführung sofort für alle nachfolgenden Schritte verfügbar gemacht.

Pipelines in Azure Machine Learning enthalten integrierte Schritte für gängige Szenarien. Beispiele finden Sie im Paket steps und in der AutoMLStep-Klasse. Eine Übersicht über das Erstellen einer Pipeline basierend auf vorgefertigten Schritten finden Sie unter https://aka.ms/pl-first-pipeline.

Von PipelineStep abgeleitete vorgefertigte Schritte sind Schritte, die in einer Pipeline verwendet werden. Wenn Ihr ML-Workflow die Erstellung von Schritten erfordert, die über verschiedene Pipelines hinweg versioniert und verwendet werden können, verwenden Sie die Funktionalität in der Klasse Module.

Beachten Sie Folgendes, wenn Sie mit Pipelineschritten und Eingabe-/Ausgabedaten arbeiten und Schritten wiederverwenden.

  • Es wird empfohlen, separate source_directory-Speicherorte für separate Schritte zu verwenden. Wenn sich alle Skripts in Ihren Pipelineschritten in einem einzigen Verzeichnis befinden, ändert sich der Hash dieses Verzeichnisses jedes Mal, wenn Sie eine Änderung an einem Skript vornehmen, sodass alle Schritte erneut ausgeführt werden müssen. Ein Beispiel für die Verwendung separater Verzeichnisse für verschiedene Schritte finden Sie unter https://aka.ms/pl-get-started.

  • Durch separate Ordner für Skripts und abhängige Dateien für jeden Schritt reduzieren Sie die Größe der Momentaufnahme, die für jeden Schritt erstellt wird, da diese nur den spezifischen Ordner enthält. Da Änderungen an Dateien im source_directory des Schritts einen erneuten Upload der Momentaufnahme auslösen, ist es sinnvoll, separate Ordner für die Schritte zu nutzen, um diese in der Pipeline wiederzuverwenden. Wenn nämlich keine Änderungen im source_directory eines Schritts vorgenommen werden, wird die vorherige Ausführung des Schritts wiederverwendet.

  • Wenn sich die in einem Schritt verwendeten Daten in einem Datenspeicher befinden und allow_reuse „true“ ist, werden keine Datenänderungen erkannt. Wenn die Daten als Teil der Momentaufnahme hochgeladen werden (im source_directory des Schritts), ändert sich der Hash und löst eine erneute Verarbeitung aus. Dies wird jedoch nicht empfohlen.

Methoden

create_input_output_bindings

Eingabe- und Ausgabebindungen aus den Schritteingaben und -ausgaben erstellen.

create_module_def

Erstellt das Moduldefinitionsobjekt, das den Schritt beschreibt.

create_node

Basierend auf diesem Schritt einen Knoten für den Pipelinegraphen erstellen.

get_source_directory

Das Quellverzeichnis für den Schritt abrufen und überprüfen, ob das Skript vorhanden ist.

resolve_input_arguments

Zuordnen von Ein- und Ausgaben zu Argumenten, um eine Argumentzeichenfolge zu erzeugen.

run_after

Diesen Schritt nach dem angegebenen Schritt ausführen.

validate_arguments

Überprüfen Sie, ob die in Argumenten bereitgestellten Ein- und Ausgaben des Schritts in den Ein- und Ausgabelisten enthalten sind.

create_input_output_bindings

Eingabe- und Ausgabebindungen aus den Schritteingaben und -ausgaben erstellen.

create_input_output_bindings(inputs, outputs, default_datastore, resource_inputs=None)

Parameter

Name Beschreibung
inputs
Erforderlich

Die Liste der Eingaben für den Schritt.

outputs
Erforderlich

Die Liste der Ausgaben für den Schritt.

default_datastore
Erforderlich

Der Standarddatenspeicher.

resource_inputs

Die Liste von Eingaben, die als Ressourcen verwendet werden sollen. Ressourcen werden in den Skriptordner heruntergeladen und bieten eine Möglichkeit, das Verhalten des Skripts zur Laufzeit zu ändern.

Standardwert: None

Gibt zurück

Typ Beschreibung

Tupel der Eingabe- und Ausgabebindungen.

create_module_def

Erstellt das Moduldefinitionsobjekt, das den Schritt beschreibt.

create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, arguments=None, runconfig=None, cloud_settings=None)

Parameter

Name Beschreibung
execution_type
Erforderlich
str

Der Ausführungstyp des Moduls

input_bindings
Erforderlich

Die Schritteingabebindungen

output_bindings
Erforderlich

Die Schrittausgabebindungen

param_defs

Die Definitionen der Schrittparameter.

Standardwert: None
create_sequencing_ports

Legt fest, ob Sequenzierungsports für das Modul erstellt werden.

Standardwert: True
allow_reuse

Legt fest, ob das Modul in zukünftigen Pipelines wiederverwendet werden kann.

Standardwert: True
version
str

Die Version des Moduls.

Standardwert: None
module_type
str

Der vom Modulerstellungsdienst zu erstellende Modultyp. Derzeit werden nur zwei Typen unterstützt: „None“ und „BatchInferencing“. module_type unterscheidet sich von execution_type, welcher angibt, welche Art von Back-End-Dienst zum Ausführen dieses Moduls verwendet werden soll.

Standardwert: None
arguments

Liste der Argumente mit Anmerkungen, die beim Aufrufen dieses Moduls verwendet werden sollen

Standardwert: None
runconfig
str

Ausführungskonfiguration, die für „python_script_step“ verwendet wird.

Standardwert: None
cloud_settings
<xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>

Einstellungen, die für Clouds verwendet werden

Standardwert: None

Gibt zurück

Typ Beschreibung

Das Moduldefinitionsobjekt.

create_node

Basierend auf diesem Schritt einen Knoten für den Pipelinegraphen erstellen.

abstract create_node(graph, default_datastore, context)

Parameter

Name Beschreibung
graph
Erforderlich

Das Diagramm, dem der Knoten hinzugefügt werden soll.

default_datastore
Erforderlich

Der Standarddatenspeicher, der für diesen Schritt verwendet werden soll.

context
Erforderlich
<xref:azureml.pipeline.core._GraphContext>

Das Graphkontextobjekt.

Gibt zurück

Typ Beschreibung

Der erstellte Knoten.

get_source_directory

Das Quellverzeichnis für den Schritt abrufen und überprüfen, ob das Skript vorhanden ist.

get_source_directory(context, source_directory, script_name)

Parameter

Name Beschreibung
context
Erforderlich
<xref:azureml.pipeline.core._GraphContext>

Das Graphkontextobjekt.

source_directory
Erforderlich
str

Das Quellverzeichnis für den Schritt.

script_name
Erforderlich
str

Der Skriptname für den Schritt.

hash_paths
Erforderlich

Die beim Bestimmen des Modulfingerabdrucks zu verwendenden Hashpfade.

Gibt zurück

Typ Beschreibung

Das Quellverzeichnis und die Hashpfade.

resolve_input_arguments

Zuordnen von Ein- und Ausgaben zu Argumenten, um eine Argumentzeichenfolge zu erzeugen.

static resolve_input_arguments(arguments, inputs, outputs, params)

Parameter

Name Beschreibung
arguments
Erforderlich

Eine Liste von Argumenten für den Schritt.

inputs
Erforderlich

Eine Liste von Eingaben für den Schritt.

outputs
Erforderlich

Eine Liste von Ausgaben für den Schritt.

params
Erforderlich

Eine Liste von Parametern für den Schritt.

Gibt zurück

Typ Beschreibung

Gibt ein Tupel von zwei Elementen zurück. Das erste ist eine flache Liste von Elementen für die aufgelösten Argumente. Das zweite ist eine Liste strukturierter Argumente (_InputArgument, _OutputArgument, _ParameterArgument und _StringArgument).

run_after

Diesen Schritt nach dem angegebenen Schritt ausführen.

run_after(step)

Parameter

Name Beschreibung
step
Erforderlich

Der Pipelineschritt, der vor diesem Schritt ausgeführt werden soll.

Hinweise

Wenn Sie einen Schritt ausführen möchten (etwa Schritt3, nachdem sowohl Schritt1 als auch Schritt2 abgeschlossen sind), können Sie Folgendes verwenden:


   step3.run_after(step1)
   step3.run_after(step2)

validate_arguments

Überprüfen Sie, ob die in Argumenten bereitgestellten Ein- und Ausgaben des Schritts in den Ein- und Ausgabelisten enthalten sind.

static validate_arguments(arguments, inputs, outputs)

Parameter

Name Beschreibung
arguments
Erforderlich

Die Liste von Argumenten für den Schritt.

inputs
Erforderlich

Die Liste der Eingaben für den Schritt.

outputs
Erforderlich

Die Liste der Ausgaben für den Schritt.