Condividi tramite


Pipeline Classe

Rappresenta una raccolta di passaggi che possono essere eseguiti come flusso di lavoro riutilizzabile di Azure Machine Learning.

Usare una pipeline per creare e gestire flussi di lavoro che uniscono varie fasi di Machine Learning. Ogni fase di Machine Learning, ad esempio la preparazione dei dati e il training del modello, può essere costituita da uno o più passaggi in una pipeline.

Per una panoramica del motivo e del momento in cui usare Pipeline, vedere https://aka.ms/pl-concept.

Per una panoramica sulla creazione di una pipeline, vedere https://aka.ms/pl-first-pipeline.

Inizializzare la pipeline.

Ereditarietà
builtins.object
Pipeline

Costruttore

Pipeline(workspace, steps, description=None, default_datastore=None, default_source_directory=None, resolve_closure=True, _workflow_provider=None, _service_endpoint=None, **kwargs)

Parametri

Nome Descrizione
workspace
Necessario

Area di lavoro in cui inviare la pipeline.

steps
Necessario

Elenco dei passaggi da eseguire come parte di una pipeline.

description
Necessario
str

Descrizione della pipeline.

default_datastore
Necessario

Archivio dati predefinito da usare per le connessioni dati.

default_source_directory
Necessario
str

Directory di script predefinita per i passaggi che eseguono uno script.

resolve_closure
Necessario

Se risolvere la chiusura o meno (inserire automaticamente i passaggi dipendenti).

workspace
Necessario

Area di lavoro in cui inviare la pipeline.

steps
Necessario

Elenco dei passaggi da eseguire come parte di una pipeline.

description
Necessario
str

Descrizione della pipeline.

default_datastore
Necessario

Archivio dati predefinito da usare per le connessioni dati.

default_source_directory
Necessario
str

Directory di script predefinita per i passaggi che eseguono uno script.

resolve_closure
Necessario

Se risolvere la chiusura o meno (inserire automaticamente passaggi dipendenti).

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

Provider del flusso di lavoro, se non ne viene creato uno.

_service_endpoint
Necessario
str

L'endpoint del servizio, se None viene determinato usando l'area di lavoro.

kwargs
Necessario

Argomenti parole chiave personalizzati, riservati per lo sviluppo futuro

Commenti

Viene creata una pipeline con un elenco di passaggi e un'area di lavoro. Esistono diversi tipi di passaggi che possono essere usati in una pipeline. Verrà selezionato il tipo di passaggio in base al proprio scenario di Machine Learning.

  • Azure Machine Learning Pipelines offre passaggi predefiniti per scenari comuni. I passaggi predefiniti derivati da PipelineStep sono passaggi usati in una pipeline. Per esempi, vedere il steps pacchetto e la AutoMLStep classe.

  • Se il flusso di lavoro di Machine Learning usa chiamate per la creazione di passaggi che possono essere versioni e usati in pipeline diverse, usare la funzionalità nel Module modulo.

Inviare una pipeline usando submit. Quando viene chiamato l'invio, viene creato un oggetto PipelineRun che a sua volta crea StepRun oggetti per ogni passaggio del flusso di lavoro. Usare questi oggetti per monitorare l'esecuzione dell'esecuzione.

Un esempio per inviare una pipeline è il seguente:


   from azureml.pipeline.core import Pipeline

   pipeline = Pipeline(workspace=ws, steps=steps)
   pipeline_run = experiment.submit(pipeline)

Esistono diverse impostazioni facoltative per una pipeline che può essere specificata per l'invio submitin .

  • continue_on_step_failure: indica se continuare l'esecuzione della pipeline se un passaggio ha esito negativo; il valore predefinito è False. Se True, solo i passaggi che non hanno alcuna dipendenza dall'output del passaggio non riuscito continueranno l'esecuzione.

  • regenerate_outputs: indica se forzare la rigenerazione di tutti gli output dei passaggi e non consentire il riutilizzo dei dati per questa esecuzione, il valore predefinito è False.

  • pipeline_parameters: parametri per l'esecuzione della pipeline, dizionario di {name: value}. Per informazioni dettagliate, vedere PipelineParameter.

  • parent_run_id: è possibile specificare un ID esecuzione per impostare l'esecuzione padre di questa pipeline, che si riflette in RunHistory. L'esecuzione padre deve appartenere allo stesso esperimento a cui viene inviata la pipeline.

Un esempio per inviare una pipeline usando queste impostazioni è il seguente:


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

Metodi

load_yaml

Caricare una pipeline dal file YAML specificato.

È possibile usare un file YAML per descrivere una pipeline costituita da ModuleSteps.

publish

Pubblicare una pipeline e renderla disponibile per la rirunning.

Dopo la pubblicazione di una pipeline, può essere inviata senza il codice Python che ha costruito la pipeline. Restituisce l'oggetto creato PublishedPipeline.

service_endpoint

Ottenere l'endpoint del servizio associato alla pipeline.

submit

Inviare un'esecuzione della pipeline. Equivale all'uso di submit.

Restituisce l'oggetto inviato PipelineRun. Usare questo oggetto per monitorare e visualizzare i dettagli dell'esecuzione.

validate

Convalidare una pipeline e identificare potenziali errori, ad esempio input non connessi.

load_yaml

Caricare una pipeline dal file YAML specificato.

È possibile usare un file YAML per descrivere una pipeline costituita da ModuleSteps.

static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)

Parametri

Nome Descrizione
workspace
Necessario

Area di lavoro in cui inviare la pipeline.

filename
Necessario
str

File YAML che descrive la pipeline.

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

Provider del flusso di lavoro.

Valore predefinito: None
_service_endpoint
str

L'endpoint del servizio, se None, viene determinato usando l'area di lavoro.

Valore predefinito: None

Restituisce

Tipo Descrizione

Pipeline costruita.

Commenti

Per un esempio di file YAML, vedere di seguito. YAML contiene un nome, default_compute e elenchi di parametri, riferimenti ai dati e passaggi per la pipeline. Ogni passaggio deve specificare il modulo, il calcolo e il parametro, l'input e le associazioni di output. Inoltre, è possibile specificare un runconfig di passaggio e argomenti se necessario.

File Yaml di esempio:


   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

Pubblicare una pipeline e renderla disponibile per la rirunning.

Dopo la pubblicazione di una pipeline, può essere inviata senza il codice Python che ha costruito la pipeline. Restituisce l'oggetto creato PublishedPipeline.

publish(name=None, description=None, version=None, continue_on_step_failure=None)

Parametri

Nome Descrizione
name
str

Nome della pipeline pubblicata.

Valore predefinito: None
description
str

Descrizione della pipeline pubblicata.

Valore predefinito: None
version
str

Versione della pipeline pubblicata.

Valore predefinito: None
continue_on_step_failure

Indica se continuare l'esecuzione di altri passaggi in PipelineRun se un passaggio ha esito negativo; il valore predefinito è false. Se True, solo i passaggi che non hanno alcuna dipendenza dall'output del passaggio non riuscito continueranno l'esecuzione.

Valore predefinito: None

Restituisce

Tipo Descrizione

Creazione della pipeline pubblicata.

service_endpoint

Ottenere l'endpoint del servizio associato alla pipeline.

service_endpoint()

Restituisce

Tipo Descrizione
str

Endpoint del servizio.

submit

Inviare un'esecuzione della pipeline. Equivale all'uso di submit.

Restituisce l'oggetto inviato PipelineRun. Usare questo oggetto per monitorare e visualizzare i dettagli dell'esecuzione.

submit(experiment_name, pipeline_parameters=None, continue_on_step_failure=False, regenerate_outputs=False, parent_run_id=None, credential_passthrough=None, **kwargs)

Parametri

Nome Descrizione
experiment_name
Necessario
str

Nome dell'esperimento in cui inviare la pipeline.

pipeline_parameters

Parametri per l'esecuzione della pipeline, dizionario di {name: value}. Per informazioni dettagliate, vedere PipelineParameter.

Valore predefinito: None
continue_on_step_failure

Indica se continuare l'esecuzione della pipeline se un passaggio ha esito negativo. Se True, solo i passaggi che non hanno alcuna dipendenza dall'output del passaggio non riuscito continueranno l'esecuzione.

Valore predefinito: False
regenerate_outputs

Indica se forzare la rigenerazione di tutti gli output dei passaggi e non consentire il riutilizzo dei dati per questa esecuzione. Se False, questa esecuzione potrebbe riutilizzare i risultati delle esecuzioni precedenti e le esecuzioni successive potrebbero riutilizzare i risultati dell'esecuzione.

Valore predefinito: False
parent_run_id
str

ID esecuzione facoltativo da impostare per l'esecuzione padre di questa pipeline, che viene riflessa in RunHistory. L'esecuzione padre deve appartenere allo stesso esperimento di questa pipeline a cui viene inviata.

Valore predefinito: None
credential_passthrough

Facoltativo, se questo flag è abilitato il processo della pipeline remota userà le credenziali dell'utente che ha avviato il processo. Questa funzionalità è disponibile solo in anteprima privata.

Valore predefinito: None

Restituisce

Tipo Descrizione

Esecuzione della pipeline inviata.

validate

Convalidare una pipeline e identificare potenziali errori, ad esempio input non connessi.

validate()

Restituisce

Tipo Descrizione

Elenco di errori nella pipeline.

Commenti

Esempi di errori di convalida includono:

  • origini dati o tipi di passaggi mancanti o imprevisti

  • parametri o definizioni di output mancanti per un'origine dati della pipeline o un passaggio

  • input non connessi

  • passaggi della pipeline che formano un ciclo o un ciclo

Se la convalida passa (restituisce un elenco vuoto) e la pipeline non funziona, vedere debug e risolvere i problemi delle pipeline di Machine Learning.

Attributi

graph

Ottenere il grafico associato alla pipeline. I passaggi e gli input dati vengono visualizzati come nodi nel grafico.

Restituisce

Tipo Descrizione

Grafico.