RunConfiguration Classe
Representa a configuração para execuções de experimento direcionadas a destinos de computação diferentes 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 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á disparando. Por exemplo, ao configurar um PythonScriptStepobjeto RunConfiguration da etapa, você pode acessar 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.
Construtor
RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)
Parâmetros
| Nome | Description |
|---|---|
|
script
|
O caminho relativo para o arquivo de script python. O caminho do arquivo é relativo ao diretório de origem passado para submit. Valor padrão: None
|
|
arguments
|
Argumentos de linha de comando para o arquivo de script python. Valor padrão: None
|
|
framework
|
A estrutura de destino usada na execução. As estruturas com suporte são Python, PySpark, TensorFlow e PyTorch. Valor padrão: None
|
|
communicator
|
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 o IntelMpi para trabalhos de treinamento distribuídos. Valor padrão: None
|
|
conda_dependencies
|
Quando deixado no valor padrão de False, o sistema cria um ambiente python, que inclui os pacotes especificados em Valor padrão: None
|
|
auto_prepare_environment
Obrigatório
|
DEPRECADO. Essa configuração não é mais usada. |
|
command
|
O comando a ser enviado para a execução. A propriedade de comando também pode ser usada em vez de script/argumentos. As propriedades de comando e script/argumento não podem ser usadas em conjunto para enviar uma execução. Para enviar um arquivo de script usando a propriedade de comando - ['python', 'train.py', '–arg1', arg1_val] Para executar um comando real - ['ls'] Valor padrão: None
|
|
_history_enabled
|
Valor padrão: None
|
|
_path
|
Valor padrão: None
|
|
_name
|
Valor padrão: None
|
Comentários
Criamos sistemas de machine learning normalmente 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 atendidas como resultados de pesquisa correspondentes a uma consulta. Nossa pesquisa pelo melhor modelo de machine learning pode exigir que experimentemos algoritmos diferentes ou considere configurações de parâmetro 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 ao 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 em execuções de treinamento, comparar 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 tanto a estrutura compartilhada de execuções de treinamento projetadas para resolver o mesmo problema de machine learning, quanto 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.
Em cenários de treinamento típicos, RunConfiguration é usado criando um ScriptRunConfig objeto que agrupa um objeto RunConfiguration e um script de execução para treinamento.
A configuração de RunConfiguration inclui:
Agrupando 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 interpretador do 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 dentro. Os ambientes temporários são armazenados em cache e reutilizados em execuções subsequentes.
Uso opcional do Docker e imagens base personalizadas.
Opção opcional de enviar o experimento para vários tipos de computação do Azure.
Opção opcional 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 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 em seu cluster usando 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 a seguir mostra como executar um comando em seu 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
| Nome | Description |
|---|---|
|
environment
|
A definição de ambiente. Esse campo configura o ambiente do Python. Ele pode ser configurado para usar um ambiente python existente ou configurar 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
|
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
|
O número de nós que serão usados para o trabalho. |
|
priority
|
A prioridade do trabalho para a política de agendamento. |
|
history
|
A seção de configuração usada para desabilitar e habilitar recursos de registro em log 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 de HDI do Azure. A Configuração de HDI é usada para definir o modo de implantação yarn. O modo de implantação padrão é 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 de TensorFlow distribuídos.
Esse parâmetro entra em vigor somente quando o |
|
mpi
|
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 |
|
pytorch
|
A seção de configuração usada para configurar parâmetros de trabalho PyTorch distribuídos.
Esse parâmetro entra em vigor somente quando o |
|
paralleltask
|
A seção de configuração usada para configurar parâmetros de trabalho de paralleltask distribuídos.
Esse parâmetro entra em vigor somente quando 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 é DataReferenceConfiguration. |
|
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 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
|
O armazenamento de dados de backup 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 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
|
Pontos de extremidade interativos com o recurso de computação. Os pontos de extremidade permitidos são portas Jupyter, JupyterLab, VS Code, Tensorboard, SSH e Custom. |
Métodos
| delete |
Excluir 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 Se |
| save |
Salve o RunConfiguration em um arquivo no disco. Um UserErrorException é gerado quando:
Se Se Esse método é útil ao editar a configuração manualmente ou ao compartilhar a configuração com a CLI. |
delete
Excluir 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
| Nome | Description |
|---|---|
|
path
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
Obrigatório
|
O nome do arquivo de configuração. |
Exceções
| Tipo | Description |
|---|---|
|
UserErrorException
|
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 de <path>/.azureml/<name> ou <path>/aml_config/<name>.
static load(path, name=None)
Parâmetros
| Nome | Description |
|---|---|
|
path
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 de .azureml ou aml_config subdiretório. Se o arquivo não estiver nesses diretórios, o arquivo será carregado do caminho especificado. |
|
name
|
O nome do arquivo de configuração. Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
|
O objeto de configuração de execução. |
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
nameparâmetro foi especificado.O
pathparâmetro é inválido.
Se path for do 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 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
| Nome | Description |
|---|---|
|
separate_environment_yaml
|
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'. Valor padrão: False
|
|
path
|
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. Valor padrão: None
|
|
name
|
[Obrigatório] O nome do arquivo de configuração. Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
Atributos
auto_prepare_environment
Obtenha o auto_prepare_environment parâmetro. Essa é uma configuração preterida e não utilizado.
environment_variables
target
Obtenha o destino de computação em que o trabalho está agendado para execução.
O destino padrão é "local" referindo-se ao computador local. Os destinos de computação em nuvem disponíveis podem ser encontrados usando a função compute_targets.
Retornos
| Tipo | Description |
|---|---|
|
O nome de destino |