Os hiperparâmetros são variáveis que regem o processo de preparação de um modelo, como o tamanho do lote ou o número de camadas ocultas numa rede neural profunda. O aperfeiçoamento de hiperparâmetros procura a melhor combinação de valores de hiperparâmetros otimizando os valores das métricas numa série de testes. As métricas são resumos escalares que adiciona ao seu preparador, como a precisão do modelo.
Saiba mais sobre o aperfeiçoamento de hiperparâmetros no Vertex AI. Para ver um exemplo passo a passo, consulte o Vertex AI: Hyperparameter Tuning codelab.
Esta página mostra como:
Prepare a sua aplicação de preparação para o ajuste de hiperparâmetros atualizando-a para aceitar hiperparâmetros como argumentos da linha de comandos e comunicar valores de métricas ao Vertex AI.
Crie a tarefa de treino de hiperparâmetros. Para mais informações acerca das opções de configuração, consulte o artigo Compreender a configuração da otimização de hiperparâmetros.
Prepare a sua candidatura à formação
Numa tarefa de hiperaperfeiçoamento dos parâmetros, o Vertex AI cria avaliações da sua tarefa de preparação com diferentes conjuntos de hiperparâmetros e avalia a eficácia de uma avaliação através das métricas que especificou. O Vertex AI transmite valores de hiperparâmetros à sua aplicação de preparação como argumentos de linha de comandos. Para que o Vertex AI avalie a eficácia de um teste, a sua aplicação de preparação tem de comunicar as métricas ao Vertex AI.
As secções seguintes descrevem:
- Como o Vertex AI transmite hiperparâmetros à sua aplicação de preparação.
- Opções para transmitir métricas da sua aplicação de preparação para o Vertex AI.
Para saber mais sobre os requisitos das aplicações de preparação personalizadas que são executadas no Vertex AI, leia o artigo Requisitos do código de preparação.
Processar os argumentos da linha de comandos para os hiperparâmetros que quer otimizar
O Vertex AI define argumentos de linha de comandos quando chama a sua aplicação de preparação. Use os argumentos da linha de comandos no seu código:
Defina um nome para cada argumento de hiperparâmetro e analise-o usando o analisador de argumentos que preferir, como
argparse
. Use os mesmos nomes de argumentos ao configurar a tarefa de preparação de hiperparâmetros.Por exemplo, se a sua aplicação de preparação for um módulo Python denominado
my_trainer
e estiver a otimizar um hiperparâmetro denominadolearning_rate
, o Vertex AI inicia cada teste com um comando semelhante ao seguinte:python3 -m my_trainer --learning_rate learning-rate-in-this-trial
A Vertex AI determina o learning-rate-in-this-trial e transmite-o através do argumento
learning_rate
.Atribua os valores dos argumentos da linha de comandos aos hiperparâmetros no código de preparação.
Saiba mais acerca dos requisitos para analisar argumentos da linha de comandos.
Comunique as suas métricas ao Vertex AI
Para comunicar as suas métricas ao Vertex AI, use o cloudml-hypertune
pacote Python. Esta biblioteca fornece funções auxiliares para comunicar métricas à Vertex AI.
Saiba mais acerca dos relatórios de métricas de hiperparâmetros.
Crie uma tarefa de hiperaperfeiçoamento de parâmetros
Dependendo da ferramenta que quer usar para criar um HyperparameterTuningJob
,
selecione um dos seguintes separadores:
Consola
Na consola Google Cloud , não pode criar um recurso HyperparameterTuningJob
diretamente. No entanto, pode criar um recurso TrainingPipeline
que crie um HyperparameterTuningJob
.
As instruções seguintes descrevem como criar um TrainingPipeline
que cria um HyperparameterTuningJob
e não faz mais nada. Se quiser usar funcionalidades TrainingPipeline
adicionais, como a preparação com um conjunto de dados gerido, leia o artigo Criar pipelines de preparação.
Na Google Cloud consola, na secção Vertex AI, aceda à página Pipelines de preparação.
Clique em
Criar para abrir o painel Formar novo modelo.No passo Método de preparação, especifique as seguintes definições:
Na lista pendente Conjunto de dados, selecione Nenhum conjunto de dados gerido.
Selecione Preparação personalizada (avançada).
Clique em Continuar.
No passo Detalhes do modelo, escolha Treinar novo modelo ou Treinar nova versão. Se selecionar Preparar novo modelo, introduza um nome à sua escolha, MODEL_NAME, para o modelo. Clique em Continuar.
No passo Contentor de preparação, especifique as seguintes definições:
Selecione se quer usar um contentor pré-criado ou um contentor personalizado para a preparação.
Consoante a sua escolha, opte por uma das seguintes ações:
Se quiser usar um contentor pré-criado para a preparação, forneça ao Vertex AI as informações necessárias para usar o pacote de preparação que carregou para o Cloud Storage:
Use as listas pendentes Estrutura do modelo e Versão da estrutura do modelo para especificar o recipiente predefinido que quer usar.
No campo Localização do pacote, especifique o URI do Cloud Storage da aplicação de preparação Python que criou e carregou. Normalmente, este ficheiro termina com
.tar.gz
.No campo Módulo Python, introduza o nome do módulo do ponto de entrada da sua aplicação de preparação.
Se quiser usar um contentor personalizado para a preparação, no campo Imagem do contentor, especifique o URI do Artifact Registry ou do Docker Hub da imagem do contentor.
No campo Diretório de saída do modelo, pode especificar o URI do Cloud Storage de um diretório num contentor ao qual tem acesso. O diretório não tem de existir.
Este valor é transmitido para a Vertex AI no campo
baseOutputDirectory
API, que define várias variáveis de ambiente às quais a sua aplicação de preparação pode aceder quando é executada.Opcional: no campo Argumentos, pode especificar argumentos para o Vertex AI usar quando começar a executar o código de preparação. O comprimento máximo de todos os argumentos combinados é de 100 000 carateres. O comportamento destes argumentos difere consoante o tipo de contentor que está a usar:
Se estiver a usar um contentor pré-criado, o Vertex AI transmite os argumentos como flags de linha de comandos ao seu módulo Python.
Se estiver a usar um contentor personalizado, o Vertex AI substitui a instrução
CMD
do seu contentor pelos argumentos.
Clique em Continuar.
No passo Ajuste de hiperparâmetros, selecione a caixa de verificação Ativar ajuste de hiperparâmetros e especifique as seguintes definições:
Na secção Novo hiperparâmetro, especifique o Nome do parâmetro e o Tipo de um hiperparâmetro que quer otimizar. Consoante o tipo especificado, configure as definições de hiperparâmetros adicionais apresentadas.
Saiba mais sobre os tipos de hiperparâmetros e as respetivas configurações.
Se quiser otimizar mais do que um hiperparâmetro, clique em Adicionar novo parâmetro e repita o passo anterior na nova secção apresentada.
Repita este procedimento para cada hiperparâmetro que quer otimizar.
No campo Métrica a otimizar e na lista pendente Objetivo, especifique o nome e o objetivo da métrica que quer otimizar.
No campo Número máximo de tentativas, especifique o número máximo de tentativas que quer que o Vertex AI execute para a tarefa de ajuste de hiperparâmetros.
No campo Número máximo de tentativas paralelas, especifique o número máximo de tentativas que o Vertex AI pode executar em simultâneo.
Na lista pendente Algoritmo de pesquisa, especifique um algoritmo de pesquisa para o Vertex AI usar.
Ignore o botão Ativar paragem antecipada, que não tem efeito.
Clique em Continuar.
No passo Calcular e preços, especifique as seguintes definições:
Na lista pendente Região, selecione uma "região que suporte a preparação personalizada"
Na secção Worker pool 0, especifique os recursos de computação a usar para a preparação.
Se especificar aceleradores, certifique-se de que o tipo de acelerador que escolher está disponível na região selecionada.
Se quiser realizar treino distribuído, clique em Adicionar mais conjuntos de trabalhadores e especifique um conjunto adicional de recursos de computação para cada conjunto de trabalhadores adicional que quiser.
Clique em Continuar.
No passo Contentor de previsão, selecione Nenhum contentor de previsão.
Clique em Iniciar preparação para iniciar o pipeline de preparação personalizado.
gcloud
Os passos seguintes mostram como usar a CLI Google Cloud para criar um
HyperparameterTuningJob
com uma configuração relativamente mínima. Para saber mais
acerca de todas as opções de configuração que pode usar para esta tarefa, consulte a
documentação de referência para o comando gcloud ai hp-tuning-jobs create
e o recurso da API HyperparameterTuningJob
.
Crie um ficheiro YAML denominado
config.yaml
com alguns campos da API que quer especificar para o novoHyerparameterTuningJob
:config.yaml
studySpec: metrics: - metricId: METRIC_ID goal: METRIC_GOAL parameters: - parameterId: HYPERPARAMETER_ID doubleValueSpec: minValue: DOUBLE_MIN_VALUE maxValue: DOUBLE_MAX_VALUE trialJobSpec: workerPoolSpecs: - machineSpec: machineType: MACHINE_TYPE replicaCount: 1 containerSpec: imageUri: CUSTOM_CONTAINER_IMAGE_URI
Substitua o seguinte:
METRIC_ID
: o nome de uma métrica de hiperparâmetro a otimizar. O seu código de treino tem de comunicar esta métrica quando for executado.METRIC_GOAL
: o objetivo da sua métrica de hiperparâmetros,MAXIMIZE
ouMINIMIZE
.HYPERPARAMETER_ID
: o nome de um hiperparâmetro a ser ajustado. O seu código de preparação tem de analisar uma flag de linha de comandos com este nome. Para este exemplo, o hiperparâmetro tem de ter valores de vírgula flutuante. Saiba mais sobre outros tipos de dados de hiperparâmetros.DOUBLE_MIN_VALUE
: O valor mínimo (um número) que quer que o Vertex AI experimente para este hiperparâmetro.DOUBLE_MAX_VALUE
: O valor máximo (um número) que quer que o Vertex AI experimente para este hiperparâmetro.MACHINE_TYPE
: o tipo de VM a usar para a preparação.CUSTOM_CONTAINER_IMAGE_URI
: o URI de uma imagem de contentor do Docker com o seu código de preparação. Saiba como criar uma imagem de contentor personalizada.Para este exemplo, tem de usar um contentor personalizado. Os recursos
HyperparameterTuningJob
também suportam código de preparação numa distribuição de origem Python em vez de um contentor personalizado.
No mesmo diretório que o ficheiro
config.yaml
, execute o seguinte comando de shell:gcloud ai hp-tuning-jobs create \ --region=LOCATION \ --display-name=DISPLAY_NAME \ --max-trial-count=MAX_TRIAL_COUNT \ --parallel-trial-count=PARALLEL_TRIAL_COUNT \ --config=config.yaml
Substitua o seguinte:
LOCATION
: a região onde quer criar oHyperparameterTuningJob
. Use uma região que suporte o treino personalizado.DISPLAY_NAME
: um nome a apresentar memorável à sua escolha para oHyperparameterTuningJob
. Consulte o recurso REST.MAX_TRIAL_COUNT
: o número máximo de testes a executar.PARALLEL_TRIAL_COUNT
: o número máximo de testes a executar em paralelo.
REST
Use o seguinte exemplo de código para criar uma tarefa de otimização de hiperparâmetros com o método create
do recurso hyperparameterTuningJob
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
LOCATION
: a região onde quer criar oHyperparameterTuningJob
. Use uma região que suporte o treino personalizado. - PROJECT: o seu ID do projeto.
-
DISPLAY_NAME
: um nome a apresentar memorável à sua escolha para oHyperparameterTuningJob
. Consulte o recurso REST. - Especifique as suas métricas:
-
METRIC_ID
: o nome de uma métrica de hiperparâmetro a otimizar. O seu código de treino tem de comunicar esta métrica quando for executado. -
METRIC_GOAL
: o objetivo da sua métrica de hiperparâmetros,MAXIMIZE
ouMINIMIZE
.
-
- Especifique os hiperparâmetros:
-
HYPERPARAMETER_ID
: o nome de um hiperparâmetro a ser ajustado. O seu código de preparação tem de analisar uma flag de linha de comandos com este nome. - PARAMETER_SCALE: (opcional.) Como o parâmetro deve ser dimensionado. Deixe não definido
para parâmetros CATEGORICAL. Pode ser
UNIT_LINEAR_SCALE
,UNIT_LOG_SCALE
,UNIT_REVERSE_LOG_SCALE
ouSCALE_TYPE_UNSPECIFIED
- Se o tipo deste hiperparâmetro for DOUBLE, especifique os valores mínimo (DOUBLE_MIN_VALUE) e máximo (DOUBLE_MAX_VALUE) para este hiperparâmetro.
- Se o tipo deste hiperparâmetro for INTEGER, especifique os valores mínimo (INTEGER_MIN_VALUE) e máximo (INTEGER_MAX_VALUE) para este hiperparâmetro.
- Se o tipo deste hiperparâmetro for CATEGORICAL, especifique os valores aceitáveis (CATEGORICAL_VALUES) como uma matriz de strings.
- Se o tipo deste hiperparâmetro for DISCRETE, especifique os valores aceitáveis (DISCRETE_VALUES) como uma matriz de números.
- Especifique hiperparâmetros condicionais. Os hiperparâmetros condicionais são adicionados a uma avaliação quando o valor do hiperparâmetro principal corresponde à condição especificada. Saiba mais sobre os
hiperparâmetros condicionais.
- CONDITIONAL_PARAMETER: O
ParameterSpec
do parâmetro condicional. Esta especificação inclui o nome, a escala, o intervalo de valores do parâmetro e quaisquer parâmetros condicionais que dependam deste hiperparâmetro. - Se o tipo do hiperparâmetro principal for INTEGER, especifique uma lista de números inteiros como o INTEGERS_TO_MATCH. Se o valor do hiperparâmetro principal corresponder a um dos valores especificados, este parâmetro condicional é adicionado ao teste.
- Se o tipo do hiperparâmetro principal for CATEGORICAL, especifique uma lista de categorias como o CATEGORIES_TO_MATCH. Se o valor do hiperparâmetro principal corresponder a um dos valores especificados, este parâmetro condicional é adicionado ao teste.
- Se o tipo do hiperparâmetro principal for DISCRETE, especifique uma lista de números inteiros como o DISCRETE_VALUES_TO_MATCH. Se o valor do hiperparâmetro principal corresponder a um dos valores especificados, este parâmetro condicional é adicionado ao teste.
- CONDITIONAL_PARAMETER: O
-
- ALGORITHM: (opcional.) O algoritmo de pesquisa a usar nesta tarefa de
hiperaperfeiçoamento dos parâmetros. Pode ser
ALGORITHM_UNSPECIFIED
,GRID_SEARCH
ouRANDOM_SEARCH
. -
MAX_TRIAL_COUNT
: o número máximo de testes a executar. -
PARALLEL_TRIAL_COUNT
: o número máximo de testes a executar em paralelo. - MAX_FAILED_TRIAL_COUNT: o número de tarefas que podem falhar antes de a tarefa de aperfeiçoamento de hiperparâmetros falhar.
- Defina a tarefa de formação personalizada de avaliação:
-
MACHINE_TYPE
: o tipo de VM a usar para a preparação. - ACCELERATOR_TYPE: (opcional.) O tipo de acelerador a associar a cada avaliação.
- ACCELERATOR_COUNT: (opcional.) O número de aceleradores a associar a cada avaliação.
- REPLICA_COUNT: o número de réplicas de trabalhadores a usar para cada teste.
- Se a sua aplicação de preparação for executada num contentor personalizado, especifique o seguinte:
-
CUSTOM_CONTAINER_IMAGE_URI
: o URI de uma imagem de contentor do Docker com o seu código de preparação. Saiba como criar uma imagem de contentor personalizada. - CUSTOM_CONTAINER_COMMAND: (opcional.) O comando a invocar quando o contentor é iniciado. Este comando substitui o ponto de entrada predefinido do contentor.
- CUSTOM_CONTAINER_ARGS: (opcional.) Os argumentos a transmitir quando iniciar o contentor.
-
- Se a sua aplicação de preparação for um pacote Python executado num contentor pré-criado,
especifique o seguinte:
- PYTHON_PACKAGE_EXECUTOR_IMAGE_URI: o URI da imagem do contentor que executa o pacote Python fornecido. Saiba mais sobre os contentores pré-criados para preparação.
- PYTHON_PACKAGE_URIS: a localização do Cloud Storage dos ficheiros do pacote Python, que são o programa de preparação e os respetivos pacotes dependentes. O número máximo de URIs de pacotes é 100.
- PYTHON_MODULE: o nome do módulo Python a executar após a instalação dos pacotes.
- PYTHON_PACKAGE_ARGS: (opcional.) Argumentos da linha de comandos a transmitir ao módulo Python.
- SERVICE_ACCOUNT: (opcional.) A conta de serviço que o Vertex AI vai usar para executar o seu código. Saiba mais sobre como anexar uma conta de serviço personalizada.
- TIMEOUT: (opcional.) O tempo de execução máximo para cada teste.
-
- Especifique o LABEL_NAME e o LABEL_VALUE para quaisquer etiquetas que queira aplicar a esta tarefa de otimização de hiperparâmetros.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/hyperparameterTuningJobs
Corpo JSON do pedido:
{ "displayName": DISPLAY_NAME, "studySpec": { "metrics": [ { "metricId": METRIC_ID, "goal": METRIC_GOAL } ], "parameters": [ { "parameterId": PARAMETER_ID, "scaleType": PARAMETER_SCALE, // Union field parameter_value_spec can be only one of the following: "doubleValueSpec": { "minValue": DOUBLE_MIN_VALUE, "maxValue": DOUBLE_MAX_VALUE }, "integerValueSpec": { "minValue": INTEGER_MIN_VALUE, "maxValue": INTEGER_MAX_VALUE }, "categoricalValueSpec": { "values": [ CATEGORICAL_VALUES ] }, "discreteValueSpec": { "values": [ DISCRETE_VALUES ] } // End of list of possible types for union field parameter_value_spec. "conditionalParameterSpecs": [ "parameterSpec": { CONDITIONAL_PARAMETER } // Union field parent_value_condition can be only one of the following: "parentIntValues": { "values": [INTEGERS_TO_MATCH] } "parentCategoricalValues": { "values": [CATEGORIES_TO_MATCH] } "parentDiscreteValues": { "values": [DISCRETE_VALUES_TO_MATCH] } // End of list of possible types for union field parent_value_condition. ] } ], "ALGORITHM": ALGORITHM }, "maxTrialCount": MAX_TRIAL_COUNT, "parallelTrialCount": PARALLEL_TRIAL_COUNT, "maxFailedTrialCount": MAX_FAILED_TRIAL_COUNT, "trialJobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": MACHINE_TYPE, "acceleratorType": ACCELERATOR_TYPE, "acceleratorCount": ACCELERATOR_COUNT }, "replicaCount": REPLICA_COUNT, // Union field task can be only one of the following: "containerSpec": { "imageUri": CUSTOM_CONTAINER_IMAGE_URI, "command": [ CUSTOM_CONTAINER_COMMAND ], "args": [ CUSTOM_CONTAINER_ARGS ] }, "pythonPackageSpec": { "executorImageUri": PYTHON_PACKAGE_EXECUTOR_IMAGE_URI, "packageUris": [ PYTHON_PACKAGE_URIS ], "pythonModule": PYTHON_MODULE, "args": [ PYTHON_PACKAGE_ARGS ] } // End of list of possible types for union field task. } ], "scheduling": { "TIMEOUT": TIMEOUT }, "serviceAccount": SERVICE_ACCOUNT }, "labels": { LABEL_NAME_1": LABEL_VALUE_1, LABEL_NAME_2": LABEL_VALUE_2 } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/12345/locations/us-central1/hyperparameterTuningJobs/6789", "displayName": "myHyperparameterTuningJob", "studySpec": { "metrics": [ { "metricId": "myMetric", "goal": "MINIMIZE" } ], "parameters": [ { "parameterId": "myParameter1", "integerValueSpec": { "minValue": "1", "maxValue": "128" }, "scaleType": "UNIT_LINEAR_SCALE" }, { "parameterId": "myParameter2", "doubleValueSpec": { "minValue": 1e-07, "maxValue": 1 }, "scaleType": "UNIT_LINEAR_SCALE" } ], "ALGORITHM": "RANDOM_SEARCH" }, "maxTrialCount": 20, "parallelTrialCount": 1, "trialJobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": "n1-standard-4" }, "replicaCount": "1", "pythonPackageSpec": { "executorImageUri": "us-docker.pkg.dev/vertex-ai/training/training-tf-cpu.2-1:latest", "packageUris": [ "gs://my-bucket/my-training-application/trainer.tar.bz2" ], "pythonModule": "my-trainer.trainer" } } ] } }
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Configuração da tarefa de preparação de hiperparâmetros
As tarefas de aperfeiçoamento de hiperparâmetros procuram a melhor combinação de hiperparâmetros para otimizar as suas métricas. As tarefas de otimização de hiperparâmetros fazem isto executando várias experiências da sua aplicação de preparação com diferentes conjuntos de hiperparâmetros.
Quando configura uma tarefa de ajuste de hiperparâmetros, tem de especificar os seguintes detalhes:
Os hiperparâmetros que quer otimizar e as métricas que quer usar para avaliar os testes.
Detalhes sobre o número de testes a executar como parte desta tarefa de otimização, como o seguinte:
Detalhes sobre a tarefa de preparação personalizada executada para cada teste, como o seguinte:
O tipo de máquina em que os trabalhos de testes são executados e os aceleradores que o trabalho usa.
Os detalhes da tarefa do contentor personalizado ou do pacote Python.
Limite o número de testes
Decida quantos testes quer permitir que o serviço execute e defina o valor maxTrialCount
no objeto HyperparameterTuningJob.
Existem dois interesses concorrentes a ter em conta quando decidir quantas avaliações permitir:
- tempo (e, por conseguinte, custo)
- precisão
Geralmente, o aumento do número de tentativas produz melhores resultados, mas nem sempre é assim. Normalmente, existe um ponto de rendimentos decrescentes após o qual as tentativas adicionais têm pouco ou nenhum efeito na precisão. Antes de iniciar uma tarefa com um grande número de testes, é recomendável começar com um pequeno número de testes para avaliar o efeito que os hiperparâmetros escolhidos têm na precisão do modelo.
Para tirar o máximo partido do ajuste de hiperparâmetros, não deve definir o valor máximo inferior a dez vezes o número de hiperparâmetros que usa.
Testes paralelos
Pode especificar quantas experiências podem ser executadas em paralelo definindo parallelTrialCount
no HyperparameterTuningJob.
A execução de testes paralelos tem a vantagem de reduzir o tempo necessário para a tarefa de preparação (tempo real: o tempo de processamento total necessário não é normalmente alterado). No entanto, a execução em paralelo pode reduzir a eficácia geral da tarefa de otimização. Isto deve-se ao facto de o ajuste de hiperparâmetros usar os resultados de tentativas anteriores para informar os valores a atribuir aos hiperparâmetros de tentativas subsequentes. Quando são executadas em paralelo, algumas avaliações começam sem ter a vantagem dos resultados de quaisquer avaliações ainda em execução.
Se usar experiências paralelas, o serviço de otimização de hiperparâmetros aprovisiona vários clusters de processamento de preparação (ou várias máquinas individuais no caso de um preparador de processo único). A especificação do conjunto de tarefas que define para a sua tarefa é usada para cada cluster de preparação individual.
Resolva falhas nas avaliações
Se as tentativas de otimização de hiperparâmetros terminarem com erros, é recomendável terminar a tarefa de preparação antecipadamente. Defina o campo maxFailedTrialCount
no HyperparameterTuningJob para o número de testes falhados que quer permitir. Após este número de tentativas falhadas, o Vertex AI
termina a tarefa de preparação. O valor de maxFailedTrialCount
tem de ser igual ou inferior a maxTrialCount
.
Se não definir maxFailedTrialCount
ou se o definir como 0
, o Vertex AI usa as seguintes regras para processar testes com falhas:
- Se a primeira tentativa da tarefa falhar, o Vertex AI termina a tarefa imediatamente. A falha durante a primeira tentativa sugere um problema no seu código de preparação, pelo que é provável que as tentativas adicionais também falhem. Terminar a tarefa permite-lhe diagnosticar o problema sem esperar por mais testes e incorrer em custos mais elevados.
- Se a primeira tentativa for bem-sucedida, o Vertex AI pode terminar a tarefa após falhas durante as tentativas subsequentes com base num dos seguintes critérios:
- O número de tentativas falhadas aumentou demasiado.
- A proporção de tentativas falhadas em relação a tentativas bem-sucedidas aumentou demasiado.
Estas regras estão sujeitas a alterações. Para garantir um comportamento específico,
defina o campo maxFailedTrialCount
.
Faça a gestão de tarefas de hiperaperfeiçoamento dos parâmetros
As secções seguintes descrevem como gerir as tarefas de ajuste de hiperparâmetros.
Obtenha informações sobre uma tarefa de hiperaperfeiçoamento dos parâmetros
Os seguintes exemplos de código demonstram como obter uma tarefa de ajuste de hiperparâmetros.
gcloud
Use o comando gcloud ai hp-tuning-jobs describe
:
gcloud ai hp-tuning-jobs describe ID_OR_NAME \
--region=LOCATION
Substitua o seguinte:
ID_OR_NAME
: o nome ou o ID numérico doHyperparameterTuningJob
. (O ID é a última parte do nome.)Pode ter visto o ID ou o nome quando criou o
HyperparameterTuningJob
. Se não souber o ID nem o nome, pode executar o comandogcloud ai hp-tuning-jobs list
e procurar o recurso adequado.LOCATION
: a região onde oHyperparameterTuningJob
foi criado.
REST
Use o seguinte exemplo de código para obter uma tarefa de ajuste de hiperparâmetros através do método get
do recurso hyperparameterTuningJob
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
LOCATION
: a região onde oHyperparameterTuningJob
foi criado. - NAME: o nome da tarefa de hiperaperfeiçoamento dos parâmetros. O nome da tarefa usa o seguinte
formato
projects/{project}/LOCATIONS/{LOCATION}/hyperparameterTuningJobs/{hyperparameterTuningJob}
.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/NAME
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/12345/LOCATIONs/us-central1/hyperparameterTuningJobs/6789", "displayName": "my-hyperparameter-tuning-job", "studySpec": { "metrics": [ { "metricId": "my_metric", "goal": "MINIMIZE" } ], "parameters": [ { "parameterId": "my_parameter", "doubleValueSpec": { "minValue": 1e-05, "maxValue": 1 } } ] }, "maxTrialCount": 3, "parallelTrialCount": 1, "trialJobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": "n1-standard-4" }, "replicaCount": "1", "pythonPackageSpec": { "executorImageUri": "us-docker.pkg.dev/vertex-ai/training/training-tf-cpu.2-1:latest", "packageUris": [ "gs://my-bucket/my-training-application/trainer.tar.bz2" ], "pythonModule": "my-trainer.trainer" } } ] }, "trials": [ { "id": "2", "state": "SUCCEEDED", "parameters": [ { "parameterId": "my_parameter", "value": 0.71426874725564571 } ], "finalMeasurement": { "stepCount": "2", "metrics": [ { "metricId": "my_metric", "value": 0.30007445812225342 } ] }, "startTime": "2020-09-09T23:39:15.549112551Z", "endTime": "2020-09-09T23:47:08Z" }, { "id": "3", "state": "SUCCEEDED", "parameters": [ { "parameterId": "my_parameter", "value": 0.3078893356622992 } ], "finalMeasurement": { "stepCount": "2", "metrics": [ { "metricId": "my_metric", "value": 0.30000102519989014 } ] }, "startTime": "2020-09-09T23:49:22.451699360Z", "endTime": "2020-09-09T23:57:15Z" }, { "id": "1", "state": "SUCCEEDED", "parameters": [ { "parameterId": "my_parameter", "value": 0.500005 } ], "finalMeasurement": { "stepCount": "2", "metrics": [ { "metricId": "my_metric", "value": 0.30005377531051636 } ] }, "startTime": "2020-09-09T23:23:12.283374629Z", "endTime": "2020-09-09T23:36:56Z" } ], "state": "JOB_STATE_SUCCEEDED", "createTime": "2020-09-09T23:22:31.777386Z", "startTime": "2020-09-09T23:22:34Z", "endTime": "2020-09-10T01:31:24.271307Z", "updateTime": "2020-09-10T01:31:24.271307Z" }
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Cancele uma tarefa de hiperaperfeiçoamento de parâmetros
Os seguintes exemplos de código demonstram como cancelar uma tarefa de ajuste de hiperparâmetros.
gcloud
Use o comando gcloud ai hp-tuning-jobs cancel
:
gcloud ai hp-tuning-jobs cancel ID_OR_NAME \
--region=LOCATION
Substitua o seguinte:
ID_OR_NAME
: o nome ou o ID numérico doHyperparameterTuningJob
. (O ID é a última parte do nome.)Pode ter visto o ID ou o nome quando criou o
HyperparameterTuningJob
. Se não souber o ID nem o nome, pode executar o comandogcloud ai hp-tuning-jobs list
e procurar o recurso adequado.LOCATION
: a região onde oHyperparameterTuningJob
foi criado.
REST
Use o seguinte exemplo de código para cancelar uma tarefa de ajuste de hiperparâmetros através do método cancel
do recurso hyperparameterTuningJob
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
LOCATION
: a região onde oHyperparameterTuningJob
foi criado. - NAME: o nome da tarefa de hiperaperfeiçoamento dos parâmetros. O nome da tarefa usa o seguinte
formato
projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameterTuningJob}
.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/NAME:cancel
Para enviar o seu pedido, expanda uma destas opções:
Deve receber um código de estado de êxito (2xx) e uma resposta vazia.
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Elimine uma tarefa de aperfeiçoamento de hiperparâmetros
Os exemplos de código seguintes demonstram como eliminar uma tarefa de ajuste de hiperparâmetros usando o SDK Vertex AI para Python e a API REST.
REST
Use o seguinte exemplo de código para eliminar uma tarefa de ajuste de hiperparâmetros através do método delete
do recurso hyperparameterTuningJob
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a sua região.
- NAME: o nome da tarefa de hiperaperfeiçoamento dos parâmetros. O nome da tarefa usa o seguinte
formato
projects/{project}/LOCATIONs/{LOCATION}/hyperparameterTuningJobs/{hyperparameterTuningJob}
.
Método HTTP e URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1/NAME
Para enviar o seu pedido, expanda uma destas opções:
Deve receber um código de estado de êxito (2xx) e uma resposta vazia.
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
O que se segue?
- Saiba mais acerca dos conceitos envolvidos no ajuste dos hiperparâmetros.
- Saiba como agendar tarefas de preparação personalizadas com base na disponibilidade de recursos.