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.object
Pipeline

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

workspace
Workspace
Requerido

Área de trabajo a la que se va a enviar la canalización.

steps
list
Requerido

Lista de pasos que se ejecutarán como parte de una canalización.

description
str
Requerido

Descripción de la canalización.

default_datastore
AbstractAzureStorageDatastore o AzureDataLakeDatastore
Requerido

Almacén de datos predeterminado que se va a utilizar para las conexiones de datos.

default_source_directory
str
Requerido

Directorio de script predeterminado para los pasos que ejecutan un script.

resolve_closure
bool
Requerido

Indica si se debe resolver el cierre o no (llevar automáticamente pasos dependientes).

workspace
Workspace
Requerido

Área de trabajo a la que se va a enviar la canalización.

steps
list
Requerido

Lista de pasos que se ejecutarán como parte de una canalización.

description
str
Requerido

Descripción de la canalización.

default_datastore
AbstractAzureStorageDatastore o AzureDataLakeDatastore
Requerido

Almacén de datos predeterminado que se va a utilizar para las conexiones de datos.

default_source_directory
str
Requerido

Directorio de script predeterminado para los pasos que ejecutan un script.

resolve_closure
bool
Requerido

Si resuelve el cierre o no (trae automáticamente pasos dependientes).

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

Proveedor de flujo de trabajo, si no se crea ninguno.

_service_endpoint
str
Requerido

El punto de conexión de servicio, si Ninguno se determina mediante el área de trabajo.

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

workspace
Workspace
Requerido

Área de trabajo a la que se va a enviar la canalización.

filename
str
Requerido

Archivo YAML que describe la canalización.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
valor predeterminado: None

Proveedor del flujo de trabajo.

_service_endpoint
str
valor predeterminado: None

Punto de conexión de servicio; si el valor es Ninguno, se determina mediante el área de trabajo.

Devoluciones

Canalización construida.

Tipo de valor devuelto

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

name
str
valor predeterminado: None

Nombre de la canalización publicada.

description
str
valor predeterminado: None

Descripción de la canalización publicada.

version
str
valor predeterminado: None

Versión de la canalización publicada.

continue_on_step_failure
bool
valor predeterminado: None

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.

Devoluciones

La canalización creada y publicada.

Tipo de valor devuelto

service_endpoint

Obtiene el punto de conexión de servicio asociado a la canalización.

service_endpoint()

Devoluciones

Extremo del servicio.

Tipo de valor devuelto

str

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

experiment_name
str
Requerido

Nombre del experimento al que se va a enviar la canalización.

pipeline_parameters
dict
valor predeterminado: None

Parámetros para la ejecución de la canalización, diccionario de {nombre: valor}. Para obtener más información, consulte PipelineParameter.

continue_on_step_failure
bool
valor predeterminado: False

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.

regenerate_outputs
bool
valor predeterminado: False

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.

parent_run_id
str
valor predeterminado: None

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.

credential_passthrough
valor predeterminado: None

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.

Devoluciones

Ejecución de canalización enviada.

Tipo de valor devuelto

validate

Valida una canalización e identifica los posibles errores, como las entradas no conectadas.

validate()

Devoluciones

Lista de errores de la canalización.

Tipo de valor devuelto

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

Gráfico.

Tipo de valor devuelto