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.objectPipeline
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
|
Descrizione della pipeline. |
default_datastore
Necessario
|
Archivio dati predefinito da usare per le connessioni dati. |
default_source_directory
Necessario
|
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
|
Descrizione della pipeline. |
default_datastore
Necessario
|
Archivio dati predefinito da usare per le connessioni dati. |
default_source_directory
Necessario
|
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
|
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
|
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
|
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
|
Nome della pipeline pubblicata. Valore predefinito: None
|
description
|
Descrizione della pipeline pubblicata. Valore predefinito: None
|
version
|
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 |
---|---|
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
|
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
|
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. |