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.objectPipelineStep
Konstruktor
PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)
Parameter
Name | Beschreibung |
---|---|
name
Erforderlich
|
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
|
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
|
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
|
Die Version des Moduls. Standardwert: None
|
module_type
|
Der vom Modulerstellungsdienst zu erstellende Modultyp. Derzeit werden nur zwei Typen unterstützt: „None“ und „BatchInferencing“.
Standardwert: None
|
arguments
|
Liste der Argumente mit Anmerkungen, die beim Aufrufen dieses Moduls verwendet werden sollen Standardwert: None
|
runconfig
|
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
|
Das Quellverzeichnis für den Schritt. |
script_name
Erforderlich
|
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. |