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
|
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
|
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
|
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
|
Die Version des Moduls. Standardwert: None
|
|
module_type
|
Der Modultyp für den zu erstellenden Modulerstellungsdienst. Derzeit werden nur zwei Typen unterstützt: "None" und "BatchInferencing".
Standardwert: None
|
|
arguments
|
Liste mit kommentierten Argumenten, die beim Aufrufen dieses Moduls verwendet werden sollen Standardwert: None
|
|
runconfig
|
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
|
Das Quellverzeichnis für den Schritt. |
|
script_name
Erforderlich
|
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. |