Pipeline Klasse

Stellt eine Sammlung von Schritten dar, die als wiederverwendbarer Azure Machine Learning-Workflow ausgeführt werden können.

Nutzen Sie eine Pipeline zum Erstellen und Verwalten der Workflows, die verschiedene Phasen beim maschinellen Lernen zusammenfügen. Jede Phase beim maschinellen Lernen, z. B. die Datenaufbereitung und das Modelltraining, kann aus mindestens einem Schritt in einer Pipeline bestehen.

Eine Übersicht darüber, warum und wann Pipelines verwendet werden sollten, finden Sie unter https://aka.ms/pl-concept.

Informationen zur Konstruktion einer Pipeline finden Sie unter https://aka.ms/pl-first-pipeline.

Initialisieren der Pipeline.

Vererbung
builtins.object
Pipeline

Konstruktor

Pipeline(workspace, steps, description=None, default_datastore=None, default_source_directory=None, resolve_closure=True, _workflow_provider=None, _service_endpoint=None, **kwargs)

Parameter

workspace
Workspace
Erforderlich

Der Arbeitsbereich, für den die Pipeline übermittelt werden soll.

steps
list
Erforderlich

Die Liste der Schritte, die als Teil einer Pipeline ausgeführt werden.

description
str
Erforderlich

Die Beschreibung der Pipeline.

default_datastore
AbstractAzureStorageDatastore oder AzureDataLakeDatastore
Erforderlich

Der Standarddatenspeicher, der für Datenverbindungen verwendet werden soll.

default_source_directory
str
Erforderlich

Das Standardskriptverzeichnis für Schritte, die ein Skript ausführen.

resolve_closure
bool
Erforderlich

Gibt an, ob abhängige Schritte automatisch eingebunden werden sollen.

workspace
Workspace
Erforderlich

Der Arbeitsbereich, für den die Pipeline übermittelt werden soll.

steps
list
Erforderlich

Die Liste der Schritte, die als Teil einer Pipeline ausgeführt werden.

description
str
Erforderlich

Die Beschreibung der Pipeline.

default_datastore
AbstractAzureStorageDatastore oder AzureDataLakeDatastore
Erforderlich

Der Standarddatenspeicher, der für Datenverbindungen verwendet werden soll.

default_source_directory
str
Erforderlich

Das Standardskriptverzeichnis für Schritte, die ein Skript ausführen.

resolve_closure
bool
Erforderlich

Gibt an, ob der Verschluss aufgelöst wird oder nicht (automatisches Einbinden abhängiger Schritte).

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Erforderlich

Der Workflowanbieter, wenn keiner erstellt wird.

_service_endpoint
str
Erforderlich

Der Dienstendpunkt, wenn keiner, wird er mithilfe des Arbeitsbereichs ermittelt.

kwargs
dict
Erforderlich

Benutzerdefinierte Schlüsselwortargumente, für die zukünftige Entwicklung reserviert.

Hinweise

Eine Pipeline wird mit einer Liste von Schritten und einem Arbeitsbereich erstellt. Es gibt eine Reihe von Schritttypen, die in einer Pipeline verwendet werden können. Sie wählen den Schritttyp basierend auf Ihrem Machine Learning-Szenario aus.

  • Pipelines in Azure Machine Learning enthalten integrierte Schritte für gängige Szenarien. Von PipelineStep abgeleitete vorgefertigte Schritte sind Schritte, die in einer einzelnen Pipeline verwendet werden. Beispiele finden Sie im Paket steps und in der AutoMLStep-Klasse.

  • Wenn Ihr Machine Learning-Workflow die Erstellung von Schritten erfordert, die über verschiedene Pipelines hinweg versioniert und verwendet werden können, verwenden Sie die Funktionalität im Module-Modul.

Übermitteln Sie eine Pipeline mit submit. Wenn „submit“ aufgerufen wird, wird eine PipelineRun erstellt, die wiederum StepRun-Objekte für jeden Schritt im Workflow erstellt. Verwenden Sie diese Objekte, um die Ausführung zu überwachen.

Ein Beispiel zum Übermitteln einer Pipeline ist:


   from azureml.pipeline.core import Pipeline

   pipeline = Pipeline(workspace=ws, steps=steps)
   pipeline_run = experiment.submit(pipeline)

Es gibt eine Reihe optionaler Einstellungen für eine Pipeline, die bei der Übermittlung in submit angegeben werden können.

  • continue_on_step_failure: Gibt an, ob die Pipelineausführung fortgesetzt werden soll, wenn ein Schritt fehlschlägt. Der Standardwert ist „False“. „True“ gibt an, dass nur Schritte, die keine Abhängigkeit von der Ausgabe des fehlgeschlagenen Schritts aufweisen, weiterhin ausgeführt werden.

  • regenerate_outputs: Gibt an, ob die erneute Generierung aller Schrittausgaben erzwungen und die Wiederverwendung von Daten für diese Ausführung verboten werden soll. Standardmäßig „False“.

  • pipeline_parameters: Parameter für die Pipelineausführung, Wörterbuch mit {name: value}-Paaren. Weitere Informationen finden Sie unter PipelineParameter.

  • parent_run_id: Sie können eine Ausführungs-ID angeben, um die übergeordnete Ausführung dieser Pipelineausführung festzulegen, die in RunHistory angezeigt wird. Die übergeordnete Ausführung muss zu dem Experiment gehören, an das diese Pipeline übermittelt wird.

Das folgende Beispiel veranschaulicht die Übermittlung einer Pipeline mit diesen Einstellungen:


   from azureml.pipeline.core import Pipeline

   pipeline = Pipeline(workspace=ws, steps=steps)
   pipeline_run = experiment.submit(pipeline,
                                    continue_on_step_failure=True,
                                    regenerate_outputs=True,
                                    pipeline_parameters={"param1": "value1"},
                                    parent_run_id="<run_id>")

Methoden

load_yaml

Laden Sie eine Pipeline aus der angegebenen YAML-Datei.

Eine YAML-Datei kann verwendet werden, um eine Pipeline zu beschreiben, die aus ModuleSteps besteht.

publish

Veröffentlichen Sie eine Pipeline, und stellen Sie sie für die erneute Veröffentlichung zur Verfügung.

Sobald eine Pipeline veröffentlicht wurde, kann sie ohne den Python-Code übermittelt werden, der die Pipeline konstruiert hat. Gibt die erstellte PublishedPipeline zurück.

service_endpoint

Rufen Sie den Dienstendpunkt ab, der der Pipeline zugeordnet ist.

submit

Übermitteln Sie eine Pipelineausführung. Dies entspricht der Verwendung von submit.

Gibt die übermittelte PipelineRun zurück. Verwenden Sie dieses Objekt, um Details zur Ausführung zu überwachen und anzuzeigen.

validate

Überprüfen Sie eine Pipeline und identifizieren Sie potenzielle Fehler, z. B. nicht verbundene Eingaben.

load_yaml

Laden Sie eine Pipeline aus der angegebenen YAML-Datei.

Eine YAML-Datei kann verwendet werden, um eine Pipeline zu beschreiben, die aus ModuleSteps besteht.

static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)

Parameter

workspace
Workspace
Erforderlich

Der Arbeitsbereich, für den die Pipeline übermittelt werden soll.

filename
str
Erforderlich

Die YAML-Datei, die die Pipeline beschreibt.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Standardwert: None

Der Workflowanbieter.

_service_endpoint
str
Standardwert: None

Der Dienstendpunkt. Bei „None“ wird er anhand des Arbeitsbereichs bestimmt.

Gibt zurück

Die konstruierte Pipeline.

Rückgabetyp

Hinweise

Nachstehend finden Sie eine YAML-Beispieldatei. Die YAML-Datei enthält einen Namen, default_compute und Listen von Parametern, Datenverweisen und Schritten für die Pipeline. Für jeden Schritt sollten das Modul, die Computeressource und der Parameter sowie die Ein- und Ausgabebindungen angegeben werden. Darüber hinaus können bei Bedarf eine runconfig für Schritte und Argumente angegeben werden.

YAML-Beispieldatei:


   pipeline:
       description: SamplePipelineFromYaml
       parameters:
           NumIterationsParameter:
               type: int
               default: 40
           DataPathParameter:
               type: datapath
               default:
                   datastore: workspaceblobstore
                   path_on_datastore: sample2.txt
           NodeCountParameter:
               type: int
               default: 4
       data_references:
           DataReference:
               datastore: workspaceblobstore
               path_on_datastore: testfolder/sample.txt
           Dataset:
               dataset_name: 'titanic'
       default_compute: aml-compute
       steps:
           PrepareStep:
               type:  ModuleStep
               name: "TestModule"
               compute: aml-compute2
               runconfig: 'D:\.azureml\default_runconfig.yml'
               arguments:
               -'--input1'
               -input:in1
               -'--input2'
               -input:in2
               -'--input3'
               -input:in3
               -'--output'
               -output:output_data
               -'--param'
               -parameter:NUM_ITERATIONS
               parameters:
                   NUM_ITERATIONS:
                       source: NumIterationsParameter
               inputs:
                   in1:
                       source: Dataset
                       bind_mode: mount
                   in2:
                       source: DataReference
                   in3:
                       source: DataPathParameter
               outputs:
                   output_data:
                       destination: Output1
                       datastore: workspaceblobstore
                       bind_mode: mount
           TrainStep:
               type: ModuleStep
               name: "TestModule2"
               version: "2"
               runconfig: 'D:\.azureml\default_runconfig.yml'
               arguments:
               -'--input'
               -input:train_input
               -'--output'
               -output:result
               -'--param'
               -parameter:NUM_ITERATIONS
               parameters:
                   NUM_ITERATIONS: 10
               runconfig_parameters:
                   NodeCount:
                       source: NodeCountParameter
               inputs:
                   train_input:
                       source: Output1
                       bind_mode: mount
               outputs:
                   result:
                       destination: Output2
                       datastore: workspaceblobstore
                       bind_mode: mount

publish

Veröffentlichen Sie eine Pipeline, und stellen Sie sie für die erneute Veröffentlichung zur Verfügung.

Sobald eine Pipeline veröffentlicht wurde, kann sie ohne den Python-Code übermittelt werden, der die Pipeline konstruiert hat. Gibt die erstellte PublishedPipeline zurück.

publish(name=None, description=None, version=None, continue_on_step_failure=None)

Parameter

name
str
Standardwert: None

Der Name der veröffentlichten Pipeline.

description
str
Standardwert: None

Die Beschreibung der veröffentlichten Pipeline.

version
str
Standardwert: None

Die Version der veröffentlichten Pipeline.

continue_on_step_failure
bool
Standardwert: None

Gibt an, ob die Ausführung anderer Schritte in PipelineRun fortgesetzt werden soll, wenn ein Schritt fehlschlägt. Der Standardwert ist „False“. „True“ gibt an, dass nur Schritte, die keine Abhängigkeit von der Ausgabe des fehlgeschlagenen Schritts aufweisen, weiterhin ausgeführt werden.

Gibt zurück

Erstellte veröffentlichte Pipeline.

Rückgabetyp

service_endpoint

Rufen Sie den Dienstendpunkt ab, der der Pipeline zugeordnet ist.

service_endpoint()

Gibt zurück

Der Dienstendpunkt.

Rückgabetyp

str

submit

Übermitteln Sie eine Pipelineausführung. Dies entspricht der Verwendung von submit.

Gibt die übermittelte PipelineRun zurück. Verwenden Sie dieses Objekt, um Details zur Ausführung zu überwachen und anzuzeigen.

submit(experiment_name, pipeline_parameters=None, continue_on_step_failure=False, regenerate_outputs=False, parent_run_id=None, credential_passthrough=None, **kwargs)

Parameter

experiment_name
str
Erforderlich

Der Name des Experiments, in dem die Pipeline übermittelt werden soll.

pipeline_parameters
dict
Standardwert: None

Parameter für die Pipelineausführung, Wörterbuch mit {Name: Wert}. Weitere Informationen finden Sie unter PipelineParameter.

continue_on_step_failure
bool
Standardwert: False

Gibt an, ob die Pipelineausführung fortgesetzt werden soll, wenn ein Schritt fehlschlägt. „True“ gibt an, dass nur Schritte, die keine Abhängigkeit von der Ausgabe des fehlgeschlagenen Schritts aufweisen, weiterhin ausgeführt werden.

regenerate_outputs
bool
Standardwert: False

Gibt an, ob die erneute Generierung aller Schrittausgaben erzwungen und die Wiederverwendung von Daten für diese Ausführung verboten werden soll. Bei „False“ kann diese Ausführung Ergebnisse aus vorherigen Ausführungen wiederverwenden, und nachfolgende Ausführungen können die Ergebnisse dieser Ausführung wiederverwenden.

parent_run_id
str
Standardwert: None

Eine optionale Ausführungs-ID zum Festlegen der übergeordneten Ausführung dieser Pipelineausführung, die im Ausführungsverlauf (RunHistory) angezeigt wird. Die übergeordnete Ausführung muss zu dem Experiment gehören, an das diese Pipeline übermittelt wird.

credential_passthrough
Standardwert: None

Optional: Wenn dieses Flag aktiviert ist, verwendet der Remotepipelineauftrag die Anmeldeinformationen des Benutzers, der den Auftrag initiiert hat. Dieses Feature ist nur in der privaten Vorschau verfügbar.

Gibt zurück

Die übermittelte Pipelineausführung.

Rückgabetyp

validate

Überprüfen Sie eine Pipeline und identifizieren Sie potenzielle Fehler, z. B. nicht verbundene Eingaben.

validate()

Gibt zurück

Eine Liste der Fehler in der Pipeline.

Rückgabetyp

Hinweise

Beispiele für Validierungsfehler sind:

  • fehlende oder unerwartete Pipelinedatenquellen oder Schritttypen

  • fehlende Parameter oder Ausgabedefinitionen für eine Pipelinedatenquelle oder einen Pipelineschritt

  • nicht verbundene Eingaben

  • Pipelineschritte, die eine Schleife oder einen Kreislauf bilden

Wenn die Überprüfung erfolgreich ist (eine leere Liste zurückgibt) und Ihre Pipeline nicht funktioniert, finden Sie weitere Informationen unter Problembehandlung bei Machine Learning-Pipelines.

Attribute

graph

Rufen Sie den Graphen ab, der der Pipeline zugeordnet ist. Schritte und Dateneingaben werden als Knoten im Graphen angezeigt.

Gibt zurück

Das Diagramm.

Rückgabetyp