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

workspace
Workspace
Necessario

Area di lavoro in cui inviare la pipeline.

steps
list
Necessario

Elenco dei passaggi da eseguire come parte di una pipeline.

description
str
Necessario

Descrizione della pipeline.

default_datastore
AbstractAzureStorageDatastore oppure AzureDataLakeDatastore
Necessario

Archivio dati predefinito da usare per le connessioni dati.

default_source_directory
str
Necessario

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

resolve_closure
bool
Necessario

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

workspace
Workspace
Necessario

Area di lavoro in cui inviare la pipeline.

steps
list
Necessario

Elenco dei passaggi da eseguire come parte di una pipeline.

description
str
Necessario

Descrizione della pipeline.

default_datastore
AbstractAzureStorageDatastore oppure AzureDataLakeDatastore
Necessario

Archivio dati predefinito da usare per le connessioni dati.

default_source_directory
str
Necessario

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

resolve_closure
bool
Necessario

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

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

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

_service_endpoint
str
Necessario

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

kwargs
dict
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

workspace
Workspace
Necessario

Area di lavoro in cui inviare la pipeline.

filename
str
Necessario

File YAML che descrive la pipeline.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
valore predefinito: None

Provider del flusso di lavoro.

_service_endpoint
str
valore predefinito: None

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

Restituisce

Pipeline costruita.

Tipo restituito

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

name
str
valore predefinito: None

Nome della pipeline pubblicata.

description
str
valore predefinito: None

Descrizione della pipeline pubblicata.

version
str
valore predefinito: None

Versione della pipeline pubblicata.

continue_on_step_failure
bool
valore predefinito: None

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.

Restituisce

Creazione della pipeline pubblicata.

Tipo restituito

service_endpoint

Ottenere l'endpoint del servizio associato alla pipeline.

service_endpoint()

Restituisce

Endpoint del servizio.

Tipo restituito

str

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

experiment_name
str
Necessario

Nome dell'esperimento in cui inviare la pipeline.

pipeline_parameters
dict
valore predefinito: None

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

continue_on_step_failure
bool
valore predefinito: False

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.

regenerate_outputs
bool
valore predefinito: False

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.

parent_run_id
str
valore predefinito: None

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.

credential_passthrough
valore predefinito: None

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.

Restituisce

Esecuzione della pipeline inviata.

Tipo restituito

validate

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

validate()

Restituisce

Elenco di errori nella pipeline.

Tipo restituito

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

Grafico.

Tipo restituito