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

script
str
valor predefinido: None

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

arguments
list[str]
valor predefinido: None

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

framework
str
valor predefinido: None

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

communicator
str
valor predefinido: None

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.

conda_dependencies
CondaDependencies
valor predefinido: None

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.

auto_prepare_environment
bool
Necessário

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

command
list[str] ou str
valor predefinido: None

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']

_history_enabled
valor predefinido: None
_path
valor predefinido: None
_name
valor predefinido: 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

environment
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
HistoryConfiguration

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

spark
SparkConfiguration

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
HdiConfiguration

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
DockerConfiguration

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

tensorflow
TensorflowConfiguration

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
MpiConfiguration

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
PyTorchConfiguration

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
ParallelTaskConfiguration

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
dict[str, DataReferenceConfiguration]

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
dict[str, 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
OutputData

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
AmlComputeConfiguration

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
KubernetesComputeConfiguration

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
dict[str, ApplicationEndpointConfiguration]

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

path
str
Necessário

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
str
Necessário

O nome do ficheiro de configuração.

Exceções

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

path
str
Necessário

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
valor predefinido: None

O nome do ficheiro de configuração.

Devoluções

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

Tipo de retorno

Exceções

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

separate_environment_yaml
bool
valor predefinido: False

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".

path
str
valor predefinido: None

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.

name
str
valor predefinido: None

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

Tipo de retorno

Exceções

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

Variáveis de runtime

Tipo de retorno

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

O nome de destino

Tipo de retorno

str