Pipeline Klasa
Reprezentuje kolekcję kroków, które można wykonać jako przepływ pracy usługi Azure Machine Learning wielokrotnego użytku.
Użyj potoku, aby utworzyć przepływy pracy, które łączą różne fazy uczenia maszynowego i zarządzać nimi. Każda faza uczenia maszynowego, taka jak przygotowywanie danych i trenowanie modelu, może składać się z co najmniej jednego kroku w potoku.
Aby zapoznać się z omówieniem przyczyn i czasu korzystania z potoków, zobacz https://aka.ms/pl-concept.
Aby zapoznać się z omówieniem tworzenia potoku, zobacz https://aka.ms/pl-first-pipeline.
Inicjowanie potoku.
Konstruktor
Pipeline(workspace, steps, description=None, default_datastore=None, default_source_directory=None, resolve_closure=True, _workflow_provider=None, _service_endpoint=None, **kwargs)
Parametry
| Nazwa | Opis |
|---|---|
|
workspace
Wymagane
|
Obszar roboczy do przesłania potoku. |
|
steps
Wymagane
|
Lista kroków do wykonania w ramach potoku. |
|
description
Wymagane
|
Opis potoku. |
|
default_datastore
Wymagane
|
Domyślny magazyn danych używany na potrzeby połączeń danych. |
|
default_source_directory
Wymagane
|
Domyślny katalog skryptów dla kroków, które wykonują skrypt. |
|
resolve_closure
Wymagane
|
Czy rozwiązać problem z zamknięciem, czy nie (automatycznie wprowadzaj kroki zależne). |
|
workspace
Wymagane
|
Obszar roboczy do przesłania potoku. |
|
steps
Wymagane
|
Lista kroków do wykonania w ramach potoku. |
|
description
Wymagane
|
Opis potoku. |
|
default_datastore
Wymagane
|
Domyślny magazyn danych używany na potrzeby połączeń danych. |
|
default_source_directory
Wymagane
|
Domyślny katalog skryptów dla kroków, które wykonują skrypt. |
|
resolve_closure
Wymagane
|
Czy rozwiązać problem z zamknięciem, czy nie (automatycznie wprowadzaj kroki zależne). |
|
_workflow_provider
Wymagane
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Dostawca przepływu pracy, jeśli żaden z nich nie zostanie utworzony. |
|
_service_endpoint
Wymagane
|
Punkt końcowy usługi, jeśli nie zostanie określony przy użyciu obszaru roboczego. |
|
kwargs
Wymagane
|
Niestandardowe argumenty słów kluczowych zarezerwowane na potrzeby przyszłego programowania |
Uwagi
Potok jest tworzony z listą kroków i obszarem roboczym. Istnieje wiele typów kroków, które mogą być używane w potoku. Wybierz typ kroku na podstawie scenariusza uczenia maszynowego.
Usługa Azure Machine Learning Pipelines udostępnia wbudowane kroki dla typowych scenariuszy. Wstępnie utworzone kroki pochodzące z elementu PipelineStep to kroki, które są używane w jednym potoku. Aby zapoznać się z przykładami, zobacz steps pakiet i klasę AutoMLStep .
Jeśli twój przepływ pracy uczenia maszynowego wymaga utworzenia kroków, które mogą być wersjonowane i używane w różnych potokach, użyj funkcji w Module module.
Prześlij potok przy użyciu polecenia submit. Po wywołaniu przesyłania tworzony jest element PipelineRun , który z kolei tworzy StepRun obiekty dla każdego kroku w przepływie pracy. Użyj tych obiektów do monitorowania wykonywania przebiegu.
Przykład przesyłania potoku jest następujący:
from azureml.pipeline.core import Pipeline
pipeline = Pipeline(workspace=ws, steps=steps)
pipeline_run = experiment.submit(pipeline)
Istnieje wiele opcjonalnych ustawień potoku, które można określić podczas przesyłania w pliku submit.
continue_on_step_failure: czy kontynuować wykonywanie potoku, jeśli krok zakończy się niepowodzeniem; wartość domyślna to False. Jeśli wartość True, tylko kroki, które nie mają zależności od danych wyjściowych kroku, który zakończył się niepowodzeniem, będą kontynuować wykonywanie.
regenerate_outputs: czy wymusić ponowne generowanie wszystkich danych wyjściowych kroków i nie zezwalać na ponowne użycie danych dla tego przebiegu, wartość domyślna to False.
pipeline_parameters: Parametry wykonywania potoku, słownik {name: value}. Aby uzyskać więcej informacji, zobacz PipelineParameter.
parent_run_id: możesz podać identyfikator przebiegu, aby ustawić nadrzędne uruchomienie tego uruchomienia potoku, które jest odzwierciedlone w runHistory. Przebieg nadrzędny musi należeć do tego samego eksperymentu, do którego jest przesyłany ten potok.
Przykład przesyłania potoku przy użyciu tych ustawień jest następujący:
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>")
Metody
| load_yaml |
Załaduj potok z określonego pliku YAML. Plik YAML może służyć do opisania potoku składającego się z modułówKrok. |
| publish |
Opublikuj potok i udostępnij go do ponownego uruchamiania. Po opublikowaniu potoku można go przesłać bez kodu języka Python, który skonstruował potok. Zwraca utworzony PublishedPipelineelement . |
| service_endpoint |
Pobierz punkt końcowy usługi skojarzony z potokiem. |
| submit |
Prześlij przebieg potoku. Jest to równoważne użyciu polecenia submit. Zwraca przesłany PipelineRunelement . Ten obiekt służy do monitorowania i wyświetlania szczegółów przebiegu. |
| validate |
Zweryfikuj potok i zidentyfikuj potencjalne błędy, takie jak niepołączone dane wejściowe. |
load_yaml
Załaduj potok z określonego pliku YAML.
Plik YAML może służyć do opisania potoku składającego się z modułówKrok.
static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)
Parametry
| Nazwa | Opis |
|---|---|
|
workspace
Wymagane
|
Obszar roboczy do przesłania potoku. |
|
filename
Wymagane
|
Plik YAML opisujący potok. |
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Dostawca przepływu pracy. Domyślna wartość: None
|
|
_service_endpoint
|
Punkt końcowy usługi, jeśli brak, jest określany przy użyciu obszaru roboczego. Domyślna wartość: None
|
Zwraca
| Typ | Opis |
|---|---|
|
Skonstruowany potok. |
Uwagi
Poniżej przedstawiono przykładowy plik YAML. YaML zawiera nazwę, default_compute i listę parametrów, odwołań do danych i kroków potoku. Każdy krok powinien określać moduł, obliczenia i parametry, dane wejściowe i powiązania wyjściowe. Ponadto w razie potrzeby można określić konfigurację i argumenty kroku.
Przykładowy plik Yaml:
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
Opublikuj potok i udostępnij go do ponownego uruchamiania.
Po opublikowaniu potoku można go przesłać bez kodu języka Python, który skonstruował potok. Zwraca utworzony PublishedPipelineelement .
publish(name=None, description=None, version=None, continue_on_step_failure=None)
Parametry
| Nazwa | Opis |
|---|---|
|
name
|
Nazwa opublikowanego potoku. Domyślna wartość: None
|
|
description
|
Opis opublikowanego potoku. Domyślna wartość: None
|
|
version
|
Wersja opublikowanego potoku. Domyślna wartość: None
|
|
continue_on_step_failure
|
Wskazuje, czy kontynuować wykonywanie innych kroków w elemecie PipelineRun, jeśli krok zakończy się niepowodzeniem; wartość domyślna to false. Jeśli wartość True, tylko kroki, które nie mają zależności od danych wyjściowych kroku, który zakończył się niepowodzeniem, będą kontynuować wykonywanie. Domyślna wartość: None
|
Zwraca
| Typ | Opis |
|---|---|
|
Utworzono opublikowany potok. |
service_endpoint
Pobierz punkt końcowy usługi skojarzony z potokiem.
service_endpoint()
Zwraca
| Typ | Opis |
|---|---|
|
Punkt końcowy usługi. |
submit
Prześlij przebieg potoku. Jest to równoważne użyciu polecenia submit.
Zwraca przesłany PipelineRunelement . Ten obiekt służy do monitorowania i wyświetlania szczegółów przebiegu.
submit(experiment_name, pipeline_parameters=None, continue_on_step_failure=False, regenerate_outputs=False, parent_run_id=None, credential_passthrough=None, **kwargs)
Parametry
| Nazwa | Opis |
|---|---|
|
experiment_name
Wymagane
|
Nazwa eksperymentu do przesłania potoku. |
|
pipeline_parameters
|
Parametry wykonywania potoku, słownik {name: value}. Aby uzyskać więcej informacji, zobacz PipelineParameter. Domyślna wartość: None
|
|
continue_on_step_failure
|
Wskazuje, czy kontynuować wykonywanie potoku, jeśli krok zakończy się niepowodzeniem. Jeśli wartość True, tylko kroki, które nie mają zależności od danych wyjściowych kroku, który zakończył się niepowodzeniem, będą kontynuować wykonywanie. Domyślna wartość: False
|
|
regenerate_outputs
|
Wskazuje, czy wymusić ponowne generowanie wszystkich danych wyjściowych kroku i uniemożliwić ponowne użycie danych dla tego przebiegu. Jeśli wartość False, ten przebieg może ponownie używać wyników z poprzednich przebiegów, a kolejne uruchomienia mogą ponownie używać wyników tego przebiegu. Domyślna wartość: False
|
|
parent_run_id
|
Opcjonalny identyfikator uruchomienia ustawiony dla nadrzędnego uruchomienia tego uruchomienia potoku, który jest odzwierciedlony w runHistory. Uruchomienie nadrzędne musi należeć do tego samego eksperymentu, do którego jest przesyłany ten potok. Domyślna wartość: None
|
|
credential_passthrough
|
Opcjonalnie, jeśli ta flaga jest włączona, zadanie potoku zdalnego będzie używać poświadczeń użytkownika, który zainicjował zadanie. Ta funkcja jest dostępna tylko w prywatnej wersji zapoznawczej. Domyślna wartość: None
|
Zwraca
| Typ | Opis |
|---|---|
|
Przesłane uruchomienie potoku. |
validate
Zweryfikuj potok i zidentyfikuj potencjalne błędy, takie jak niepołączone dane wejściowe.
validate()
Zwraca
| Typ | Opis |
|---|---|
|
Lista błędów w potoku. |
Uwagi
Przykłady błędów walidacji to:
brak lub nieoczekiwane źródła danych potoku lub typy kroków
brakujące parametry lub definicje danych wyjściowych dla źródła danych potoku lub kroku
niepołączone dane wejściowe
kroki potoku, które tworzą pętlę lub cykl
Jeśli walidacja zakończy się pomyślnie (zwraca pustą listę), a potok nie działa, zobacz Potoki debugowania i rozwiązywania problemów z uczeniem maszynowym.
Atrybuty
graph
Pobierz wykres skojarzony z potokiem. Kroki i dane wejściowe są wyświetlane jako węzły na grafie.
Zwraca
| Typ | Opis |
|---|---|
|
Wykres. |