ParallelRunConfig Classe
Define a configuração para um objeto ParallelRunStep.
Para obter um exemplo de uso do ParallelRunStep, confira o https://aka.ms/batch-inference-notebooks do notebook.
Para obter o guia de solução de problemas, confira https://aka.ms/prstsg. Você pode encontrar mais referências nesse guia.
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
Nome | Description |
---|---|
environment
Obrigatório
|
A definição de ambiente que configura o ambiente do Python. Ele pode ser configurado para usar um ambiente do Python existente ou para configurar um ambiente temporário para o experimento. A definição de ambiente é responsável por estabelecer as dependências de aplicativo necessárias, como pacotes do Conda ou pip. |
entry_script
Obrigatório
|
Script do usuário que será executado em paralelo em vários nós. Isso é especificado como caminho de arquivo local. Se |
error_threshold
Obrigatório
|
O número de falhas de registro para TabularDataset e falhas de arquivo para FileDataset que devem ser ignorados durante o processamento. Se a contagem de erros ultrapassar esse valor, o trabalho será anulado. O limite de erro é para toda a entrada e não para minilotes individuais enviados para o método run(). O intervalo é [-1, int.max]. -1 indica ignorar todas as falhas durante o processamento. |
output_action
Obrigatório
|
Como a saída deve ser organizada. Os valores atuais com suporte são 'append_row' e 'summary_only'.
|
compute_target
Obrigatório
|
AmlCompute ou
str
Destino de computação a ser usado para execução do ParallelRunStep. Esse parâmetro pode ser especificado como um objeto de destino de computação ou o nome de um destino de computação no workspace. |
node_count
Obrigatório
|
Número de nós no destino de computação usado 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.
Para o computador de GPU, o valor padrão é 1.
Para o computador de CPU, o valor padrão é o número de núcleos.
Um processo de trabalho chamará Valor padrão: None
|
mini_batch_size
|
Para entrada FileDataset, esse campo é o número de arquivos que um script do usuário pode processar em uma chamada run(). Para entrada TabularDataset, esse campo é o tamanho aproximado dos dados que o script do usuário pode processar em uma chamada run(). Os valores de exemplo são 1024, 1024 KB, 10 MB e 1 GB. (opcional, o valor padrão é 10 arquivos para FileDataset e 1 MB para TabularDataset.) Valor padrão: None
|
source_directory
|
Caminho para a pasta que contém os arquivos Valor padrão: None
|
description
|
Uma descrição para fornecer o serviço em lote usado para fins de exibição. Valor padrão: None
|
logging_level
|
Uma cadeia de caracteres do nome do nível de registros em log, que é definido em 'logging'. Os valores possíveis são 'WARNING', 'INFO' e 'DEBUG'. (opcional, o valor padrão é 'INFO'.) Valor padrão: INFO
|
run_invocation_timeout
|
Tempo limite em segundos para cada invocação do método run(). (opcional; o valor padrão é 60.) Valor padrão: 60
|
run_max_try
|
O número máximo de tentativas para um minilote com falha ou tempo limite. O intervalo é [1, int.max]. O valor padrão é 3. Um minilote com a contagem removida da fila maior que esse valor não será processado novamente e será excluído diretamente. Valor padrão: 3
|
append_row_file_name
|
O nome do arquivo de saída, se o Valor padrão: None
|
allowed_failed_count
|
O número de minilotes com falha que devem ser ignorados durante o processamento. Se a contagem com falha ultrapassar esse valor, o trabalho será anulado. Esse limite é para a entrada inteira, e não para o minilote individual enviado para o método run(). O intervalo é [-1, int.max]. -1 indica ignorar todas as falhas durante o processamento. Um minilote pode falhar na primeira vez que for processado e ter êxito na segunda tentativa. A verificação entre a primeira e a segunda vez o contará como falha. A verificação após a segunda vez não o contará como falha. Os argumentos –error_threshold, –allowed_failed_count e –allowed_failed_percent podem trabalhar em conjunto. Se mais de um for especificado, o trabalho será anulado caso exceda qualquer um deles. Valor padrão: None
|
allowed_failed_percent
|
A porcentagem de minilotes com falha que devem ser ignorados durante o processamento. Se a porcentagem com falha ultrapassar esse valor, o trabalho será anulado. Esse limite é para a entrada inteira, e não para o minilote individual enviado para o método run(). O intervalo é [0, 100]. 100 ou 100,0 indica ignorar todas as falhas durante o processamento. A verificação é iniciada depois que todos os minilotes foram agendados. Os argumentos –error_threshold, –allowed_failed_count e –allowed_failed_percent podem trabalhar em conjunto. Se mais de um for especificado, o trabalho será anulado caso exceda qualquer um deles. Valor padrão: None
|
partition_keys
|
As chaves usadas para particionar o conjuntos de dados em minilotes. Se especificado, os dados com a mesma chave serão particionados no mesmo minilote. Se partition_keys e mini_batch_size forem especificados, o erro será gerado. Deve ser uma lista de elementos StR, em que cada um é uma chave usada para particionar o conjuntos de dados de entrada. No entanto, se promovido para PipelineParameter, os valores padrão devem ser o StR de despejo do JSON da lista, pois o tipo de lista não é compatível com PipelineParameter por enquanto. As entradas devem ser conjuntos de dados particionados e o partition_keys deve ser um subconjunto das chaves de cada conjunto de dados de entrada para que isso funcione. Valor padrão: None
|
environment_variables
|
Um dicionário de valores e nomes de variáveis de ambiente. Essas variáveis de ambiente são definidas no processo em que o script do usuário está sendo executado. Valor padrão: None
|
environment
Obrigatório
|
A definição de ambiente que configura o ambiente do Python. Ele pode ser configurado para usar um ambiente do Python existente ou para configurar um ambiente temporário para o experimento. A definição de ambiente é responsável por estabelecer as dependências de aplicativo necessárias, como pacotes do Conda ou pip. |
entry_script
Obrigatório
|
Script do usuário que será executado em paralelo em vários nós. Isso é especificado como caminho de arquivo local. Se |
error_threshold
Obrigatório
|
O número de falhas de registro para TabularDataset e falhas de arquivo para FileDataset que devem ser ignorados durante o processamento. Se a contagem de erros ultrapassar esse valor, o trabalho será anulado. O limite de erro é para toda a entrada e não para minilotes individuais enviados para o método run(). O intervalo é [-1, int.max]. -1 indica ignorar todas as falhas durante o processamento. |
output_action
Obrigatório
|
Como a saída deve ser organizada. Os valores atuais com suporte são 'append_row' e 'summary_only'.
|
compute_target
Obrigatório
|
AmlCompute ou
str
Destino de computação a ser usado para execução do ParallelRunStep. Esse parâmetro pode ser especificado como um objeto de destino de computação ou o nome de um destino de computação no workspace. |
node_count
Obrigatório
|
Número de nós no destino de computação usado para executar o ParallelRunStep. |
process_count_per_node
Obrigatório
|
O número de processos de trabalho por nó para executar o script de entrada em paralelo.
Para um computador de GPU, o valor padrão é 1.
Para um computador de CPU, o valor padrão é o número de núcleos.
Um processo de trabalho chamará |
mini_batch_size
Obrigatório
|
Para entrada FileDataset, esse campo é o número de arquivos que um script do usuário pode processar em uma chamada run(). Para entrada TabularDataset, esse campo é o tamanho aproximado dos dados que o script do usuário pode processar em uma chamada run(). Os valores de exemplo são 1024, 1024 KB, 10 MB e 1 GB. (opcional, o valor padrão é 10 arquivos para FileDataset e 1 MB para TabularDataset.) |
source_directory
Obrigatório
|
Caminho para a pasta que contém os arquivos |
description
Obrigatório
|
Uma descrição para fornecer o serviço em lote usado para fins de exibição. |
logging_level
Obrigatório
|
Uma cadeia de caracteres do nome do nível de registros em log, que é definido em 'logging'. Os valores possíveis são 'WARNING', 'INFO' e 'DEBUG'. (opcional, o valor padrão é 'INFO'.) |
run_invocation_timeout
Obrigatório
|
Tempo limite em segundos para cada invocação do método run(). (opcional; o valor padrão é 60.) |
run_max_try
Obrigatório
|
O número máximo de tentativas para um minilote com falha ou tempo limite. O intervalo é [1, int.max]. O valor padrão é 3. Um minilote com a contagem removida da fila maior que esse valor não será processado novamente e será excluído diretamente. |
append_row_file_name
Obrigatório
|
O nome do arquivo de saída, se o |
allowed_failed_count
Obrigatório
|
O número de minilotes com falha que devem ser ignorados durante o processamento. Se a contagem com falha ultrapassar esse valor, o trabalho será anulado. Esse limite é para a entrada inteira, e não para o minilote individual enviado para o método run(). O intervalo é [-1, int.max]. -1 indica ignorar todas as falhas durante o processamento. Um minilote pode falhar na primeira vez que for processado e ter êxito na segunda tentativa. A verificação entre a primeira e a segunda vez o contará como falha. A verificação após a segunda vez não o contará como falha. Os argumentos –error_threshold, –allowed_failed_count e –allowed_failed_percent podem trabalhar em conjunto. Se mais de um for especificado, o trabalho será anulado caso exceda qualquer um deles. |
allowed_failed_percent
Obrigatório
|
A porcentagem de minilotes com falha que devem ser ignorados durante o processamento. Se a porcentagem com falha ultrapassar esse valor, o trabalho será anulado. Esse limite é para a entrada inteira, e não para o minilote individual enviado para o método run(). O intervalo é [0, 100]. 100 ou 100,0 indica ignorar todas as falhas durante o processamento. A verificação é iniciada depois que todos os minilotes foram agendados. Os argumentos –error_threshold, –allowed_failed_count e –allowed_failed_percent podem trabalhar em conjunto. Se mais de um for especificado, o trabalho será anulado caso exceda qualquer um deles. |
partition_keys
Obrigatório
|
As chaves usadas para particionar o conjuntos de dados em minilotes. Se especificado, os dados com a mesma chave serão particionados no mesmo minilote. Se partition_keys e mini_batch_size forem especificados, o erro será gerado. Deve ser uma lista de elementos StR, em que cada um é uma chave usada para particionar o conjuntos de dados de entrada. No entanto, se promovido para PipelineParameter, os valores padrão devem ser o StR de despejo do JSON da lista, pois o tipo de lista não é compatível com PipelineParameter por enquanto. As entradas devem ser conjuntos de dados particionados e o partition_keys deve ser um subconjunto das chaves de cada conjunto de dados de entrada para que isso funcione. |
environment_variables
Obrigatório
|
Um dicionário de valores e nomes de variáveis de ambiente. Essas variáveis de ambiente são definidas no processo em que o script do usuário está sendo executado. |
Comentários
A classe ParallelRunConfig é usada para fornecer a configuração da classe ParallelRunStep. ParallelRunConfig e ParallelRunStep podem ser usados para processar grandes volumes de dados em paralelo. Casos de uso comuns são treinar um modelo de ML ou executar inferência offline para gerar previsões em um lote de observações. O ParallelRunStep funciona separando seus dados em lotes que são processados em paralelo. A contagem de nós de tamanho do lote e outros parâmetros que podem ser reduzidos para acelerar o processamento paralelo podem ser controlados com a classe ParallelRunConfig. O ParallelRunStep pode funcionar com TabularDataset ou FileDataset como entrada.
Para usar ParallelRunStep e ParallelRunConfig:
Crie um objeto ParallelRunConfig para especificar 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 usa o objeto ParallelRunConfig e defina entradas e saídas para a etapa.
Use o objeto ParallelRunStep configurado em um Pipeline da mesma forma que faria com outros tipos de etapa de pipeline.
Exemplos de trabalho com classes ParallelRunStep e ParallelRunConfig para inferência em lote são discutidos nos seguintes artigos:
Tutorial: criar um pipeline do Azure Machine Learning para pontuação de lote. Este artigo mostra como usar essas duas classes para pontuação em lote assíncrona em um pipeline e habilitar um ponto de extremidade REST para executar o pipeline.
Execute a inferência de lote em grandes quantidades de dados usando 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 imagem pré-treinado baseia-se no conjunto de dados do 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 esse exemplo, confira o https://aka.ms/batch-inference-notebooks do notebook.
Métodos
load_yaml |
Carregue os dados de configuração de execução paralela em um arquivo YAML. |
save_to_yaml |
Exporte os dados de configuração de execução paralela para um arquivo YAML. |
load_yaml
Carregue os dados de configuração de execução paralela em um arquivo YAML.
static load_yaml(workspace, path)
Parâmetros
Nome | Description |
---|---|
workspace
Obrigatório
|
O workspace para ler os dados de configuração. |
path
Obrigatório
|
O caminho para carregar a configuração. |
save_to_yaml
Exporte os dados de configuração de execução paralela para um arquivo YAML.
save_to_yaml(path)
Parâmetros
Nome | Description |
---|---|
path
Obrigatório
|
O caminho para salvar o arquivo. |