RunConfiguration Classe

Representa a configuração de execuções de experimento direcionadas a destinos de computação diferentes em 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 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 de qual tipo de execução você está disparando. Por exemplo, ao configurar um PythonScriptStep , você pode acessar o objeto RunConfiguration da etapa e configurar 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.

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
<xref:str>

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

arguments
list[<xref:str>]

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

framework
<xref:str>

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

communicator
<xref:str>

O Communicator usado na execução. Os Communicators 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

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

auto_prepare_environment
<xref:bool>

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

command
list[<xref:str>] ou <xref:str>

O comando a ser enviado para a execução. A propriedade Command também pode ser usada em vez de script/Arguments. As propriedades Command e script/argument 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 ']

Comentários

Nós criamos sistemas de aprendizado de máquina normalmente para resolver um problema específico. Por exemplo, poderemos estar interessados em encontrar o melhor modelo que classifica as páginas da Web que podem ser servidas como resultados da pesquisa correspondentes a uma consulta. Nossa pesquisa pelo melhor modelo de aprendizado de máquina pode exigir que nós experimentem algoritmos diferentes ou considere configurações de parâmetros diferentes, 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. ExperimentEm seguida, atua como um contêiner lógico para essas execuções de treinamento, facilitando o acompanhamento do progresso nas execuções de treinamento, compare duas execuções de treinamento diretamente, 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 das execuções de treinamento 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 distintos uns dos outros.

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

A configuração de RunConfiguration inclui:

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

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

  • Configurando o caminho para o intérprete Python.

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

  • Uso opcional de Docker e imagens base personalizadas.

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

  • Opção opcional de configuração de 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 seu 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 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

environment
Ambiente

A definição do ambiente. Este campo configura o ambiente do Python. Ele pode ser configurado para usar um ambiente Python existente ou configurar o 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
<xref: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
<xref:int>

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

priority
<xref:int>

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

history
HistoryConfiguration

A seção de configuração usada para desabilitar e habilitar os recursos de log do 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 HDI entra em vigor somente quando o destino é definido como uma computação HDI do Azure. A configuração HDI é usada para definir o modo de implantação YARN. O modo de implantação padrã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 TensorFlow distribuídos. Esse parâmetro entra em vigor somente quando o framework é definido como TensorFlow e o communicator para ParameterServer. AmlCompute é a única computação com suporte para essa configuração.

mpi
MpiConfiguration

A seção de configuração usada para configurar parâmetros de trabalho MPI distribuídos. Esse 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 com suporte para essa configuração.

pytorch
PyTorchConfiguration

A seção de configuração usada para configurar os parâmetros do trabalho PyTorch distribuído. Esse 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 com suporte para essa configuração.

paralleltask
ParallelTaskConfiguration

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

data_references
<xref:dict>[<xref: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
<xref:dict>[<xref:str>, Data]

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

output_data
OutputData

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

source_directory_data_store
<xref:str>

O repositório de armazenamento de backup para o compartilhamento do 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.

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 de um arquivo em disco.

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

Se path apontar para um diretório, que deve ser um diretório de projeto, o RunConfiguration será carregado a partir de < 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 name parâmetro foi especificado.

  • O parâmetro path é inválido.

Se path estiver no formato <dir_path>/<file_name>, em que <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 do projeto, o RunConfiguration será salvo no < caminho > /.azureml/ < nome > ou < caminho > /aml_config/ < nome > .

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.

delete(path, name)

Parâmetros

path
<xref:str>

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
<xref:str>

O nome do arquivo de configuração.

load

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

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

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

load(path, name=None)

Parâmetros

path
<xref:str>

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 de. azureml ou aml_config subdiretório. Se o arquivo não estiver nesses diretórios, o arquivo será carregado a partir do caminho especificado.

name
<xref:str>
valor padrão: None

O nome do arquivo de configuração.

Retornos

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

Tipo de retorno

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 name parâmetro foi especificado.

  • O parâmetro path é inválido.

Se path estiver no formato <dir_path>/<file_name>, em que <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 do projeto, o RunConfiguration será salvo no < caminho > /.azureml/ < nome > ou < caminho > /aml_config/ < nome > .

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
<xref:bool>
valor padrão: None

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

path
<xref: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
<xref:str>
valor padrão: False

Necessária O nome do arquivo de configuração.

Tipo de retorno

<xref:None>

Atributos

auto_prepare_environment

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

target

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

O destino padrão é "local" fazendo referência 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

<xref:str>