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.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)

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>
wartość domyślna: None

Dostawca przepływu pracy.

_service_endpoint
str
wartość domyślna: None

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

name
str
wartość domyślna: None

Nazwa opublikowanego potoku.

description
str
wartość domyślna: None

Opis opublikowanego potoku.

version
str
wartość domyślna: None

Wersja opublikowanego potoku.

continue_on_step_failure
bool
wartość domyślna: None

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

str

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
wartość domyślna: None

Parametry wykonywania potoku i słownika {Name: value}. PipelineParameterAby uzyskać więcej informacji, zobacz.

continue_on_step_failure
bool
wartość domyślna: False

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
wartość domyślna: False

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
wartość domyślna: None

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.

Typ zwracany