Pipeline Clase
Representa una colección de pasos que se pueden ejecutar como un flujo de trabajo de Azure Machine Learning reutilizable.
Use una canalización para crear y administrar los flujos de trabajo que unen las distintas fases del aprendizaje automático. Cada fase del aprendizaje automático, como la preparación de datos y el entrenamiento del modelo, puede constar de uno o varios pasos de una canalización.
Para obtener información general sobre por qué y cuándo usar canalizaciones, consulte https://aka.ms/pl-concept.
Para obtener información general sobre cómo construir una canalización, consulte https://aka.ms/pl-first-pipeline.
Inicializar canalización.
- Herencia
-
builtins.objectPipeline
Constructor
Pipeline(workspace, steps, description=None, default_datastore=None, default_source_directory=None, resolve_closure=True, _workflow_provider=None, _service_endpoint=None, **kwargs)
Parámetros
Nombre | Description |
---|---|
workspace
Requerido
|
Área de trabajo a la que se va a enviar la canalización. |
steps
Requerido
|
Lista de pasos que se ejecutarán como parte de una canalización. |
description
Requerido
|
Descripción de la canalización. |
default_datastore
Requerido
|
Almacén de datos predeterminado que se va a utilizar para las conexiones de datos. |
default_source_directory
Requerido
|
Directorio de script predeterminado para los pasos que ejecutan un script. |
resolve_closure
Requerido
|
Indica si se debe resolver el cierre o no (llevar automáticamente pasos dependientes). |
workspace
Requerido
|
Área de trabajo a la que se va a enviar la canalización. |
steps
Requerido
|
Lista de pasos que se ejecutarán como parte de una canalización. |
description
Requerido
|
Descripción de la canalización. |
default_datastore
Requerido
|
Almacén de datos predeterminado que se va a utilizar para las conexiones de datos. |
default_source_directory
Requerido
|
Directorio de script predeterminado para los pasos que ejecutan un script. |
resolve_closure
Requerido
|
Si resuelve el cierre o no (trae automáticamente pasos dependientes). |
_workflow_provider
Requerido
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Proveedor de flujo de trabajo, si no se crea ninguno. |
_service_endpoint
Requerido
|
El punto de conexión de servicio, si Ninguno se determina mediante el área de trabajo. |
kwargs
Requerido
|
Argumentos de palabra clave personalizados, reservados para el desarrollo futuro |
Comentarios
Se crea una canalización con una lista de pasos y un área de trabajo. Hay una serie de tipos de pasos que se pueden usar en una canalización. Seleccionará el tipo de paso en función del escenario de aprendizaje automático.
Las canalizaciones de Azure Machine Learning proporcionan pasos integrados para escenarios comunes. Los pasos creados previamente derivados de PipelineStep son pasos que se usan en una canalización. Para obtener ejemplos, consulte el paquete steps y la clase AutoMLStep.
Si utiliza llamadas de flujo de trabajo de Machine Learning para crear pasos que puedan tener versiones y que se puedan usar en distintas canalizaciones, use la funcionalidad del módulo Module.
Envíe una canalización mediante submit. Cuando se llama a submit, se crea un objeto PipelineRun que, a su vez, crea objetos StepRun para cada paso del flujo de trabajo. Use estos objetos para supervisar la ejecución.
Un ejemplo para enviar una canalización es el siguiente:
from azureml.pipeline.core import Pipeline
pipeline = Pipeline(workspace=ws, steps=steps)
pipeline_run = experiment.submit(pipeline)
Hay una serie de configuraciones opcionales para una canalización que se pueden especificar en el envío en submit.
continue_on_step_failure: indica si se debe continuar con la ejecución de la canalización si se produce un error en un paso; el valor predeterminado es False. Si es True, solo los pasos que no tengan dependencia de la salida del paso con error continuarán la ejecución.
regenerate_outputs: indica si se va a forzar la regeneración de todas las salidas del paso y no permitir la reutilización de datos para esta ejecución; el valor predeterminado es False.
pipeline_parameters: parámetros para la ejecución de la canalización, diccionario de {nombre: valor}. Para obtener más información, consulte PipelineParameter.
parent_run_id: puede proporcionar un identificador de ejecución para establecer la ejecución primaria de esta ejecución de canalización, que se refleja en RunHistory. La ejecución primaria debe pertenecer al mismo experimento al que se envía esta canalización.
Un ejemplo para enviar una canalización con esta configuración es el siguiente:
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>")
Métodos
load_yaml |
Carga una canalización desde el archivo YAML especificado. Se puede usar un archivo YAML para describir una canalización que consta de elementos ModuleStep. |
publish |
Publica una canalización y hace que esté disponible para volver a ejecutarse. Una vez publicada una canalización, se puede enviar sin el código de Python que construyó la canalización. Devuelve el objeto PublishedPipeline creado. |
service_endpoint |
Obtiene el punto de conexión de servicio asociado a la canalización. |
submit |
Envía una ejecución de canalización. Esto equivale a utilizar submit. Devuelve el elemento PipelineRun enviado. Use este objeto para supervisar y ver los detalles de la ejecución. |
validate |
Valida una canalización e identifica los posibles errores, como las entradas no conectadas. |
load_yaml
Carga una canalización desde el archivo YAML especificado.
Se puede usar un archivo YAML para describir una canalización que consta de elementos ModuleStep.
static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)
Parámetros
Nombre | Description |
---|---|
workspace
Requerido
|
Área de trabajo a la que se va a enviar la canalización. |
filename
Requerido
|
Archivo YAML que describe la canalización. |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Proveedor del flujo de trabajo. Valor predeterminado: None
|
_service_endpoint
|
Punto de conexión de servicio; si el valor es Ninguno, se determina mediante el área de trabajo. Valor predeterminado: None
|
Devoluciones
Tipo | Description |
---|---|
Canalización construida. |
Comentarios
Consulte a continuación un archivo YAML de ejemplo. El archivo YAML contiene un nombre, un destino de proceso predeterminado y listas de parámetros, referencias de datos y pasos para la canalización. Cada paso debe especificar los enlaces de módulo, proceso y parámetro, y entrada y salida. Además, se pueden especificar un paso runconfig y argumentos si es necesario.
Archivo YAML de ejemplo:
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
Publica una canalización y hace que esté disponible para volver a ejecutarse.
Una vez publicada una canalización, se puede enviar sin el código de Python que construyó la canalización. Devuelve el objeto PublishedPipeline creado.
publish(name=None, description=None, version=None, continue_on_step_failure=None)
Parámetros
Nombre | Description |
---|---|
name
|
Nombre de la canalización publicada. Valor predeterminado: None
|
description
|
Descripción de la canalización publicada. Valor predeterminado: None
|
version
|
Versión de la canalización publicada. Valor predeterminado: None
|
continue_on_step_failure
|
Indica si se continúa la ejecución del resto de pasos en el objeto PipelineRun si se produce un error en un paso; el valor predeterminado es False. Si es True, solo los pasos que no tengan dependencia de la salida del paso con error continuarán la ejecución. Valor predeterminado: None
|
Devoluciones
Tipo | Description |
---|---|
La canalización creada y publicada. |
service_endpoint
Obtiene el punto de conexión de servicio asociado a la canalización.
service_endpoint()
Devoluciones
Tipo | Description |
---|---|
Extremo del servicio. |
submit
Envía una ejecución de canalización. Esto equivale a utilizar submit.
Devuelve el elemento PipelineRun enviado. Use este objeto para supervisar y ver los detalles de la ejecución.
submit(experiment_name, pipeline_parameters=None, continue_on_step_failure=False, regenerate_outputs=False, parent_run_id=None, credential_passthrough=None, **kwargs)
Parámetros
Nombre | Description |
---|---|
experiment_name
Requerido
|
Nombre del experimento al que se va a enviar la canalización. |
pipeline_parameters
|
Parámetros para la ejecución de la canalización, diccionario de {nombre: valor}. Para obtener más información, consulte PipelineParameter. Valor predeterminado: None
|
continue_on_step_failure
|
Indica si se debe continuar con la ejecución de la canalización si se produce un error en un paso. Si es True, solo los pasos que no tengan dependencia de la salida del paso con error continuarán la ejecución. Valor predeterminado: False
|
regenerate_outputs
|
Indica si se va a forzar la regeneración de todas las salidas del paso y no permitir la reutilización de datos para esta ejecución. Si es False, esta ejecución puede reutilizar los resultados de ejecuciones anteriores y las ejecuciones posteriores pueden reutilizar los resultados de esta ejecución. Valor predeterminado: False
|
parent_run_id
|
Identificador de ejecución opcional para establecer la ejecución primaria de esta ejecución de canalización, que se refleja en RunHistory. La ejecución primaria debe pertenecer al mismo experimento al que se envía esta canalización. Valor predeterminado: None
|
credential_passthrough
|
Opcional, si esta marca está habilitada, el trabajo de canalización remota usará las credenciales del usuario que inició el trabajo. Esta característica solo está disponible en la versión preliminar privada. Valor predeterminado: None
|
Devoluciones
Tipo | Description |
---|---|
Ejecución de canalización enviada. |
validate
Valida una canalización e identifica los posibles errores, como las entradas no conectadas.
validate()
Devoluciones
Tipo | Description |
---|---|
Lista de errores de la canalización. |
Comentarios
Entre los ejemplos de errores de validación, se incluyen:
orígenes de datos o tipos de pasos de la canalización que faltan o son inesperados
faltan parámetros o definiciones de salida para un origen de datos o un paso de la canalización
entradas no conectadas
pasos de canalización que forman un bucle o ciclo
Si se supera la validación (devuelve una lista vacía) y la canalización no funciona, consulte Solución de problemas de canalizaciones de aprendizaje automático.
Atributos
graph
Obtiene el grafo asociado a la canalización. Los pasos y las entradas de datos aparecen como nodos en el grafo.
Devoluciones
Tipo | Description |
---|---|
Gráfico. |