Freigeben über


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

Name Beschreibung
workspace
Erforderlich

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

steps
Erforderlich

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

description
Erforderlich
str

Die Beschreibung der Pipeline.

default_datastore
Erforderlich

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

default_source_directory
Erforderlich
str

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

resolve_closure
Erforderlich

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

workspace
Erforderlich

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

steps
Erforderlich

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

description
Erforderlich
str

Die Beschreibung der Pipeline.

default_datastore
Erforderlich

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

default_source_directory
Erforderlich
str

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

resolve_closure
Erforderlich

Gibt an, ob das Schließen aufgelöst wird oder nicht (automatisches Einbinden abhängiger Schritte).

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

Der Workflowanbieter, wenn keiner erstellt wird.

_service_endpoint
Erforderlich
str

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

kwargs
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

Name Beschreibung
workspace
Erforderlich

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

filename
Erforderlich
str

Die YAML-Datei, die die Pipeline beschreibt.

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

Der Workflowanbieter.

Standardwert: None
_service_endpoint
str

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

Standardwert: None

Gibt zurück

Typ Beschreibung

Die konstruierte Pipeline.

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 Beschreibung
name
str

Der Name der veröffentlichten Pipeline.

Standardwert: None
description
str

Die Beschreibung der veröffentlichten Pipeline.

Standardwert: None
version
str

Die Version der veröffentlichten Pipeline.

Standardwert: None
continue_on_step_failure

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.

Standardwert: None

Gibt zurück

Typ Beschreibung

Erstellte veröffentlichte Pipeline.

service_endpoint

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

service_endpoint()

Gibt zurück

Typ Beschreibung
str

Der Dienstendpunkt.

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

Name Beschreibung
experiment_name
Erforderlich
str

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

pipeline_parameters

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

Standardwert: None
continue_on_step_failure

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.

Standardwert: False
regenerate_outputs

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.

Standardwert: False
parent_run_id
str

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.

Standardwert: None
credential_passthrough

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.

Standardwert: None

Gibt zurück

Typ Beschreibung

Die übermittelte Pipelineausführung.

validate

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

validate()

Gibt zurück

Typ Beschreibung

Eine Liste der Fehler in der Pipeline.

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

Typ Beschreibung

Das Diagramm.