Partilhar via


RunConfiguration Classe

Representa a configuração para execuções de experimento direcionadas a diferentes destinos de computação no Aprendizado de Máquina do Azure.

O objeto RunConfiguration encapsula as informações necessárias para enviar uma execução de treinamento em um experimento. Normalmente, você não criará um objeto RunConfiguration diretamente, mas obterá um de um método que o retorna, como o submit método da Experiment classe.

RunConfiguration é uma configuração de ambiente base que também é usada em outros tipos de etapas de configuração que dependem do tipo de execução que você está acionando. Por exemplo, ao configurar um PythonScriptStep, você pode acessar o objeto RunConfiguration da etapa e configurar dependências Conda ou acessar as propriedades do ambiente para a execução.

Para obter exemplos de configurações de execução, consulte Selecionar e usar um destino de computação para treinar seu modelo.

Inicialize um RunConfiguration com as configurações padrão.

Construtor

RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)

Parâmetros

Name Description
script
str

O caminho relativo para o arquivo de script Python. O caminho do arquivo é relativo ao diretório de origem passado para submit.

Default value: None
arguments

Argumentos de linha de comando para o arquivo de script Python.

Default value: None
framework
str

A estrutura de destino usada na execução. Os frameworks suportados são Python, PySpark, TensorFlow e PyTorch.

Default value: None
communicator
str

O comunicador usado na corrida. Os comunicadores suportados são None, ParameterServer, OpenMpi e IntelMpi. Tenha em mente que o OpenMpi requer uma imagem personalizada com o OpenMpi instalado. Use ParameterServer ou OpenMpi para clusters AmlCompute. Use o IntelMpi para trabalhos de treinamento distribuídos.

Default value: None
conda_dependencies

Quando deixado no valor padrão de False, o sistema cria um ambiente Python, que inclui os pacotes especificados em conda_dependencies. Quando definido true, um ambiente Python existente pode ser especificado com a configuração python_interpreter.

Default value: None
auto_prepare_environment
Necessário

PRETERIDO. Essa configuração não é mais usada.

command
list[str] ou str

O comando a ser enviado para a execução. A propriedade command também pode ser usada em vez de script/argumentos. As propriedades de comando e script/argumento não podem ser usadas juntas para enviar uma execução. Para enviar um arquivo de script usando a propriedade command - ['python', 'train.py', '–arg1', arg1_val] Para executar um comando real - ['ls']

Default value: None
_history_enabled
Default value: None
_path
Default value: None
_name
Default value: None

Observações

Construímos sistemas de aprendizagem automática tipicamente para resolver um problema específico. Por exemplo, podemos estar interessados em encontrar o melhor modelo que classifica páginas da Web que podem ser servidas como resultados de pesquisa correspondentes a uma consulta. Nossa busca pelo melhor modelo de aprendizado de máquina pode exigir que experimentemos diferentes algoritmos, ou consideremos diferentes configurações de parâmetros, etc.

No SDK do Azure Machine Learning, usamos o conceito de um experimento para capturar a noção de que diferentes execuções de treinamento estão relacionadas pelo problema que estão tentando resolver. Um Experiment então atua como um contêiner lógico para essas execuções de treinamento, tornando mais fácil acompanhar o progresso entre as corridas de treinamento, comparar duas corridas de treinamento diretamente, etc.

O RunConfiguration encapsula as configurações do ambiente de execução necessárias para enviar uma execução de treinamento em um experimento. Ele captura tanto a estrutura compartilhada de execuções de treinamento que são projetadas para resolver o mesmo problema de aprendizado de máquina, bem como as diferenças nos parâmetros de configuração (por exemplo, taxa de aprendizagem, função de perda, etc.) que distinguem execuções de treinamento distintas umas das outras.

Em cenários de treinamento típicos, RunConfiguration é usado criando um ScriptRunConfig objeto que empacota um objeto RunConfiguration e um script de execução para treinamento.

A configuração de RunConfiguration inclui:

  • Agregação do diretório de origem do experimento, incluindo o script enviado.

  • Definindo os argumentos da linha de comando para o script enviado.

  • Configurando o caminho para o interpretador Python.

  • Obtenha a configuração Conda para gerenciar as dependências do aplicativo. O processo de envio de trabalho pode usar a configuração para provisionar um ambiente temporário Conda e iniciar o aplicativo dentro. Os ambientes temporários são armazenados em cache e reutilizados em execuções subsequentes.

  • Uso opcional do Docker e imagens de base personalizadas.

  • Escolha opcional de enviar o experimento para vários tipos de computação do Azure.

  • Escolha opcional de configurar como materializar entradas e carregar saídas.

  • Configurações avançadas de tempo de execução para tempos de execução comuns, como spark e tensorflow.

O exemplo a seguir mostra como enviar um script de treinamento em sua máquina local.


   from azureml.core import ScriptRunConfig, RunConfiguration, Experiment

   # create or load an experiment
   experiment = Experiment(workspace, "MyExperiment")
   # run a trial from the train.py code in your current directory
   config = ScriptRunConfig(source_directory='.', script='train.py',
       run_config=RunConfiguration())
   run = experiment.submit(config)

O exemplo a seguir mostra como enviar um script de treinamento em seu cluster usando a propriedade command em vez de script e argumentos.


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['python', 'train.py', '--arg1', arg1_val],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

O exemplo a seguir mostra como executar um comando no cluster.


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['ls', '-l'],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

Variáveis

Name Description
environment

A definição de ambiente. Este campo configura o ambiente Python. Ele pode ser configurado para usar um ambiente Python existente ou configurado para configurar um ambiente temporário para o experimento. A definição também é responsável por definir as dependências de aplicativo necessárias.

max_run_duration_seconds
int

O tempo máximo permitido para a execução. O sistema tentará cancelar automaticamente a execução se ela demorar mais do que esse valor.

node_count
int

O número de nós a serem usados para o trabalho.

priority
int

A prioridade do trabalho para a política de agendamento.

history

A seção de configuração usada para desabilitar e habilitar os recursos de registro do histórico de experimentos.

spark

Quando a plataforma é definida como PySpark, a seção de configuração do Spark é usada para definir o SparkConf padrão para o trabalho enviado.

hdi

A seção de configuração do HDI entra em vigor somente quando o destino é definido como uma computação do Azure HDI. A Configuração do HDI é usada para definir o modo de implantação do YARN. O modo de implantação padrão é cluster.

docker

A seção de configuração do Docker é usada para definir variáveis para o ambiente do Docker.

tensorflow

A seção de configuração usada para configurar parâmetros distribuídos do TensorFlow. Esse parâmetro entra em vigor somente quando o framework é definido como TensorFlow e o communicator para ParameterServer. AmlCompute é a única computação suportada para esta configuração.

mpi

A seção de configuração usada para configurar parâmetros de trabalho MPI distribuídos. Este parâmetro entra em vigor somente quando o framework é definido como Python e o communicator para OpenMpi ou IntelMpi. AmlCompute é o único tipo de computação suportado para esta configuração.

pytorch

A seção de configuração usada para configurar parâmetros de trabalho distribuídos do PyTorch. Este parâmetro entra em vigor somente quando o framework é definido como PyTorch e o communicator para Nccl ou Gloo. AmlCompute é o único tipo de computação suportado para esta configuração.

paralleltask

A seção de configuração usada para configurar parâmetros de trabalho paralleltask distribuídos. Este parâmetro entra em vigor somente quando o framework é definido como Python e o communicator para ParallelTask. AmlCompute é o único tipo de computação suportado para esta configuração.

data_references

Todas as fontes de dados estão disponíveis para a execução durante a execução com base em cada configuração. Para cada item do dicionário, a chave é um nome dado à fonte de dados e o valor é um DataReferenceConfiguration.

data

Todos os dados a disponibilizar para a execução durante a execução.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Todos os dados para tornar datacache disponível para a execução durante a execução.

output_data

Todas as saídas que devem ser carregadas e rastreadas para esta execução.

source_directory_data_store
str

O armazenamento de dados de suporte para o compartilhamento de projeto.

amlcompute

Os detalhes do destino de computação a ser criado durante o experimento. A configuração só entra em vigor quando o destino de computação é AmlCompute.

kubernetescompute

Os detalhes do alvo de computação a ser usado durante o experimento. A configuração só entra em vigor quando o destino de computação é KubernetesCompute.

services

Pontos de extremidade interativos com o recurso de computação. Os pontos de extremidade permitidos são Jupyter, JupyterLab, VS Code, Tensorboard, SSH e portas personalizadas.

Métodos

delete

Exclua um arquivo de configuração de execução.

Gera um UserErrorException se o arquivo de configuração não for encontrado.

load

Carregue um arquivo de configuração de execução salvo anteriormente a partir de um arquivo no disco.

Se path apontar para um arquivo, o RunConfiguration será carregado a partir desse arquivo.

Se path apontar para um diretório, que deve ser um diretório de projeto, o RunConfiguration será carregado de <path>/.azureml/<name> ou <path>/aml_config/<name>.

save

Salve o RunConfiguration em um arquivo no disco.

A UserErrorException é levantado quando:

  • O RunConfiguration não pode ser salvo com o nome especificado.

  • Nenhum name parâmetro foi especificado.

  • O path parâmetro é inválido.

Se path for do formato <dir_path>/<file_name>, onde <dir_path> é um diretório válido, então o RunConfiguration é salvo em <dir_path>/<file_name>.

Se path apontar para um diretório, que deve ser um diretório de projeto, o RunConfiguration será salvo em <path>/.azureml/<name> ou <path>/aml_config/<name>.

Esse método é útil ao editar a configuração manualmente ou ao compartilhar a configuração com a CLI.

delete

Exclua um arquivo de configuração de execução.

Gera um UserErrorException se o arquivo de configuração não for encontrado.

static delete(path, name)

Parâmetros

Name Description
path
Necessário
str

Um usuário selecionou o diretório raiz para executar configurações. Normalmente, este é o repositório Git ou o diretório raiz do projeto Python. A configuração é excluída de um subdiretório chamado .azureml.

name
Necessário
str

O nome do arquivo de configuração.

Exceções

Tipo Description
UserErrorException

load

Carregue um arquivo de configuração de execução salvo anteriormente a partir de um arquivo no disco.

Se path apontar para um arquivo, o RunConfiguration será carregado a partir desse arquivo.

Se path apontar para um diretório, que deve ser um diretório de projeto, o RunConfiguration será carregado de <path>/.azureml/<name> ou <path>/aml_config/<name>.

static load(path, name=None)

Parâmetros

Name Description
path
Necessário
str

Um usuário selecionou o diretório raiz para executar configurações. Normalmente, este é o repositório Git ou o diretório raiz do projeto Python. Para compatibilidade com versões anteriores, a configuração também será carregada do subdiretório .azureml ou aml_config. Se o arquivo não estiver nesses diretórios, o arquivo será carregado a partir do caminho especificado.

name
str

O nome do arquivo de configuração.

Default value: None

Devoluções

Tipo Description

O objeto de configuração de execução.

save

Salve o RunConfiguration em um arquivo no disco.

A UserErrorException é levantado quando:

  • O RunConfiguration não pode ser salvo com o nome especificado.

  • Nenhum name parâmetro foi especificado.

  • O path parâmetro é inválido.

Se path for do formato <dir_path>/<file_name>, onde <dir_path> é um diretório válido, então o RunConfiguration é salvo em <dir_path>/<file_name>.

Se path apontar para um diretório, que deve ser um diretório de projeto, o RunConfiguration será salvo em <path>/.azureml/<name> ou <path>/aml_config/<name>.

Esse método é útil ao editar a configuração manualmente ou ao compartilhar a configuração com a CLI.

save(path=None, name=None, separate_environment_yaml=False)

Parâmetros

Name Description
separate_environment_yaml

Indica se a configuração do ambiente Conda deve ser salva. Se True, a configuração do ambiente Conda é salva em um arquivo YAML chamado 'environment.yml'.

Default value: False
path
str

Um usuário selecionou o diretório raiz para executar configurações. Normalmente, este é o repositório Git ou o diretório raiz do projeto Python. A configuração é salva em um subdiretório chamado .azureml.

Default value: None
name
str

[Obrigatório] O nome do arquivo de configuração.

Default value: None

Devoluções

Tipo Description

Atributos

auto_prepare_environment

Obtenha o auto_prepare_environment parâmetro. Esta é uma configuração preterida e não utilizada.

environment_variables

Variáveis de ambiente de tempo de execução.

Devoluções

Tipo Description

Variáveis de tempo de execução

target

Obtenha o destino de computação onde o trabalho está agendado para execução.

O destino padrão é "local" referindo-se à máquina local. Os destinos de computação em nuvem disponíveis podem ser encontrados usando a função compute_targets.

Devoluções

Tipo Description
str

O nome do destino