Este tópico demonstra como enviar um experimento de AutoML para ajuste de hiperparâmetros em recursos computacionais do DLC. Com o framework PyTorch e o módulo torchvision.datasets.MNIST, esta solução baixa e carrega automaticamente o conjunto de dados MNIST e treina um modelo para encontrar a configuração ideal de hiperparâmetros. Escolha entre três modos de treinamento: autônomo, distribuído e com parâmetros aninhados.
Pré-requisitos
Se for sua primeira vez usando o AutoML, conceda as permissões necessárias. Para mais informações, consulte Cloud product dependencies and authorization: AutoML.
Conceda as permissões necessárias ao DLC. Para mais informações, consulte Cloud product dependencies and authorization: DLC.
Crie um workspace e associe-o a um grupo de recursos público. Para mais informações, consulte Create and manage workspaces.
Ative o Object Storage Service (OSS) e crie um bucket do OSS. Para mais informações, consulte Quick start.
Etapa 1: Criar um conjunto de dados
Faça upload do arquivo de script mnist.py para o seu bucket do OSS. Para mais informações, consulte Quick start.
-
Crie um conjunto de dados do OSS para armazenar os arquivos de dados do experimento. Para mais informações, consulte Create and manage datasets.
Configure os seguintes parâmetros principais e mantenha os demais com as configurações padrão:
Dataset Name: Insira um nome personalizado para o conjunto de dados.
Select Data Storage: Selecione o diretório do OSS onde o arquivo de script está armazenado.
Property: Selecione Property.
Etapa 2: Criar um experimento
Acesse a página New e configure os parâmetros principais conforme descrito nas etapas a seguir. Para mais informações sobre outros parâmetros, consulte Create an experiment. Após concluir a configuração, clique em Submit.
-
Configure as definições de execução.
Esta solução oferece três modos de treinamento: autônomo, distribuído e com parâmetros aninhados.
Treinamento autônomo
Parâmetro
Descrição
Job Type
Selecione DLC.
Resource Group
Selecione Public Resource Group.
Framework
Selecione PyTorch.
Datasets
Selecione o conjunto de dados criado na Etapa 1.
Node Image
Selecione PAI Image >
pytorch-training:1.12PAI-gpu-py38-cu113-ubuntu20.04.Instance Type
Selecione CPU >
ecs.g6.4xlarge.Nodes
Defina como 1.
Startup Command
Defina como
python3 /mnt/data/mnist.py --save_model=/mnt/data/examples/search/model/model_${exp_id}_${trial_id} --batch_size=${batch_size} --lr=${lr}.Hiperparâmetros
-
batch_size
-
Tipo de restrição: Selecione choice.
-
Espaço de busca: Clique em
para adicionar três valores enumerados: 16, 32 e 64.
-
-
lr
-
Tipo de restrição: Selecione choice.
-
Espaço de busca: Clique em
para adicionar três valores enumerados: 0,0001, 0,001 e 0,01.
-
Essa configuração gera nove combinações de hiperparâmetros. O experimento cria uma tentativa para cada combinação.
Treinamento distribuído
Parâmetro
Descrição
Job Type
Selecione DLC.
Resource Group
Selecione Public Resource Group.
Framework
Selecione PyTorch.
Datasets
Selecione o conjunto de dados criado na Etapa 1.
Node Image
Selecione PAI Image >
pytorch-training:1.12PAI-gpu-py38-cu113-ubuntu20.04.Instance Type
Selecione CPU >
ecs.g6.4xlarge.Nodes
Defina como 3.
Startup Command
Defina o comando como
python -m torch.distributed.launch --master_addr=$MASTER_ADDR --master_port=$MASTER_PORT --nproc_per_node=1 --nnodes=$WORLD_SIZE --node_rank=$RANK /mnt/data/mnist.py --data_dir=/mnt/data/examples/search/data --save_model=/mnt/data/examples/search/pai/model/model_${exp_id}_${trial_id} --batch_size=${batch_size} --lr=${lr}.Hiperparâmetros
-
batch_size
-
Tipo de restrição: Selecione choice.
-
Espaço de busca: Clique em
para adicionar três valores enumerados: 16, 32 e 64.
-
-
lr
-
Tipo de restrição: Selecione choice.
-
Espaço de busca: Clique em
para adicionar três valores enumerados: 0,0001, 0,001 e 0,01.
-
Essa configuração gera nove combinações de hiperparâmetros. O experimento cria uma tentativa para cada combinação.
Treinamento com parâmetros aninhados
Parâmetro
Descrição
Job Type
Selecione DLC.
Resource Group
Selecione Public Resource Group.
Framework
Selecione PyTorch.
Datasets
Selecione o conjunto de dados criado na Etapa 1.
Node Image
Selecione PAI Image >
pytorch-training:1.12PAI-gpu-py38-cu113-ubuntu20.04.Instance Type
Selecione CPU >
ecs.g6.4xlarge.Nodes
Defina como 1.
Startup Command
Defina como
python3 /mnt/data/mnist.py --save_model=/mnt/data/examples/search/pai/model/model_${exp_id}_${trial_id} --batch_size=${nested_params}.{batch_size} --lr=${nested_params}.{lr} --gamma=${gamma}.Hiperparâmetros
-
nested_params
-
Tipo de restrição: Selecione choice.
-
Espaço de busca: Clique em
para adicionar dois valores enumerados: {"_name":"large","{lr}":{"_type":"choice","_value":[0.02,0.2]},"{batch_size}":{"_type":"choice","_value":[256,128]}}e{"_name":"small","{lr}":{"_type":"choice","_value":[0.01,0.1]},"{batch_size}":{"_type":"choice","_value":[64,32]}}.
-
-
gamma
-
Tipo de restrição: Selecione choice.
-
Espaço de busca: Clique em
para adicionar três valores enumerados: 0,8, 0,7 e 0,9.
-
Essa configuração gera nove combinações de hiperparâmetros. O experimento cria uma tentativa para cada combinação.
-
-
Configure as definições da tentativa.
Parâmetro
Descrição
Métrica
Tipo de métrica
Selecione stdout. Esta configuração extrai a métrica final da saída padrão (stdout) durante a execução.
Método
Selecione best.
Peso da métrica
Configure os seguintes itens:
-
key: validation: accuracy=([0-9\\.]+)
-
Value: 1
Origem da métrica
Defina a palavra-chave do comando como cmd1.
Direção da otimização
Selecione Maximize.
Caminho de armazenamento do modelo
Defina o caminho do OSS para salvar o modelo. Nesta solução, o caminho é configurado como
oss://examplebucket/examples/model/model_${exp_id}_${trial_id}. -
-
Configure as definições de busca.
Parâmetro
Descrição
Algoritmo de busca
Selecione TPE. Para mais informações sobre o algoritmo, consulte Supported search algorithms.
Máximo de tentativas
Defina como 3.
Máximo de tentativas simultâneas
Defina como 2.
Ativar parada antecipada
Ative esta opção para interromper uma tentativa antecipadamente caso o desempenho seja insatisfatório.
Etapa inicial
Defina como 5. A interrupção antecipada de uma tentativa só ocorre após a conclusão de pelo menos cinco avaliações.
Etapa 3: Visualizar detalhes e resultados do experimento
-
Na lista de experimentos, clique em o nome do experimento para abrir a página Experiment Details.
A página Experiment Details possui quatro áreas principais. A área Basic configuration exibe o ID, o nome, a visibilidade, o status, o criador, a hora de criação e a hora de atualização do experimento. A área Trial status statistics mostra um gráfico de rosca com a quantidade de tentativas concluídas, com falha, em execução ou em outros estados. A área Trial configuration inclui o tipo de métrica, o método de cálculo, a expressão regular de peso da métrica, a origem da métrica e o caminho de armazenamento do modelo. Por fim, a área Search configuration apresenta o algoritmo de busca, o máximo de tentativas, o máximo de tentativas simultâneas, a direção da otimização e as configurações de parada antecipada.
Nesta página, monitore o progresso e o status de todas as tentativas. O experimento cria três tentativas com base no algoritmo de busca e nas configurações de limite definidas.
-
Clique em a aba Trials. Visualize a lista de todas as tentativas geradas para o experimento, incluindo o status, a métrica final e a combinação de hiperparâmetros de cada uma.
Documentos relacionados
Também é possível enviar um experimento de ajuste de hiperparâmetros em recursos computacionais do MaxCompute. Para mais informações, consulte Best practices for MaxCompute k-means clustering.
Para mais detalhes sobre como utilizar o AutoML e seu funcionamento, consulte AutoML.