ParallelRunConfig Classe
Define a configuração de um ParallelRunStep objeto.
Para obter um exemplo de utilização de ParallelRunStep, consulte o bloco de notas https://aka.ms/batch-inference-notebooks.
Para obter o guia de resolução de problemas, consulte https://aka.ms/prstsg. Pode encontrar mais referências.
Inicialize o objeto de configuração.
- Herança
-
azureml.pipeline.core._parallel_run_config_base._ParallelRunConfigBaseParallelRunConfig
Construtor
ParallelRunConfig(environment, entry_script, error_threshold, output_action, compute_target, node_count, process_count_per_node=None, mini_batch_size=None, source_directory=None, description=None, logging_level='INFO', run_invocation_timeout=60, run_max_try=3, append_row_file_name=None, allowed_failed_count=None, allowed_failed_percent=None, partition_keys=None, environment_variables=None)
Parâmetros
Name | Description |
---|---|
environment
Necessário
|
A definição de ambiente que configura o ambiente python. Pode ser configurado para utilizar um ambiente Python existente ou para configurar um ambiente temporário para a experimentação. A definição de ambiente é responsável por definir as dependências de aplicação necessárias, como pacotes conda ou pip. |
entry_script
Necessário
|
Script de utilizador que será executado em paralelo em vários nós. Isto é especificado como um caminho de ficheiro local. Se |
error_threshold
Necessário
|
O número de falhas TabularDataset de registo para e falhas de ficheiros para FileDataset isso deve ser ignorado durante o processamento. Se a contagem de erros for superior a este valor, a tarefa será abortada. O limiar de erro destina-se a toda a entrada e não ao método de mini-lotes individuais enviados para executar(). O intervalo é [-1, int.max]. -1 indica ignorar todas as falhas durante o processamento. |
output_action
Necessário
|
Como a saída deve ser organizada. Os valores suportados atuais são "append_row" e "summary_only".
|
compute_target
Necessário
|
AmlCompute ou
str
Destino de computação a utilizar para a execução parallelRunStep. Este parâmetro pode ser especificado como um objeto de destino de computação ou o nome de um destino de computação na área de trabalho. |
node_count
Necessário
|
Número de nós no destino de computação utilizado para executar o ParallelRunStep. |
process_count_per_node
|
O número de processos de trabalho por nó para executar o script de entrada em paralelo.
No computador GPU, o valor predefinido é 1.
Para o computador CPU, o valor predefinido é o número de núcleos.
Um processo de trabalho irá chamar Default value: None
|
mini_batch_size
|
Para entrada FileDataset, este campo é o número de ficheiros que um script de utilizador pode processar numa chamada run(). Para a entrada TabularDataset, este campo é o tamanho aproximado dos dados que o script de utilizador pode processar numa chamada run(). Os valores de exemplo são 1024, 1024 KB, 10 MB e 1GB. (opcional, o valor predefinido é 10 ficheiros para FileDataset e 1MB para TabularDataset.) Default value: None
|
source_directory
|
Caminho para a pasta que contém os Default value: None
|
description
|
Uma descrição para fornecer o serviço batch utilizado para fins de apresentação. Default value: None
|
logging_level
|
Uma cadeia do nome do nível de registo, que é definida em "registo". Os valores possíveis são "AVISO", "INFORMAÇÕES" e "DEPURAÇÃO". (opcional, o valor predefinido é "INFO".) Default value: INFO
|
run_invocation_timeout
|
Tempo limite em segundos para cada invocação do método run(). (opcional, o valor predefinido é 60.) Default value: 60
|
run_max_try
|
O número máximo de tentativas para um mini lote com falhas ou tempo limite. O intervalo é [1, int.max]. O valor predefinido é 3. Um mini lote com contagem de deques maior do que este não será processado novamente e será eliminado diretamente. Default value: 3
|
append_row_file_name
|
O nome do ficheiro de saída se for Default value: None
|
allowed_failed_count
|
O número de mini-lotes com falhas que devem ser ignorados durante o processamento. Se a contagem de falhas for superior a este valor, a tarefa será abortada. Este limiar destina-se a toda a entrada em vez do método de mini-lote individual enviado para executar(). O intervalo é [-1, int.max]. -1 indica ignorar todas as falhas durante o processamento. Um mini lote pode falhar na primeira vez que for processado e, em seguida, ter êxito na segunda tentativa. A verificação entre a primeira e a segunda vez irá contabilizá-la como falhada. A verificação após a segunda vez não irá contabilizá-la como falhada. O argumento –error_threshold, – allowed_failed_count e – allowed_failed_percent pode funcionar em conjunto. Se mais do que um especificado, a tarefa será abortada se exceder qualquer uma delas. Default value: None
|
allowed_failed_percent
|
A percentagem de mini-lotes falhados que devem ser ignorados durante o processamento. Se a percentagem falhada for superior a este valor, a tarefa será abortada. Este limiar destina-se a toda a entrada em vez do método de mini-lote individual enviado para executar(). O intervalo é [0, 100]. 100 ou 100.0 indica ignorar todas as falhas durante o processamento. A verificação é iniciada depois de todos os mini-lotes terem sido agendados. O argumento –error_threshold, – allowed_failed_count e – allowed_failed_percent pode funcionar em conjunto. Se mais do que um especificado, a tarefa será abortada se exceder qualquer uma delas. Default value: None
|
partition_keys
|
As chaves utilizadas para particionar o conjunto de dados em mini-lotes. Se especificado, os dados com a mesma chave serão particionados no mesmo mini-lote. Se forem especificados partition_keys e mini_batch_size, será gerado um erro. Deve ser uma lista de elementos str cada um sendo uma chave utilizada para particionar o conjunto de dados de entrada. No entanto, se for promovido a PipelineParameter, os valores predefinidos deverão ser o limite de captura json da lista, porque o tipo de lista não é suportado no PipelineParameter por enquanto. As entradas têm de ser conjuntos de dados particionados e o partition_keys tem de ser um subconjunto das chaves de cada conjunto de dados de entrada para que isto funcione. Default value: None
|
environment_variables
|
Um dicionário de nomes e valores de variáveis de ambiente. Estas variáveis de ambiente são definidas no processo em que o script de utilizador está a ser executado. Default value: None
|
environment
Necessário
|
A definição de ambiente que configura o ambiente python. Pode ser configurado para utilizar um ambiente Python existente ou para configurar um ambiente temporário para a experimentação. A definição de ambiente é responsável por definir as dependências de aplicação necessárias, como pacotes conda ou pip. |
entry_script
Necessário
|
Script de utilizador que será executado em paralelo em vários nós. É especificado como um caminho de ficheiro local. Se |
error_threshold
Necessário
|
O número de falhas de registo para TabularDataset e falhas de ficheiros para FileDataset o mesmo deve ser ignorado durante o processamento. Se a contagem de erros ultrapassar este valor, a tarefa será abortada. O limiar de erro destina-se a toda a entrada e não a mini-lotes individuais enviados para o método run(). O intervalo é [-1, int.max]. -1 indica ignorar todas as falhas durante o processamento. |
output_action
Necessário
|
Como a saída deve ser organizada. Os valores atuais suportados são "append_row" e "summary_only".
|
compute_target
Necessário
|
AmlCompute ou
str
Destino de computação a utilizar para a execução parallelRunStep. Este parâmetro pode ser especificado como um objeto de destino de computação ou o nome de um destino de computação na área de trabalho. |
node_count
Necessário
|
Número de nós no destino de computação utilizado para executar o ParallelRunStep. |
process_count_per_node
Necessário
|
O número de processos de trabalho por nó para executar o script de entrada em paralelo.
Para um computador GPU, o valor predefinido é 1.
Para um computador com CPU, o valor predefinido é o número de núcleos.
Um processo de trabalho irá chamar |
mini_batch_size
Necessário
|
Para entrada FileDataset, este campo é o número de ficheiros que um script de utilizador pode processar numa chamada run(). Para a entrada TabularDataset, este campo é o tamanho aproximado dos dados que o script de utilizador pode processar numa chamada run(). Os valores de exemplo são 1024, 1024 KB, 10 MB e 1 GB. (opcional, o valor predefinido é 10 ficheiros para FileDataset e 1MB para TabularDataset.) |
source_directory
Necessário
|
Caminho para a pasta que contém os |
description
Necessário
|
Uma descrição para fornecer o serviço batch utilizado para fins de apresentação. |
logging_level
Necessário
|
Uma cadeia do nome do nível de registo, que é definida em "registo". Os valores possíveis são "AVISO", "INFORMAÇÕES" e "DEPURAR". (opcional, o valor predefinido é "INFO".) |
run_invocation_timeout
Necessário
|
Tempo limite em segundos para cada invocação do método run(). (opcional, o valor predefinido é 60.) |
run_max_try
Necessário
|
O número máximo de tentativas para um mini lote com falhas ou tempo limite. O intervalo é [1, int.max]. O valor predefinido é 3. Um mini lote com contagem de pedidos maior do que este não será processado novamente e será eliminado diretamente. |
append_row_file_name
Necessário
|
O nome do ficheiro de saída se for |
allowed_failed_count
Necessário
|
O número de mini lotes com falhas que devem ser ignorados durante o processamento. Se a contagem de falhas ultrapassar este valor, a tarefa será abortada. Este limiar destina-se a toda a entrada em vez do mini-lote individual enviado para executar(). O intervalo é [-1, int.max]. -1 indica ignorar todas as falhas durante o processamento. Um mini lote pode falhar na primeira vez que for processado e, em seguida, ser bem-sucedido na segunda tentativa. A verificação entre a primeira e a segunda vez irá contabilizá-la como falhada. A verificação após a segunda vez não irá contar como falhada. O argumento –error_threshold, –allowed_failed_count e –allowed_failed_percent pode funcionar em conjunto. Se for mais do que uma especificada, a tarefa será abortada se exceder qualquer uma delas. |
allowed_failed_percent
Necessário
|
A percentagem de mini lotes com falhas que devem ser ignorados durante o processamento. Se a percentagem falhada ultrapassar este valor, a tarefa será abortada. Este limiar destina-se a toda a entrada em vez do mini-lote individual enviado para executar(). O intervalo é [0, 100]. 100 ou 100,0 indica ignorar todas as falhas durante o processamento. A verificação é iniciada depois de todos os mini lotes terem sido agendados. O argumento –error_threshold, –allowed_failed_count e –allowed_failed_percent pode funcionar em conjunto. Se for mais do que uma especificada, a tarefa será abortada se exceder qualquer uma delas. |
partition_keys
Necessário
|
As chaves utilizadas para particionar o conjunto de dados em mini-lotes. Se for especificado, os dados com a mesma chave serão particionados no mesmo mini-lote. Se forem especificados partition_keys e mini_batch_size, será gerado um erro. Deve ser uma lista de elementos str cada um sendo uma chave utilizada para particionar o conjunto de dados de entrada. No entanto, se for promovido para PipelineParameter, os valores predefinidos devem ser o limite de captura de json da lista, uma vez que o tipo de lista não é suportado no PipelineParameter por enquanto. As entradas têm de ser conjuntos de dados particionados e o partition_keys tem de ser um subconjunto das chaves de cada conjunto de dados de entrada para que isto funcione. |
environment_variables
Necessário
|
Um dicionário de nomes e valores de variáveis de ambiente. Estas variáveis de ambiente são definidas no processo em que o script de utilizador está a ser executado. |
Observações
A classe ParallelRunConfig é utilizada para fornecer configuração para a ParallelRunStep classe . ParallelRunConfig e ParallelRunStep podem ser utilizados em conjunto para processar grandes quantidades de dados em paralelo. Alguns casos de utilização comuns incluem a preparação de modelos de ML ou a execução de inferências offline para gerar predições num lote de observações. ParallelRunStep funciona ao dividir os seus dados em lotes que são processados em paralelo. O tamanho do lote, a contagem de nós e outros parâmetros atumes para acelerar o processamento paralelo podem ser controlados com a ParallelRunConfig classe . ParallelRunStep pode funcionar com ou TabularDatasetFileDataset como entrada.
Para utilizar ParallelRunStep e ParallelRunConfig:
Crie um ParallelRunConfig objeto para especificar a forma como o processamento em lotes é executado, com parâmetros para controlar o tamanho do lote, o número de nós por destino de computação e uma referência ao script Python personalizado.
Crie um objeto ParallelRunStep que utilize o objeto ParallelRunConfig, defina entradas e saídas para o passo.
Utilize o objeto ParallelRunStep configurado tal Pipeline como faria com outros tipos de passos de pipeline.
Os exemplos de trabalho com classes ParallelRunStep e ParallelRunConfig para inferência de lotes são abordados nos seguintes artigos:
Tutorial: Criar um pipeline do Azure Machine Learning para classificação em lote. Este artigo mostra como utilizar estas duas classes para a classificação em lotes assíncrona num pipeline e permitir que um ponto final REST possa executar o pipeline.
Executar a inferência de lote em grandes quantidades de dados com o Azure Machine Learning. Este artigo mostra como processar grandes quantidades de dados de forma assíncrona e em paralelo com um script de inferência personalizado e um modelo de classificação de imagens pré-preparado baseado no conjunto de dados MNIST.
from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig
parallel_run_config = ParallelRunConfig(
source_directory=scripts_folder,
entry_script=script_file,
mini_batch_size="5", # or partition_keys=["key1", "key2"], which is another way to partition the
# input to mini-batches, refer to the parameter description for details
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
run_max_try=3,
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 obter mais informações sobre este exemplo, consulte o bloco de notas https://aka.ms/batch-inference-notebooks.
Métodos
load_yaml |
Carregar dados de configuração de execução paralela a partir de um ficheiro YAML. |
save_to_yaml |
Exportar dados de configuração de execução paralela para um ficheiro YAML. |
load_yaml
Carregar dados de configuração de execução paralela a partir de um ficheiro YAML.
static load_yaml(workspace, path)
Parâmetros
Name | Description |
---|---|
workspace
Necessário
|
A área de trabalho a partir da onde ler os dados de configuração. |
path
Necessário
|
O caminho a partir do qual carregar a configuração. |
save_to_yaml
Exportar dados de configuração de execução paralela para um ficheiro YAML.
save_to_yaml(path)
Parâmetros
Name | Description |
---|---|
path
Necessário
|
O caminho para o qual guardar o ficheiro. |