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

name
str
Requerido

El nombre del paso de canalización.

inputs
list
Requerido

La lista de entradas del paso.

outputs
list
Requerido

La lista de salidas del paso.

arguments
list
valor predeterminado: None

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

fix_port_name_collisions
bool
valor predeterminado: False

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
list
valor predeterminado: None

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.

name
str
Requerido

El nombre del paso de canalización.

inputs
list
Requerido

La lista de entradas del paso.

outputs
list
Requerido

La lista de salidas del paso.

arguments
list
Requerido

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

fix_port_name_collisions
bool
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
list
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

inputs
list
Requerido

La lista de entradas del paso.

outputs
list
Requerido

La lista de salidas del paso.

default_datastore
AbstractAzureStorageDatastore o AzureDataLakeDatastore
Requerido

El almacén de datos predeterminado.

resource_inputs
list
valor predeterminado: None

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.

Devoluciones

Tupla de los enlaces de entrada y de salida.

Tipo de valor devuelto

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

execution_type
str
Requerido

Tipo de ejecución del módulo.

input_bindings
list
Requerido

Enlaces de entrada del paso.

output_bindings
list
Requerido

Enlaces de salida del paso.

param_defs
list
valor predeterminado: None

Definiciones de parámetros del paso.

create_sequencing_ports
bool
valor predeterminado: True

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

allow_reuse
bool
valor predeterminado: True

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

version
str
valor predeterminado: None

Versión del módulo.

module_type
str
valor predeterminado: None

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.

arguments
list
valor predeterminado: None

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

runconfig
str
valor predeterminado: None

Elemento Runconfig que se usará para python_script_step.

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

Configuración que se usará para las nubes.

Devoluciones

Objeto de definición del módulo.

Tipo de valor devuelto

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

graph
Graph
Requerido

Grafo al que se agrega el nodo.

default_datastore
AbstractAzureStorageDatastore o AzureDataLakeDatastore
Requerido

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

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

El objeto de contexto de grafo.

Devoluciones

El nodo creado.

Tipo de valor devuelto

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

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

El objeto de contexto de grafo.

source_directory
str
Requerido

Directorio de origen del paso.

script_name
str
Requerido

Nombre de script del paso.

hash_paths
list
Requerido

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

Devoluciones

El directorio de origen y las rutas de acceso hash.

Tipo de valor devuelto

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

arguments
list
Requerido

Una lista de argumentos del paso.

inputs
list
Requerido

Una lista de entradas del paso.

outputs
list
Requerido

Una lista de salidas del paso.

params
list
Requerido

Una lista de parámetros del paso.

Devoluciones

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).

Tipo de valor devuelto

run_after

Ejecute este paso después del paso especificado.

run_after(step)

Parámetros

step
PipelineStep
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

arguments
list
Requerido

La lista de argumentos del paso.

inputs
list
Requerido

La lista de entradas del paso.

outputs
list
Requerido

La lista de salidas del paso.