ParallelRunStep Clase

Crea un paso de canalización de Azure Machine Learning para procesar grandes cantidades de datos de forma asincrónica y en paralelo.

Para obtener un ejemplo del uso de ParallelRunStep, vea el cuaderno https://aka.ms/batch-inference-notebooks.

Para consultar la guía de solución de problemas, vea https://aka.ms/prstsg. Puede encontrar más referencias allí.

Cree un paso de canalización de Azure ML para procesar grandes cantidades de datos de forma asincrónica y en paralelo.

Para obtener un ejemplo de uso de ParallelRunStep, consulte el vínculo https://aka.ms/batch-inference-notebooksdel cuaderno .

Herencia
azureml.pipeline.core._parallel_run_step_base._ParallelRunStepBase
ParallelRunStep

Constructor

ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)

Parámetros

name
str
Requerido

Nombre del paso. Debe ser único para el área de trabajo, solo debe estar formado por letras minúsculas, números o guiones, debe comenzar por una letra y tener entre 3 y 32 caracteres de longitud.

parallel_run_config
ParallelRunConfig
Requerido

Objeto ParallelRunConfig que se usa para determinar las propiedades de ejecución necesarias.

inputs
list[Union[DatasetConsumptionConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset]]
Requerido

Lista de conjuntos de datos de entrada. Todos los conjuntos de datos de la lista deben ser del mismo tipo. Los datos de entrada se particionarán para el procesamiento paralelo. Cada conjunto de datos de la lista se divide en minilotes por separado y cada uno de los minilotes se trata por igual en el procesamiento paralelo.º

output
Union[PipelineData, OutputPortBinding, OutputDatasetConfig]
valor predeterminado: None

El enlace de puerto de salida se puede usar en pasos de canalización posteriores.

side_inputs
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
valor predeterminado: None

Lista de datos de referencia de entrada lateral. Las entradas secundarias no se particionarán como datos de entrada.

arguments
list[str]
valor predeterminado: None

Lista de argumentos de línea de comandos que se pasarán a entry_script de Python.

allow_reuse
bool
valor predeterminado: True

sirve para decidir si el paso debe volver a usar los resultados anteriores cuando se ejecuta con la misma configuración o entrada. Si se establece en "false", siempre se generará una nueva ejecución para este paso durante la ejecución de la canalización.

name
str
Requerido

Nombre del paso. Debe ser único para el área de trabajo, solo debe estar formado por letras minúsculas, números o guiones, debe comenzar por una letra y tener entre 3 y 32 caracteres de longitud.

parallel_run_config
ParallelRunConfig
Requerido

Objeto ParallelRunConfig que se usa para determinar las propiedades de ejecución necesarias.

inputs
list[Union[DatasetConsumptionConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset]]
Requerido

Lista de conjuntos de datos de entrada. Todos los conjuntos de datos de la lista deben ser del mismo tipo. Los datos de entrada se particionarán para el procesamiento paralelo. Cada conjunto de datos de la lista se divide en minilotes por separado y cada uno de los minilotes se trata por igual en el procesamiento paralelo.º

output
PipelineData, OutputPortBinding
Requerido

El enlace de puerto de salida se puede usar en pasos de canalización posteriores.

side_inputs
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Requerido

Lista de datos de referencia de entrada lateral. Las entradas secundarias no se particionarán como datos de entrada.

arguments
list[str]
Requerido

Lista de argumentos de línea de comandos que se pasarán a entry_script de Python.

allow_reuse
bool
Requerido

sirve para decidir si el paso debe volver a usar los resultados anteriores cuando se ejecuta con la misma configuración o entrada. Si se establece en "false", siempre se generará una nueva ejecución para este paso durante la ejecución de la canalización.

Comentarios

ParallelRunStep se puede usar para procesar grandes cantidades de datos en paralelo. Los casos de uso comunes son el entrenamiento de un modelo de aprendizaje automático o la ejecución de inferencia sin conexión para generar predicciones sobre un lote de observaciones. ParallelRunStep funciona mediante la separación de los datos en lotes que se procesan en paralelo. El tamaño del lote, el número de nodos y otros parámetros ajustables para acelerar el procesamiento paralelo se pueden controlar con la clase ParallelRunConfig. ParallelRunStep puede funcionar con TabularDataset o FileDataset como entrada.

Para usar ParallelRunStep:

  • Cree un objeto ParallelRunConfig para especificar cómo se realiza el procesamiento por lotes, con parámetros para controlar el tamaño del lote, el número de nodos por destino de proceso y una referencia al script de Python personalizado.

  • Cree un objeto ParallelRunStep que use el objeto ParallelRunConfig y defina las entradas y salidas del paso.

  • Use el objeto ParallelRunStep configurado en una Pipeline como lo haría con otros tipos de pasos de canalización.

En los siguientes artículos se analizan ejemplos de trabajo con las clases ParallelRunStep y ParallelRunConfig para la inferencia por lotes:


   from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig

   parallel_run_config = ParallelRunConfig(
       source_directory=scripts_folder,
       entry_script=script_file,
       mini_batch_size="5",
       error_threshold=10,         # Optional, allowed failed count on mini batch items
       allowed_failed_count=15,    # Optional, allowed failed count on mini batches
       allowed_failed_percent=10,  # Optional, allowed failed percent on mini batches
       output_action="append_row",
       environment=batch_env,
       compute_target=compute_target,
       node_count=2)

   parallelrun_step = ParallelRunStep(
       name="predict-digits-mnist",
       parallel_run_config=parallel_run_config,
       inputs=[ named_mnist_ds ],
       output=output_dir,
       arguments=[ "--extra_arg", "example_value" ],
       allow_reuse=True
   )

Para más información sobre este ejemplo, consulte el cuaderno https://aka.ms/batch-inference-notebooks.

Métodos

create_module_def

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

No se debe llamar a este método directamente.

create_node

Crea un nodo para PythonScriptStep y lo agrega al grafo especificado.

No se debe llamar a este método directamente. Cuando se crea una instancia de una canalización con ParallelRunStep, Azure Machine Learning pasa automáticamente los parámetros necesarios mediante este método para que ese paso se pueda agregar a un grafo de canalización que represente el flujo de trabajo.

create_module_def

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

No se debe llamar a este método directamente.

create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, arguments=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 de paso.

create_sequencing_ports
bool
valor predeterminado: True

Si es true, se crearán puertos de secuenciación para el módulo.

allow_reuse
bool
valor predeterminado: True

Si es true, el módulo estará disponible para reutilizarse en futuras canalizaciones.

version
str
valor predeterminado: None

Versión del módulo.

arguments
list
valor predeterminado: None

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

Devoluciones

Objeto def del módulo.

Tipo de valor devuelto

create_node

Crea un nodo para PythonScriptStep y lo agrega al grafo especificado.

No se debe llamar a este método directamente. Cuando se crea una instancia de una canalización con ParallelRunStep, Azure Machine Learning pasa automáticamente los parámetros necesarios mediante este método para que ese paso se pueda agregar a un grafo de canalización que represente el flujo de trabajo.

create_node(graph, default_datastore, context)

Parámetros

graph
Graph
Requerido

Objeto Graph.

default_datastore
AbstractAzureStorageDatastore o AzureDataLakeDatastore
Requerido

Almacén de datos predeterminado.

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

Contexto.

Devoluciones

El nodo creado.

Tipo de valor devuelto