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
- arguments
- list
Eine optionale Liste von Argumenten, die an ein im Schritt verwendetes Skript übergeben werden.
- fix_port_name_collisions
- bool
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
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.
- arguments
- list
Eine optionale Liste von Argumenten, die an ein im Schritt verwendetes Skript übergeben werden.
- fix_port_name_collisions
- bool
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
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
- default_datastore
- AbstractAzureStorageDatastore oder AzureDataLakeDatastore
Der Standarddatenspeicher.
- resource_inputs
- list
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
- create_sequencing_ports
- bool
Legt fest, ob Sequenzierungsports für das Modul erstellt werden.
- allow_reuse
- bool
Legt fest, ob das Modul in zukünftigen Pipelines wiederverwendet werden kann.
- 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.
- arguments
- list
Liste der Argumente mit Anmerkungen, die beim Aufrufen dieses Moduls verwendet werden sollen
- runconfig
- str
Ausführungskonfiguration, die für „python_script_step“ verwendet wird.
- cloud_settings
- <xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>
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
- default_datastore
- AbstractAzureStorageDatastore oder AzureDataLakeDatastore
Der Standarddatenspeicher, der für diesen Schritt verwendet werden soll.
- context
- <xref:azureml.pipeline.core._GraphContext>
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>
Das Graphkontextobjekt.
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
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
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für