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 raggruppano 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.
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 o meno la chiusura (portare 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 o meno la chiusura (portare automaticamente passaggi dipendenti). |
|
_workflow_provider
Necessario
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Provider del flusso di lavoro, se non ne viene creato nessuno. |
|
_service_endpoint
Necessario
|
L'endpoint del servizio, se None viene determinato usando l'area di lavoro. |
|
kwargs
Necessario
|
Argomenti di 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. Si selezionerà il tipo di passaggio in base al proprio scenario di Machine Learning.
Le pipeline di Azure Machine Learning offrono procedure predefinite 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 l'uso del flusso di lavoro di Machine Learning richiede la creazione di passaggi che possono essere creati e usati in pipeline diverse, usare la funzionalità nel Module modulo.
Inviare una pipeline usando submit. Quando viene chiamato submit, 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 in caso di errore di un passaggio; il valore predefinito è False. Se True, solo i passaggi che non hanno alcuna dipendenza dall'output del passaggio non riuscito continueranno a essere eseguiti.
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 altri dettagli, 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 è la 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 riesecuzione. 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 di servizio associato alla pipeline. |
| submit |
Inviare un'esecuzione della pipeline. Equivale all'uso submitdi . Restituisce l'oggetto inviato PipelineRun. Utilizzare 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
Vedere di seguito per un esempio di file YAML. YAML contiene un nome, default_compute e elenchi di parametri, riferimenti ai dati e passaggi per la pipeline. Ogni passaggio deve specificare i binding di modulo, calcolo e parametro, input e output. Inoltre, è possibile specificare un elemento runconfig e argomenti di passaggio, 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 riesecuzione.
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 a essere eseguiti. Valore predefinito: None
|
Restituisce
| Tipo | Descrizione |
|---|---|
|
Creazione della pipeline pubblicata. |
service_endpoint
Ottenere l'endpoint di servizio associato alla pipeline.
service_endpoint()
Restituisce
| Tipo | Descrizione |
|---|---|
|
Endpoint del servizio. |
submit
Inviare un'esecuzione della pipeline. Equivale all'uso submitdi .
Restituisce l'oggetto inviato PipelineRun. Utilizzare 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 altri dettagli, 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 a essere eseguiti. 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 può riutilizzare i risultati delle esecuzioni precedenti e le esecuzioni successive possono riutilizzare i risultati di questa esecuzione. Valore predefinito: False
|
|
parent_run_id
|
ID esecuzione facoltativo da impostare per 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. 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 passaggio mancanti o imprevisti della pipeline
parametri o definizioni di output mancanti per un'origine dati o un passaggio della pipeline
input non connessi
passaggi della pipeline che formano un ciclo o un ciclo
Se la convalida supera (restituisce un elenco vuoto) e la pipeline non funziona, vedere debug e risoluzione dei problemi delle pipeline di Machine Learning.
Attributi
graph
Ottenere il grafico associato alla pipeline. I passaggi e gli input di dati vengono visualizzati come nodi nel grafico.
Restituisce
| Tipo | Descrizione |
|---|---|
|
Grafico. |