RunConfiguration Classe

Representa a configuração para execuções de experimentos visando diferentes destinos de computação no Azure Machine Learning.

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 retorne, como o método submit da classe Experiment.

O 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á disparando. Por exemplo, ao configurar um PythonScriptStep, você pode acessar o objeto RunConfiguration da etapa e configurar as dependências do 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.

Herança
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration

Construtor

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

Parâmetros

script
str
valor padrão: None

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

arguments
list[str]
valor padrão: None

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

framework
str
valor padrão: None

A estrutura de destino usada na execução. As estruturas com suporte são Python, PySpark, TensorFlow e PyTorch.

communicator
str
valor padrão: None

O comunicador usado na execução. Os comunicadores com suporte 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 IntelMpi para trabalhos de treinamento distribuídos.

conda_dependencies
CondaDependencies
valor padrão: None

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

auto_prepare_environment
bool
Obrigatório

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

command
list[str] ou str
valor padrão: None

O comando a ser enviado à execução. A propriedade command também pode ser usada em vez de script/arguments. As propriedades command e script/arguments 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 propriamente dito – ['ls']

_history_enabled
valor padrão: None
_path
valor padrão: None
_name
valor padrão: None

Comentários

Normalmente, criamos sistemas de aprendizado de máquina para resolver um problema específico. Por exemplo, podemos estar interessados em encontrar o melhor modelo que classifica páginas da Web que podem atuar como resultados da pesquisa correspondentes a uma consulta. Nossa pesquisa pelo melhor modelo de aprendizado de máquina pode exigir que experimentemos algoritmos diferentes 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 ao problema que estão tentando resolver. Então, um Experiment atua como contêiner lógico para essas execuções de treinamento, facilitando o controle de andamento entre as execuções de treinamento, a comparação direta de duas sequências de treinamento etc.

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

Nos cenários normais de treinamento, RunConfiguration é usado criando um objeto ScriptRunConfig que reúne um objeto RunConfiguration e um script de execução para treinamento.

A configuração de RunConfiguration inclui:

  • Agrupamento do diretório de origem do experimento, incluindo o script enviado.

  • Configuração dos argumentos de linha de comando para o script enviado.

  • Configuração do caminho para o interpretador Python.

  • Obtenha a configuração do 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 do Conda e iniciar o aplicativo. Os ambientes temporários são armazenados em cache e reutilizados nas execuções subsequentes.

  • Uso opcional de Docker e imagens base personalizadas.

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

  • Opção de configurar como materializar entradas e carregar saídas.

  • Configurações avançadas de runtime para runtimes comuns, como Spark e TensorFlow.

O exemplo a seguir mostra como enviar um script de treinamento no computador 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 no cluster usando a propriedade de comando em vez do 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

environment
Environment

A definição de ambiente. Esse campo 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 também é responsável por definir as dependências do 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 demorar mais do que esse valor.

node_count
int

O número de nós que serão usados para o trabalho.

priority
int

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

history
HistoryConfiguration

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

spark
SparkConfiguration

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
HdiConfiguration

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

docker
DockerConfiguration

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

tensorflow
TensorflowConfiguration

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

mpi
MpiConfiguration

A seção de configuração usada para configurar os parâmetros distribuídos de trabalho do MPI. Esse parâmetro entra em vigor somente quando o framework é definido como Python e o communicator como OpenMPI ou IntelMpi. AmlCompute é o único tipo de computação com suporte para essa configuração.

pytorch
PyTorchConfiguration

A seção de configuração usada para configurar os parâmetros distribuídos de trabalho da PyTorch. Esse parâmetro entra em vigor somente quando framework é definido como PyTorche communicator como Nccl ou Gloo. AmlCompute é o único tipo de computação com suporte para essa configuração.

paralleltask
ParallelTaskConfiguration

A seção de configuração usada para configurar os parâmetros distribuídos de trabalho do ParallelTask. Esse parâmetro entra em vigor somente quando o framework é definido como Python e o communicator como ParallelTask. AmlCompute é o único tipo de computação com suporte para essa configuração.

data_references
dict[str, DataReferenceConfiguration]

Todas as fontes de dados estão disponíveis para 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
dict[str, Data]

Todos os dados a serem disponibilizados para a execução durante a execução.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

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

output_data
OutputData

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
AmlComputeConfiguration

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
KubernetesComputeConfiguration

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

services
dict[str, ApplicationEndpointConfiguration]

Pontos de extremidade para interagir 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 em um arquivo no disco.

Se path apontar para um arquivo, o RunConfiguration será carregado nesse arquivo.

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

save

Salve o RunConfiguration em um arquivo no disco.

Um UserErrorException é gerado quando:

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

  • Nenhum parâmetro name foi especificado.

  • O parâmetro path é inválido.

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

Se path apontar para um diretório, que deve ser um diretório de projeto, 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

path
str
Obrigatório

Um diretório raiz selecionado pelo usuário para configurações de execução. Normalmente, esse é o Repositório Git ou o diretório raiz do projeto Python. A configuração é excluída de um subdiretório chamado .azureml.

name
str
Obrigatório

O nome do arquivo de configuração.

Exceções

UserErrorException

load

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

Se path apontar para um arquivo, o RunConfiguration será carregado nesse arquivo.

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

static load(path, name=None)

Parâmetros

path
str
Obrigatório

Um diretório raiz selecionado pelo usuário para configurações de execução. Normalmente, esse é 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 no subdiretório .azureml ou aml_config. Se o arquivo não estiver nesses diretórios, ele será carregado no caminho especificado.

name
str
valor padrão: None

O nome do arquivo de configuração.

Retornos

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

Tipo de retorno

Exceções

UserErrorException

save

Salve o RunConfiguration em um arquivo no disco.

Um UserErrorException é gerado quando:

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

  • Nenhum parâmetro name foi especificado.

  • O parâmetro path é inválido.

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

Se path apontar para um diretório, que deve ser um diretório de projeto, 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

separate_environment_yaml
bool
valor padrão: False

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

path
str
valor padrão: None

Um diretório raiz selecionado pelo usuário para configurações de execução. Normalmente, esse é o Repositório Git ou o diretório raiz do projeto Python. A configuração é salva em um subdiretório chamado .azureml.

name
str
valor padrão: None

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

Tipo de retorno

Exceções

UserErrorException

Atributos

auto_prepare_environment

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

environment_variables

Variável de ambiente de runtime.

Retornos

Variáveis de runtime

Tipo de retorno

target

Obter o destino de computação em que a execução do trabalho está agendada.

O destino padrão é "local" e se refere ao computador local. Os destinos de computação em nuvem disponíveis podem ser encontrados usando a função compute_targets.

Retornos

O nome de destino

Tipo de retorno

str