Partilhar via


RunConfiguration Classe

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

O objeto RunConfiguration encapsula as informações necessárias para submeter uma execução de preparação numa experimentação. Normalmente, não irá criar um objeto RunConfiguration diretamente, mas obter um de um método que o Experiment devolve, como o submit método da classe.

RunConfiguration é uma configuração de ambiente base que também é utilizada noutros tipos de passos de configuração que dependem do tipo de execução que está a acionar. Por exemplo, ao configurar um PythonScriptStep, pode aceder ao objeto RunConfiguration do passo e configurar dependências da Conda ou aceder às propriedades do ambiente para a execução.

Para obter exemplos de configurações de execução, veja Selecionar e utilizar um destino de computação para preparar o modelo.

Inicialize uma RunConfiguration com as predefinições.

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

Name Description
script
str

O caminho relativo para o ficheiro de script python. O caminho do ficheiro é relativo ao diretório de origem transmitido para submit.

Default value: None
arguments

Argumentos da linha de comandos para o ficheiro de script python.

Default value: None
framework
str

A arquitetura de destino utilizada na execução. As arquiteturas suportadas são Python, PySpark, TensorFlow e PyTorch.

Default value: None
communicator
str

O comunicador utilizado na execução. Os comunicadores suportados são None, ParameterServer, OpenMpi e IntelMpi. Tenha em atenção que o OpenMpi requer uma imagem personalizada com o OpenMpi instalado. Utilize ParameterServer ou OpenMpi para clusters AmlCompute. Utilize o IntelMpi para tarefas de preparação distribuídas.

Default value: None
conda_dependencies

Quando deixado no valor predefinido de Falso, o sistema cria um ambiente Python, que inclui os pacotes especificados em conda_dependencies. Quando definido como verdadeiro, é possível especificar um ambiente Python existente com a definição python_interpreter.

Default value: None
auto_prepare_environment
Necessário

PRETERIDO. Esta definição já não é utilizada.

command
list[str] ou str

O comando a submeter para a execução. A propriedade de comando também pode ser utilizada em vez de script/argumentos. As propriedades de comando e script/argumento não podem ser utilizadas em conjunto para submeter uma execução. Para submeter um ficheiro de script com a propriedade de comando - ['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

Normalmente, criamos sistemas de machine learning para resolver um problema específico. Por exemplo, podemos estar interessados em encontrar o melhor modelo que classifica páginas Web que possam ser servidas como resultados de pesquisa correspondentes a uma consulta. A nossa pesquisa pelo melhor modelo de machine learning pode exigir que experimentemos algoritmos diferentes ou considere definições de parâmetros diferentes, etc.

No SDK do Azure Machine Learning, utilizamos o conceito de uma experimentação para capturar a noção de que as diferentes execuções de preparação estão relacionadas com o problema que estão a tentar resolver. Em Experiment seguida, atua como um contentor lógico para estas execuções de preparação, tornando mais fácil controlar o progresso em execuções de preparação, comparar duas execuções de preparação diretamente, etc.

A RunConfiguration encapsula as definições do ambiente de execução necessárias para submeter uma execução de preparação numa experimentação. Captura a estrutura partilhada das execuções de preparação concebidas para resolver o mesmo problema de machine learning, 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 preparação distintas entre si.

Em cenários de preparação típicos, a RunConfiguration é utilizada ao criar um ScriptRunConfig objeto que empacota um objeto RunConfiguration e um script de execução para preparação.

A configuração de RunConfiguration inclui:

  • Agrupar o diretório de origem da experimentação, incluindo o script submetido.

  • Definir os argumentos da linha de comandos para o script submetido.

  • Configurar o caminho para o interpretador python.

  • Obtenha a configuração do Conda para gerir as dependências da aplicação. O processo de submissão de tarefas pode utilizar a configuração para aprovisionar um ambiente conda temporário e iniciar a aplicação no. Os ambientes temporários são colocados em cache e reutilizados em execuções subsequentes.

  • Utilização opcional do Docker e imagens de base personalizadas.

  • Opção opcional de submeter a experimentação a vários tipos de computação do Azure.

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

  • Definições de runtime avançadas para runtimes comuns, como spark e tensorflow.

O exemplo seguinte mostra como submeter um script de preparação no 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 seguinte mostra como submeter um script de preparação no cluster com a propriedade de comando 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 seguinte 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. Pode ser configurado para utilizar um ambiente Python existente ou configurar para configurar um ambiente temporário para a experimentação. A definição também é responsável por definir as dependências de aplicação 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 tempo do que este valor.

node_count
int

O número de nós a utilizar para a tarefa.

priority
int

A prioridade da tarefa para a política de agendamento.

history

A secção de configuração utilizada para desativar e ativar as funcionalidades de registo do histórico de experimentações.

spark

Quando a plataforma está definida como PySpark, a secção de configuração do Spark é utilizada para definir o SparkConf predefinido para a tarefa submetida.

hdi

A secção de configuração do HDI só entra em vigor quando o destino está definido como uma computação do Azure HDI. A Configuração do HDI é utilizada para definir o modo de implementação do YARN. O modo de implementação predefinido é o cluster.

docker

A secção Configuração do Docker é utilizada para definir variáveis para o ambiente do Docker.

tensorflow

A secção de configuração utilizada para configurar parâmetros distribuídos do TensorFlow. Este parâmetro só entra em vigor quando framework está definido como TensorFlow e como communicator ParameterServer. AmlCompute é a única computação suportada para esta configuração.

mpi

A secção de configuração utilizada para configurar parâmetros de tarefas de MPI distribuídos. Este parâmetro só entra em vigor quando framework está definido como Python e para communicator OpenMpi ou IntelMpi. AmlCompute é o único tipo de computação suportado para esta configuração.

pytorch

A secção de configuração utilizada para configurar parâmetros de tarefaSPyTorch distribuídos. Este parâmetro só entra em vigor quando está framework definido como PyTorch e para communicator Nccl ou Gloo. AmlCompute é o único tipo de computação suportado para esta configuração.

paralleltask

A secção de configuração utilizada para configurar parâmetros de tarefas paralelas distribuídas. Este parâmetro só entra em vigor quando framework está definido como Python e para communicator ParallelTask. AmlCompute é o único tipo de computação suportado para esta configuração.

data_references

Todas as origens 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 à origem de dados e o valor é DataReferenceConfiguration.

data

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

datacaches
<xref:buildin.list>[DatacacheConfiguration]

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

output_data

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

source_directory_data_store
str

O arquivo de dados de cópia de segurança da partilha do projeto.

amlcompute

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

kubernetescompute

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

services

Pontos finais para interativar com o recurso de computação. Os pontos finais permitidos são as portas Jupyter, JupyterLab, VS Code, Tensorboard, SSH e Custom.

Métodos

delete

Eliminar um ficheiro de configuração de execução.

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

load

Carregue um ficheiro de configuração de execução anteriormente guardado a partir de um ficheiro no disco.

Se path apontar para um ficheiro, a RunConfiguration é carregada a partir desse ficheiro.

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

save

Guarde a RunConfiguration num ficheiro no disco.

A UserErrorException é gerado quando:

  • A RunConfiguration não pode ser guardada com o nome especificado.

  • Não name foi especificado nenhum parâmetro.

  • O path parâmetro é inválido.

Se path for do formato <dir_path>/<file_name>, em <que dir_path> é um diretório válido, a RunConfiguration é guardada em <dir_path>/<file_name>.

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

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

delete

Eliminar um ficheiro de configuração de execução.

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

static delete(path, name)

Parâmetros

Name Description
path
Necessário
str

Um diretório de raiz selecionado pelo utilizador para configurações de execução. Normalmente, este é o Repositório Git ou o diretório de raiz do projeto Python. A configuração é eliminada de um subdiretório denominado .azureml.

name
Necessário
str

O nome do ficheiro de configuração.

Exceções

Tipo Description
UserErrorException

load

Carregue um ficheiro de configuração de execução anteriormente guardado a partir de um ficheiro no disco.

Se path apontar para um ficheiro, a RunConfiguration é carregada a partir desse ficheiro.

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

static load(path, name=None)

Parâmetros

Name Description
path
Necessário
str

Um diretório de raiz selecionado pelo utilizador para configurações de execução. Normalmente, este é o Repositório Git ou o diretório de raiz do projeto Python. Para retrocompatibilidade, a configuração também será carregada a partir de .azureml ou aml_config subdiretório. Se o ficheiro não estiver nesses diretórios, o ficheiro será carregado a partir do caminho especificado.

name
str

O nome do ficheiro de configuração.

Default value: None

Devoluções

Tipo Description

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

Exceções

Tipo Description
UserErrorException

save

Guarde a RunConfiguration num ficheiro no disco.

A UserErrorException é gerado quando:

  • A RunConfiguration não pode ser guardada com o nome especificado.

  • Não name foi especificado nenhum parâmetro.

  • O path parâmetro é inválido.

Se path for do formato <dir_path>/<file_name>, em <que dir_path> é um diretório válido, a RunConfiguration é guardada em <dir_path>/<file_name>.

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

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

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

Parâmetros

Name Description
separate_environment_yaml

Indica se pretende guardar a configuração do ambiente conda. Se For Verdadeiro, a configuração do ambiente conda é guardada num ficheiro YAML com o nome "environment.yml".

Default value: False
path
str

Um diretório de raiz selecionado pelo utilizador para configurações de execução. Normalmente, este é o Repositório Git ou o diretório de raiz do projeto Python. A configuração é guardada num subdiretório com o nome .azureml.

Default value: None
name
str

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

Default value: None

Devoluções

Tipo Description

Exceções

Tipo Description
UserErrorException

Atributos

auto_prepare_environment

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

environment_variables

Variáveis de ambiente de runtime.

Devoluções

Tipo Description

Variáveis de runtime

target

Obtenha o destino de computação onde a tarefa está agendada para execução.

O destino predefinido é "local" que se refere ao computador local. Os destinos de computação na cloud disponíveis podem ser encontrados com a função compute_targets.

Devoluções

Tipo Description
str

O nome de destino