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 de uso de ParallelRunStep, consulte el cuaderno https://aka.ms/batch-inference-notebooks.
Para obtener una guía de solución de problemas, consulte 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 .
Constructor
ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)
Parámetros
Nombre | Description |
---|---|
name
Requerido
|
Nombre del paso. Debe ser único para el área de trabajo, solo consta de letras minúsculas, números o guiones, comenzar con una letra y tener entre 3 y 32 caracteres. |
parallel_run_config
Requerido
|
Objeto ParallelRunConfig usado para determinar las propiedades de ejecución necesarias. |
inputs
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 miniprocesos por separado y cada uno de los miniprocesos se trata igualmente en el procesamiento paralelo. |
output
|
Los pasos posteriores de canalización pueden usar el enlace de puerto de salida. Valor predeterminado: None
|
side_inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Lista de datos de referencia de entrada lateral. Las entradas laterales no se particionarán como datos de entrada. Valor predeterminado: None
|
arguments
|
Lista de argumentos de línea de comandos que se van a pasar al entry_script de Python. Valor predeterminado: None
|
allow_reuse
|
Si el paso debe reutilizar los resultados anteriores al ejecutarse con la misma configuración o entradas. Si es false, siempre se generará una nueva ejecución para este paso durante la ejecución de la canalización. Valor predeterminado: True
|
name
Requerido
|
Nombre del paso. Debe ser único para el área de trabajo, solo consta de letras minúsculas, números o guiones, comenzar con una letra y tener entre 3 y 32 caracteres. |
parallel_run_config
Requerido
|
Objeto ParallelRunConfig usado para determinar las propiedades de ejecución necesarias. |
inputs
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 miniprocesos por separado y cada uno de los miniprocesos se trata igualmente en el procesamiento paralelo. |
output
Requerido
|
Los pasos posteriores de canalización pueden usar el enlace de puerto de salida. |
side_inputs
Requerido
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Lista de datos de referencia de entrada lateral. Las entradas laterales no se particionarán como datos de entrada. |
arguments
Requerido
|
Lista de argumentos de línea de comandos que se van a pasar al entry_script de Python. |
allow_reuse
Requerido
|
Si el paso debe reutilizar los resultados anteriores al ejecutarse con la misma configuración o entradas. Si es 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 número de nodos de tamaño de lote y otros parámetros ajustables para acelerar el procesamiento paralelo se pueden controlar con la ParallelRunConfig clase . ParallelRunStep puede funcionar con o TabularDatasetFileDataset como entrada.
Para usar ParallelRunStep:
Cree un ParallelRunConfig objeto 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 un Pipeline elemento igual que lo haría con otros tipos de pasos de canalización.
En los artículos siguientes se describen ejemplos de cómo trabajar con clases ParallelRunStep y ParallelRunConfig para la inferencia por lotes:
Tutorial: Compilación de una canalización de Azure Machine Learning para la puntuación por lotes En este artículo se muestra cómo usar estas dos clases para la puntuación por lotes asincrónica en una canalización y cómo habilitar un punto de conexión REST para ejecutar la canalización.
Ejecución de una inferencia por lotes en grandes cantidades de datos mediante Azure Machine Learning En este artículo se muestra cómo procesar grandes cantidades de datos de forma asincrónica y en paralelo con un script de inferencia personalizado y un modelo de clasificación de imágenes previamente entrenado basado en el conjunto de datos de MNIST.
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 obtener más información sobre este ejemplo, vea el cuaderno https://aka.ms/batch-inference-notebooks.
Métodos
create_module_def |
Cree el objeto de definición de módulo que describe el paso. Este método no está pensado para usarse directamente. |
create_node |
Cree un nodo para PythonScriptStep y agréguelo al gráfico especificado. Este método no está pensado para usarse directamente. Cuando se crea una instancia de una canalización con ParallelRunStep, Azure Machine Learning pasa automáticamente los parámetros necesarios a través de este método para que el paso se pueda agregar a un gráfico de canalización que represente el flujo de trabajo. |
create_module_def
Cree el objeto de definición de módulo que describe el paso.
Este método no está pensado para usarse 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
Nombre | Description |
---|---|
execution_type
Requerido
|
Tipo de ejecución del módulo. |
input_bindings
Requerido
|
Enlaces de entrada de paso. |
output_bindings
Requerido
|
Enlaces de salida de paso. |
param_defs
|
Definiciones de parámetros de paso. Valor predeterminado: None
|
create_sequencing_ports
|
Si es true, se crearán puertos de secuenciación para el módulo. Valor predeterminado: True
|
allow_reuse
|
Si es true, el módulo estará disponible para reutilizarse en futuras canalizaciones. Valor predeterminado: True
|
version
|
Versión del módulo. Valor predeterminado: None
|
arguments
|
Lista de argumentos anotados que se usará al llamar a este módulo. Valor predeterminado: None
|
Devoluciones
Tipo | Description |
---|---|
El objeto def del módulo. |
create_node
Cree un nodo para PythonScriptStep y agréguelo al gráfico especificado.
Este método no está pensado para usarse directamente. Cuando se crea una instancia de una canalización con ParallelRunStep, Azure Machine Learning pasa automáticamente los parámetros necesarios a través de este método para que el paso se pueda agregar a un gráfico de canalización que represente el flujo de trabajo.
create_node(graph, default_datastore, context)
Parámetros
Nombre | Description |
---|---|
graph
Requerido
|
Objeto Graph. |
default_datastore
Requerido
|
Almacén de datos predeterminado. |
context
Requerido
|
<xref:azureml.pipeline.core._GraphContext>
Contexto. |
Devoluciones
Tipo | Description |
---|---|
Nodo creado. |