Pipeline Klasa
Reprezentuje kolekcję kroków, które można wykonać jako przepływ pracy Azure Machine Learning wielokrotnego użytku.
Za pomocą potoku można tworzyć przepływy pracy łączące różne etapy uczenia maszynowego i zarządzać nimi. Każda faza uczenia maszynowego, taka jak przygotowanie danych i szkolenia modeli, może składać się z jednego lub większej liczby kroków w potoku.
Aby zapoznać się z omówieniem dlaczego i kiedy należy używać potoków, zobacz https://aka.ms/pl-concept .
Aby zapoznać się z omówieniem tworzenia potoku, zobacz https://aka.ms/pl-first-pipeline .
- Dziedziczenie
-
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)
Parametry
- workspace
- Workspace
Obszar roboczy, w którym ma zostać przesłane potoku.
- steps
- list
Lista kroków do wykonania w ramach potoku.
- description
- str
Opis potoku.
- default_datastore
- AbstractAzureStorageDatastore lub AzureDataLakeDatastore
Domyślny magazyn danych, który ma być używany na potrzeby połączeń z danymi.
- default_source_directory
- str
Domyślny katalog skryptu dla kroków wykonujących skrypt.
- resolve_closure
- bool
Określa, czy należy rozwiązać zamknięcia, czy nie (automatycznie przenieść zależne kroki).
Uwagi
Tworzony jest potok z listą kroków i obszaru roboczego. Istnieje kilka typów etapów, których można użyć w potoku. Typ kroku zostanie wybrany na podstawie scenariusza uczenia maszynowego.
Potoki Azure Machine Learning zawierają wbudowane kroki dla typowych scenariuszy. Wstępnie utworzone kroki pochodzące z PipelineStep to kroki, które są używane w jednym potoku. Przykłady można znaleźć w steps pakiecie i AutoMLStep klasie.
Jeśli przepływ pracy usługi Machine Learning jest używany do tworzenia kroków, które mogą być w wersji i używane w różnych potokach, użyj funkcji w Module module.
Prześlij potok przy użyciu submit . Gdy jest wywoływana, PipelineRun zostanie utworzona, która 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 kilka ustawień opcjonalnych dla potoku, które można określić podczas przekazywania w submit .
continue_on_step_failure: czy kontynuować wykonywanie potoku w przypadku niepowodzenia kroku; wartość domyślna to false. Jeśli wartość jest równa true, wykonywanie będzie kontynuowane tylko dla kroków, które nie mają zależności od danych wyjściowych kroku zakończonego niepowodzeniem.
regenerate_outputs: czy wymusić ponowną generację wszystkich etapów wyjścia i nie zezwalać na ponowne użycie danych w tym przebiegu, wartość domyślna to false.
pipeline_parameters: parametry do wykonania potoku, słownik {Name: value}. PipelineParameterAby uzyskać więcej informacji, zobacz.
parent_run_id: można podać identyfikator przebiegu, aby ustawić nadrzędny przebieg tego uruchomienia potoku, który jest odzwierciedlony w Runhistory (. Uruchomienie elementu nadrzędnego musi należeć do tego samego eksperymentu, co ten potok jest przesyłany do.
Przykładem 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 opisywania potoku składającego się z ModuleSteps. |
publish |
Opublikuj potok i udostępnij go do ponownego uruchomienia. Po opublikowaniu potoku można go przesłać bez kodu języka Python, który konstruuje potok. Zwraca utworzony PublishedPipeline . |
service_endpoint |
Pobierz punkt końcowy usługi skojarzony z potokiem. |
submit |
Prześlij uruchomienie potoku. Jest to równoznaczne z użyciem submit . Zwraca przesłane PipelineRun . Ten obiekt służy do monitorowania i wyświetlania szczegółów przebiegu. |
validate |
Sprawdź poprawność potoku 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 opisywania potoku składającego się z ModuleSteps.
load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)
Parametry
- workspace
- Workspace
Obszar roboczy, w którym ma zostać przesłane potoku.
- filename
- str
Plik YAML, który opisuje potok.
- _workflow_provider
- <xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Dostawca przepływu pracy.
- _service_endpoint
- str
Punkt końcowy usługi, jeśli nie istnieje, jest określany przy użyciu obszaru roboczego.
Zwraca
Skonstruowany potok.
Typ zwracany
Uwagi
Poniżej znajduje się przykładowy plik YAML. YAML zawiera nazwę, default_compute i listy parametrów, odwołań do danych i kroków dla potoku. W każdym kroku należy określić powiązania modułu, obliczenia i parametru, dane wejściowe i wyjściowe. Ponadto w razie potrzeby można określić krok runconfig i argumenty.
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 uruchomienia.
Po opublikowaniu potoku można go przesłać bez kodu języka Python, który konstruuje potok. Zwraca utworzony PublishedPipeline .
publish(name=None, description=None, version=None, continue_on_step_failure=None)
Parametry
- continue_on_step_failure
- bool
Wskazuje, czy kontynuować wykonywanie innych kroków w PipelineRun w przypadku niepowodzenia kroku; wartość domyślna to false. Jeśli wartość jest równa true, wykonywanie będzie kontynuowane tylko dla kroków, które nie mają zależności od danych wyjściowych kroku zakończonego niepowodzeniem.
Zwraca
Utworzono opublikowany potok.
Typ zwracany
service_endpoint
Pobierz punkt końcowy usługi skojarzony z potokiem.
service_endpoint()
Zwraca
Punkt końcowy usługi.
Typ zwracany
submit
Prześlij uruchomienie potoku. Jest to równoznaczne z użyciem submit .
Zwraca przesłane PipelineRun . 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, **kwargs)
Parametry
- experiment_name
- str
Nazwa eksperymentu, w którym ma zostać przesłane potoku.
- pipeline_parameters
- dict
Parametry wykonywania potoku i słownika {Name: value}. PipelineParameterAby uzyskać więcej informacji, zobacz.
- continue_on_step_failure
- bool
Wskazuje, czy kontynuować wykonywanie potoku, jeśli krok zakończy się niepowodzeniem. Jeśli wartość jest równa true, wykonywanie będzie kontynuowane tylko dla kroków, które nie mają zależności od danych wyjściowych kroku zakończonego niepowodzeniem.
- regenerate_outputs
- bool
Wskazuje, czy należy wymusić ponowną transgenerację wszystkich etapów wyjścia i uniemożliwić ponowne użycie danych w tym przebiegu. W przypadku wartości false ten przebieg może ponownie używać wyników z poprzednich przebiegów, a kolejne uruchomienia mogą ponownie wykorzystać wyniki tego uruchomienia.
- parent_run_id
- str
Opcjonalny identyfikator przebiegu do ustawienia dla uruchomienia nadrzędnego tego uruchomienia potoku, który jest odzwierciedlony w Runhistory (. Przebieg nadrzędny musi należeć do tego samego eksperymentu, co ten potok jest przesyłany do.
Zwraca
Przesłane uruchomienie potoku.
Typ zwracany
validate
Sprawdź poprawność potoku i zidentyfikuj potencjalne błędy, takie jak niepołączone dane wejściowe.
validate()
Zwraca
Lista błędów w potoku.
Typ zwracany
Uwagi
Przykłady błędów walidacji:
brakujące lub nieoczekiwane źródła danych potoku lub typy kroków
Brak parametrów lub definicji danych wyjściowych dla źródła danych potoku lub kroku
niepołączone dane wejściowe
kroki potoku tworzące pętlę lub cykl
Jeśli walidacja przebiega pomyślnie (zwraca listę pustą), a potok nie działa, zobacz sekcję debugowanie i rozwiązywanie problemów z potokami uczenia maszynowego.
Atrybuty
graph
Pobierz Graf skojarzony z potokiem. Kroki i dane wejściowe danych są wyświetlane jako węzły na wykresie.
Zwraca
Wykres.