Compartir a través de


PipelineStep Clase

Representa un paso de ejecución en una canalización de Azure Machine Learning.

Las canalizaciones de ML se construyen a partir de varios pasos de canalización, que son unidades de cálculo diferentes en la canalización. Cada paso se puede ejecutar de forma independiente y usar recursos de proceso aislados. Normalmente, cada paso tiene sus propias entradas, salidas y parámetros con nombre.

La clase PipelineStep es la clase base de la que heredan otras clases de paso integradas diseñadas para escenarios comunes, como PythonScriptStep, DataTransferStep y HyperDriveStep.

Para obtener información general sobre cómo se relacionan Pipelines y PipelineSteps, consulte ¿Qué son las canalizaciones de ML?.

Inicializar PipelineStep.

Herencia
builtins.object
PipelineStep

Constructor

PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)

Parámetros

Nombre Description
name
Requerido
str

El nombre del paso de canalización.

inputs
Requerido

La lista de entradas del paso.

outputs
Requerido

La lista de salidas del paso.

arguments

Lista opcional de argumentos que se pasan a un script que se usa en el paso.

Valor predeterminado: None
fix_port_name_collisions

Especifica si se deben corregir conflictos de nombres. Si el valor es True y una entrada y una salida tienen el mismo nombre, se agrega el prefijo "INPUT" a la entrada. El valor predeterminado es False.

Valor predeterminado: False
resource_inputs

Lista opcional de entradas que se usarán como recursos. Los recursos se descargan en la carpeta de scripts y proporcionan una manera de cambiar el comportamiento del script en tiempo de ejecución.

Valor predeterminado: None
name
Requerido
str

El nombre del paso de canalización.

inputs
Requerido

La lista de entradas del paso.

outputs
Requerido

La lista de salidas del paso.

arguments
Requerido

Lista opcional de argumentos que se pasan a un script que se usa en el paso.

fix_port_name_collisions
Requerido

Especifica si se deben corregir conflictos de nombres. Si el valor es True y una entrada y una salida tienen el mismo nombre, se agrega el prefijo "INPUT" a la entrada. El valor predeterminado es False.

resource_inputs
Requerido

Lista opcional de entradas que se usarán como recursos. Los recursos se descargan en la carpeta de scripts y proporcionan una manera de cambiar el comportamiento del script en tiempo de ejecución.

Comentarios

PipelineStep es una unidad de ejecución que normalmente necesita un destino de ejecución (destino de proceso), un script para ejecutarse con entradas y argumentos de script opcionales, y que puede generar salidas. El paso también podría necesitar una serie de otros parámetros específicos del paso.

Los pasos de canalización se pueden configurar conjuntamente para construir una Pipeline, que representa un flujo de trabajo de Azure Machine Learning que se puede compartir y reutilizar. Cada paso de una canalización se puede configurar para permitir la reutilización de los resultados de ejecución anteriores si el contenido del paso (scripts y dependencias), así como las entradas y los parámetros, permanecen sin cambios. Al volver a usar el paso, en lugar de enviar el trabajo al proceso, los resultados de la ejecución anterior se hacen disponibles inmediatamente para los pasos posteriores.

Las canalizaciones de Azure Machine Learning proporcionan pasos integrados para escenarios comunes. Para obtener ejemplos, consulte el paquete steps y la clase AutoMLStep. Para obtener información general sobre la creación de una canalización basada en pasos previamente creados, consulte https://aka.ms/pl-first-pipeline.

Los pasos creados previamente derivados de PipelineStep son pasos que se usan en una canalización. Si el flujo de trabajo de aprendizaje automático utilizado llama para crear pasos que puedan tener versiones y que se puedan usar en distintas canalizaciones, use la clase Module.

Tenga en cuenta lo siguiente al trabajar con pasos de canalización, datos de entrada o salida y la reutilización de pasos.

  • Se recomienda usar ubicaciones de source_directory independientes para pasos independientes. Si todos los scripts de los pasos de canalización están en un único directorio, el hash de ese directorio cambia cada vez que se realiza un cambio en un script, lo cual obliga a que se vuelvan a ejecutar todos los pasos. Para obtener un ejemplo del uso de directorios independientes para distintos pasos, consulte https://aka.ms/pl-get-started.

  • Mantener carpetas independientes para los scripts y los archivos dependientes de cada paso ayuda a reducir el tamaño de la instantánea creada para cada paso ya que solo se crea una instantánea de la carpeta específica. Dado que los cambios en los archivos de source_directory del paso desencadenan una nueva carga de la instantánea, mantener carpetas independientes en cada paso contribuye a la excesiva reutilización de los pasos de la canalización ya que si no hay cambios en el directorio source_directory de un paso, se reutiliza la ejecución anterior del paso.

  • Si los datos usados en un paso están en un almacén de datos y el valor de allow_reuse es True, no se detectarán los cambios en los datos. Si los datos se cargan como parte de la instantánea (en el directorio source_directory del paso), aunque esto no se recomienda, el hash cambiará y desencadenará una nueva ejecución.

Métodos

create_input_output_bindings

Cree enlaces de entrada y salida a partir de las entradas y salidas de los pasos.

create_module_def

Cree el objeto de definición del módulo que describe el paso.

create_node

Cree un nodo para el grafo de la canalización en función de este paso.

get_source_directory

Obtiene el directorio de origen del paso y comprueba que el script existe.

resolve_input_arguments

Haga coincidir las entradas y salidas con los argumentos para generar una cadena de argumento.

run_after

Ejecute este paso después del paso especificado.

validate_arguments

Valide que las entradas y salidas de pasos que se proporcionaron en los argumentos están en las listas de entradas y salidas.

create_input_output_bindings

Cree enlaces de entrada y salida a partir de las entradas y salidas de los pasos.

create_input_output_bindings(inputs, outputs, default_datastore, resource_inputs=None)

Parámetros

Nombre Description
inputs
Requerido

La lista de entradas del paso.

outputs
Requerido

La lista de salidas del paso.

default_datastore
Requerido

El almacén de datos predeterminado.

resource_inputs

Lista de entradas que se usarán como recursos. Los recursos se descargan en la carpeta de scripts y proporcionan una manera de cambiar el comportamiento del script en tiempo de ejecución.

Valor predeterminado: None

Devoluciones

Tipo Description

Tupla de los enlaces de entrada y de salida.

create_module_def

Cree el objeto de definición del módulo que describe el paso.

create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, arguments=None, runconfig=None, cloud_settings=None)

Parámetros

Nombre Description
execution_type
Requerido
str

Tipo de ejecución del módulo.

input_bindings
Requerido

Enlaces de entrada del paso.

output_bindings
Requerido

Enlaces de salida del paso.

param_defs

Definiciones de parámetros del paso.

Valor predeterminado: None
create_sequencing_ports

Especifica si se crearán puertos de secuenciación para el módulo.

Valor predeterminado: True
allow_reuse

Especifica si el módulo estará disponible para reutilizarse en futuras canalizaciones.

Valor predeterminado: True
version
str

Versión del módulo.

Valor predeterminado: None
module_type
str

Tipo de módulo para el servicio de creación de módulos que se va a crear. Actualmente solo se admiten dos tipos: "None" y "BatchInferencing". module_type es diferente del execution_type que especifica el tipo de servicio back-end que se va a usar para ejecutar este módulo.

Valor predeterminado: None
arguments

Lista de argumentos anotados que se va a usar al llamar a este módulo

Valor predeterminado: None
runconfig
str

Elemento Runconfig que se usará para python_script_step.

Valor predeterminado: None
cloud_settings
<xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>

Configuración que se usará para las nubes.

Valor predeterminado: None

Devoluciones

Tipo Description

Objeto de definición del módulo.

create_node

Cree un nodo para el grafo de la canalización en función de este paso.

abstract create_node(graph, default_datastore, context)

Parámetros

Nombre Description
graph
Requerido

Grafo al que se agrega el nodo.

default_datastore
Requerido

Almacén de datos predeterminado que se va a usar para este paso.

context
Requerido
<xref:azureml.pipeline.core._GraphContext>

El objeto de contexto de grafo.

Devoluciones

Tipo Description

El nodo creado.

get_source_directory

Obtiene el directorio de origen del paso y comprueba que el script existe.

get_source_directory(context, source_directory, script_name)

Parámetros

Nombre Description
context
Requerido
<xref:azureml.pipeline.core._GraphContext>

El objeto de contexto de grafo.

source_directory
Requerido
str

Directorio de origen del paso.

script_name
Requerido
str

Nombre de script del paso.

hash_paths
Requerido

Rutas de acceso hash que se usarán al determinar la huella digital del módulo.

Devoluciones

Tipo Description

El directorio de origen y las rutas de acceso hash.

resolve_input_arguments

Haga coincidir las entradas y salidas con los argumentos para generar una cadena de argumento.

static resolve_input_arguments(arguments, inputs, outputs, params)

Parámetros

Nombre Description
arguments
Requerido

Una lista de argumentos del paso.

inputs
Requerido

Una lista de entradas del paso.

outputs
Requerido

Una lista de salidas del paso.

params
Requerido

Una lista de parámetros del paso.

Devoluciones

Tipo Description

Devuelve una tupla de dos elementos. La primera es una lista plana de elementos para los argumentos resueltos. La segunda es una lista de argumentos estructurados (_InputArgument, _OutputArgument, _ParameterArgument y _StringArgument).

run_after

Ejecute este paso después del paso especificado.

run_after(step)

Parámetros

Nombre Description
step
Requerido

Paso de canalización que se va a ejecutar antes de este paso.

Comentarios

Si desea ejecutar un paso, por ejemplo, el paso 3, una vez completados los pasos 1 y 2, puede usar:


   step3.run_after(step1)
   step3.run_after(step2)

validate_arguments

Valide que las entradas y salidas de pasos que se proporcionaron en los argumentos están en las listas de entradas y salidas.

static validate_arguments(arguments, inputs, outputs)

Parámetros

Nombre Description
arguments
Requerido

La lista de argumentos del paso.

inputs
Requerido

La lista de entradas del paso.

outputs
Requerido

La lista de salidas del paso.