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.objectPipelineStep
Constructor
PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)
Parámetros
Nombre | Description |
---|---|
name
Requerido
|
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
|
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
|
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
|
Versión del módulo. Valor predeterminado: None
|
module_type
|
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".
Valor predeterminado: None
|
arguments
|
Lista de argumentos anotados que se va a usar al llamar a este módulo Valor predeterminado: None
|
runconfig
|
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
|
Directorio de origen del paso. |
script_name
Requerido
|
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. |