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
str
Erforderlich

Der Name des Pipelineschritts.

inputs
list
Erforderlich

Die Liste der Eingaben für den Schritt.

outputs
list
Erforderlich

Die Liste der Ausgaben für den Schritt.

arguments
list
Standardwert: None

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

fix_port_name_collisions
bool
Standardwert: False

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
list
Standardwert: None

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.

name
str
Erforderlich

Der Name des Pipelineschritts.

inputs
list
Erforderlich

Die Liste der Eingaben für den Schritt.

outputs
list
Erforderlich

Die Liste der Ausgaben für den Schritt.

arguments
list
Erforderlich

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

fix_port_name_collisions
bool
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
list
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

inputs
list
Erforderlich

Die Liste der Eingaben für den Schritt.

outputs
list
Erforderlich

Die Liste der Ausgaben für den Schritt.

default_datastore
AbstractAzureStorageDatastore oder AzureDataLakeDatastore
Erforderlich

Der Standarddatenspeicher.

resource_inputs
list
Standardwert: None

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.

Gibt zurück

Tupel der Eingabe- und Ausgabebindungen.

Rückgabetyp

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

execution_type
str
Erforderlich

Der Ausführungstyp des Moduls

input_bindings
list
Erforderlich

Die Schritteingabebindungen

output_bindings
list
Erforderlich

Die Schrittausgabebindungen

param_defs
list
Standardwert: None

Die Definitionen der Schrittparameter.

create_sequencing_ports
bool
Standardwert: True

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

allow_reuse
bool
Standardwert: True

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

version
str
Standardwert: None

Die Version des Moduls.

module_type
str
Standardwert: None

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.

arguments
list
Standardwert: None

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

runconfig
str
Standardwert: None

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

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

Einstellungen, die für Clouds verwendet werden

Gibt zurück

Das Moduldefinitionsobjekt.

Rückgabetyp

create_node

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

abstract create_node(graph, default_datastore, context)

Parameter

graph
Graph
Erforderlich

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

default_datastore
AbstractAzureStorageDatastore oder AzureDataLakeDatastore
Erforderlich

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

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

Das Graphkontextobjekt.

Gibt zurück

Der erstellte Knoten.

Rückgabetyp

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

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

Das Graphkontextobjekt.

source_directory
str
Erforderlich

Das Quellverzeichnis für den Schritt.

script_name
str
Erforderlich

Der Skriptname für den Schritt.

hash_paths
list
Erforderlich

Die beim Bestimmen des Modulfingerabdrucks zu verwendenden Hashpfade.

Gibt zurück

Das Quellverzeichnis und die Hashpfade.

Rückgabetyp

resolve_input_arguments

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

static resolve_input_arguments(arguments, inputs, outputs, params)

Parameter

arguments
list
Erforderlich

Eine Liste von Argumenten für den Schritt.

inputs
list
Erforderlich

Eine Liste von Eingaben für den Schritt.

outputs
list
Erforderlich

Eine Liste von Ausgaben für den Schritt.

params
list
Erforderlich

Eine Liste von Parametern für den Schritt.

Gibt zurück

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

Rückgabetyp

run_after

Diesen Schritt nach dem angegebenen Schritt ausführen.

run_after(step)

Parameter

step
PipelineStep
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

arguments
list
Erforderlich

Die Liste von Argumenten für den Schritt.

inputs
list
Erforderlich

Die Liste der Eingaben für den Schritt.

outputs
list
Erforderlich

Die Liste der Ausgaben für den Schritt.