Freigeben über


PipelineStep Klasse

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

Pipelines werden aus mehreren Pipelineschritten erstellt, die unterschiedliche Recheneinheiten in der Pipeline sind. 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 für allgemeine Szenarien erben, z PythonScriptStep. B. , , DataTransferStepund HyperDriveStep.

Eine Übersicht darüber, wie Pipelines und PipelineSteps zusammenhängen, finden Sie unter "Was sind ML-Pipelines".

Initialisieren sie 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 Schritteingaben.

outputs
Erforderlich

Die Liste der Ausgabeschritte.

arguments

Eine optionale Liste von Argumenten, die an ein skript übergeben werden sollen, das im Schritt verwendet wird.

Standardwert: None
fix_port_name_collisions

Gibt an, ob Namenskonflikte behoben werden sollen. Wenn True und eine Eingabe und Ausgabe denselben Namen haben, wird die Eingabe mit dem Präfix "INPUT" vorangestellt. Der Standardwert ist False.

Standardwert: False
resource_inputs

Eine optionale Liste der 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 Schritteingaben.

outputs
Erforderlich

Die Liste der Ausgabeschritte.

arguments
Erforderlich

Eine optionale Liste von Argumenten, die an ein skript übergeben werden sollen, das im Schritt verwendet wird.

fix_port_name_collisions
Erforderlich

Gibt an, ob Namenskonflikte behoben werden sollen. Wenn True und eine Eingabe und Ausgabe denselben Namen haben, wird die Eingabe mit dem Präfix "INPUT" vorangestellt. Der Standardwert ist False.

resource_inputs
Erforderlich

Eine optionale Liste der 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) benötigt, ein Skript, das mit optionalen Skriptargumenten und Eingaben ausgeführt werden kann und Ausgaben erzeugen kann. Der Schritt kann auch eine Reihe anderer Parameter ausführen, die für den Schritt spezifisch sind.

Pipelineschritte können zusammen konfiguriert werden, um einen Pipelinegemeinsam nutzbaren und wiederverwendbaren Azure Machine Learning-Workflow zu erstellen. Jeder Schritt einer Pipeline kann so konfiguriert werden, dass die Wiederverwendung der vorherigen Ausführungsergebnisse möglich ist, wenn der Schrittinhalt (Skripts/Abhängigkeiten) sowie Eingaben und Parameter unverändert bleiben. Beim Erneuten Verwenden des Schritts werden die Ergebnisse aus der vorherigen Ausführung sofort allen nachfolgenden Schritten zur Verfügung gestellt, anstatt den Auftrag zur Berechnung zu übermitteln.

Azure Machine Learning Pipelines bietet integrierte Schritte für allgemeine Szenarien. Beispiele finden Sie im steps Paket und in der AutoMLStep Klasse. Eine Übersicht zum Erstellen einer Pipeline basierend auf vordefinierten Schritten finden Sie unter https://aka.ms/pl-first-pipeline.

Vordefinierte Schritte, die von PipelineStep abgeleitet werden, sind Schritte, die in einer Pipeline verwendet werden. Wenn Ihr Machine Learning-Workflow zum Erstellen von Schritten aufruft, die in verschiedenen Pipelines versioniert und verwendet werden können, verwenden Sie den Module Kurs.

Beachten Sie beim Arbeiten mit Pipelineschritten, Eingabe-/Ausgabedaten und der Wiederverwendung von Schritten Folgendes.

  • 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, um alle Schritte erneut auszuführen. Ein Beispiel für die Verwendung separater Verzeichnisse für verschiedene Schritte finden Sie unter https://aka.ms/pl-get-started.

  • Wenn Sie separate Ordner für Skripts und abhängige Dateien für jeden Schritt verwalten, können Sie die Größe der für jeden Schritt erstellten Momentaufnahme verringern, da nur der jeweilige Ordner snapshott ist. Da Änderungen an dateien in der source_directory des Schritts einen erneuten Upload der Momentaufnahme auslösen, hilft die Verwaltung separater Ordner für jeden Schritt, die Wiederverwendung von Schritten in der Pipeline zu erleichtern, da, wenn in der source_directory eines Schritts keine Änderungen vorgenommen werden, wird die vorherige Ausführung des Schritts wiederverwendet.

  • Wenn sich daten, die in einem Schritt verwendet werden, in einem Datenspeicher befinden und allow_reuse "True" lautet, werden Änderungen an der Datenänderung nicht erkannt. Wenn die Daten als Teil der Momentaufnahme (unter dem source_directory des Schritts) hochgeladen werden, wird dies jedoch nicht empfohlen, dann ändert sich der Hash und löst eine Erneutes Ausführen aus.

Methoden

create_input_output_bindings

Erstellen Sie Eingabe- und Ausgabebindungen aus den Schritteingaben und -ausgaben.

create_module_def

Erstellen Sie das Moduldefinitionsobjekt, das den Schritt beschreibt.

create_node

Erstellen Sie basierend auf diesem Schritt einen Knoten für das Pipelinediagramm.

get_source_directory

Rufen Sie das Quellverzeichnis für den Schritt ab, und überprüfen Sie, ob das Skript vorhanden ist.

resolve_input_arguments

Stimmen Sie Eingaben und Ausgaben an Argumente ab, um eine Argumentzeichenfolge zu erzeugen.

run_after

Führen Sie diesen Schritt nach dem angegebenen Schritt aus.

validate_arguments

Überprüfen Sie, ob die in Argumenten bereitgestellten Schritteingaben und -ausgaben in den Eingabe- und Ausgabelisten enthalten sind.

create_input_output_bindings

Erstellen Sie Eingabe- und Ausgabebindungen aus den Schritteingaben und -ausgaben.

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

Parameter

Name Beschreibung
inputs
Erforderlich

Die Liste der Schritteingaben.

outputs
Erforderlich

Die Liste der Ausgabeschritte.

default_datastore
Erforderlich

Der Standarddatenspeicher.

resource_inputs

Die Liste der 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 Eingabebindungen und Ausgabebindungen.

create_module_def

Erstellen Sie 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 Schrittparameterdefinitionen.

Standardwert: None
create_sequencing_ports

Gibt an, ob Sequenzierungsports für das Modul erstellt werden.

Standardwert: True
allow_reuse

Gibt an, ob das Modul in zukünftigen Pipelines wiederverwendet werden kann.

Standardwert: True
version
str

Die Version des Moduls.

Standardwert: None
module_type
str

Der Modultyp für den zu erstellenden Modulerstellungsdienst. Derzeit werden nur zwei Typen unterstützt: "None" und "BatchInferencing". module_type unterscheidet sich davon execution_type , welche Art von Back-End-Dienst zum Ausführen dieses Moduls verwendet werden soll.

Standardwert: None
arguments

Liste mit kommentierten Argumenten, die beim Aufrufen dieses Moduls verwendet werden sollen

Standardwert: None
runconfig
str

Runconfig, 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

Erstellen Sie basierend auf diesem Schritt einen Knoten für das Pipelinediagramm.

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

Gibt zurück

Typ Beschreibung

Der erstellte Knoten.

get_source_directory

Rufen Sie das Quellverzeichnis für den Schritt ab, und überprüfen Sie, ob das Skript vorhanden ist.

get_source_directory(context, source_directory, script_name)

Parameter

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

Das Diagrammkontextobjekt.

source_directory
Erforderlich
str

Das Quellverzeichnis für den Schritt.

script_name
Erforderlich
str

Der Skriptname für den Schritt.

hash_paths
Erforderlich

Die Hashpfade, die beim Bestimmen des Modulfingerabdrucks verwendet werden sollen.

Gibt zurück

Typ Beschreibung

Das Quellverzeichnis und Hashpfade.

resolve_input_arguments

Stimmen Sie Eingaben und Ausgaben an Argumente ab, um eine Argumentzeichenfolge zu erzeugen.

static resolve_input_arguments(arguments, inputs, outputs, params)

Parameter

Name Beschreibung
arguments
Erforderlich

Eine Liste mit Schrittargumenten.

inputs
Erforderlich

Eine Liste der Schritteingaben.

outputs
Erforderlich

Eine Liste von Schrittausgabeen.

params
Erforderlich

Eine Liste der Schrittparameter.

Gibt zurück

Typ Beschreibung

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

run_after

Führen Sie diesen Schritt nach dem angegebenen Schritt aus.

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, z. B. Schritt3 nach Abschluss von Schritt1 und Schritt2, können Sie Folgendes verwenden:


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

validate_arguments

Überprüfen Sie, ob die in Argumenten bereitgestellten Schritteingaben und -ausgaben in den Eingabe- und Ausgabelisten enthalten sind.

static validate_arguments(arguments, inputs, outputs)

Parameter

Name Beschreibung
arguments
Erforderlich

Die Liste der Schrittargumente.

inputs
Erforderlich

Die Liste der Schritteingaben.

outputs
Erforderlich

Die Liste der Ausgabeschritte.