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.objectPipeline
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
|
Die Beschreibung der Pipeline. |
default_datastore
Erforderlich
|
Der Standarddatenspeicher, der für Datenverbindungen verwendet werden soll. |
default_source_directory
Erforderlich
|
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
|
Die Beschreibung der Pipeline. |
default_datastore
Erforderlich
|
Der Standarddatenspeicher, der für Datenverbindungen verwendet werden soll. |
default_source_directory
Erforderlich
|
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
|
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
|
Die YAML-Datei, die die Pipeline beschreibt. |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Der Workflowanbieter. Standardwert: None
|
_service_endpoint
|
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
|
Der Name der veröffentlichten Pipeline. Standardwert: None
|
description
|
Die Beschreibung der veröffentlichten Pipeline. Standardwert: None
|
version
|
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 |
---|---|
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
|
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
|
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. |