Saiba nesta página como treinar um modelo de reconhecimento de ação do AutoML em um conjunto de dados de vídeo usando o console do Google Cloud ou a API Vertex AI.
Treinar um modelo do AutoML
Console do Google Cloud
No Console do Google Cloud, na seção da Vertex AI, acesse a página Conjuntos de dados.
Clique no nome do conjunto de dados que você quer usar para treinar seu modelo para abrir a página de detalhes.
Clique em Treinar novo modelo.
Digite o nome de exibição do novo modelo.
Se você quiser definir manualmente como os dados de treinamento são divididos, expanda as Opções avançadas e selecione uma opção de divisão de dados. Saiba mais
Clique em Continuar.
Selecione o método de treinamento do modelo.
- A
AutoML
é uma boa escolha para vários casos de uso. Seq2seq+
é uma boa opção para experimentação. O algoritmo provavelmente terá uma convergência mais rápida do que oAutoML
, porque a arquitetura dele é mais simples e usa um espaço de pesquisa menor. Nossos experimentos descobriram que o Seq2Seq+ tem um bom desempenho com um orçamento pequeno e com conjuntos de dados menores do que 1 GB.
- A
Clique em Iniciar treinamento.
O treinamento do modelo pode levar muitas horas dependendo do tamanho e da complexidade dos dados, além do orçamento de treinamento, se você tiver especificado um. Você pode fechar essa guia e voltar a ela mais tarde. Você receberá um e-mail quando o treinamento do seu modelo for concluído.
Alguns minutos após o início do treinamento, é possível verificar a estimativa de hora do nó de treinamento a partir das informações de propriedade do modelo. Se você cancelar o treinamento, não haverá cobrança sobre o produto atual.
API
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT: o ID do projeto.
- LOCATION: região em que o conjunto de dados está localizado e o modelo é criado. Por exemplo,
us-central1
. - TRAINING_PIPELINE_DISPLAY_NAME: obrigatório. Um nome de exibição para o TrainingPipeline.
- DATASET_ID: ID do conjunto de dados de treinamento;
-
TRAINING_FRACTION, TEST_FRACTION: o objeto
fractionSplit
é opcional; É usada para controlar a divisão de dados. Para mais informações sobre como controlar a divisão de dados, consulte Sobre divisões de dados para modelos do AutoML. Por exemplo:{"trainingFraction": "0.8","validationFraction": "0","testFraction": "0.2"}
- MODEL_DISPLAY_NAME: nome de exibição do modelo treinado.
- MODEL_DESCRIPTION: uma descrição para o modelo.
- MODEL_LABELS: qualquer conjunto de pares de chave-valor para organizar os modelos. Por exemplo:
- "env": "prod"
- "tier": "backend"
- EDGE_MODEL_TYPE:
MOBILE_VERSATILE_1
: uso geral
- PROJECT_NUMBER: o número do projeto gerado automaticamente
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON da solicitação:
{ "displayName": "TRAINING_PIPELINE_DISPLAY_NAME", "inputDataConfig": { "datasetId": "DATASET_ID", "fractionSplit": { "trainingFraction": "TRAINING_FRACTION", "validationFraction": "0", "testFraction": "TEST_FRACTION" } }, "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME", "description": "MODEL_DESCRIPTION", "labels": { "KEY": "VALUE" } }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "trainingTaskInputs": { "modelType": ["EDGE_MODEL_TYPE"], } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
A resposta contém informações sobre especificações, bem como o TRAININGPIPELINE_ID.
Java
Antes de testar esse exemplo, siga as instruções de configuração para Java no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Java.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Controlar a divisão de dados usando REST
É possível controlar como os dados de treinamento são divididos entre os conjuntos de
treinamento, validação e teste. Ao usar a API Vertex AI, use o Split
objeto para determinar a divisão de dados. O objeto Split
pode ser incluído no objeto InputConfig
como um dos vários tipos de objeto, cada um fornecendo uma maneira diferente de
dividir os dados de treinamento. É possível selecionar apenas um método.
-
FractionSplit
:- TRAINING_FRACTION: a fração dos dados de treinamento a ser usada para o conjunto de treinamento.
- VALIDATION_FRACTION: a fração dos dados de treinamento a ser usada para o conjunto de validação. Não usada para dados de vídeo.
- TEST_FRACTION: a fração dos dados de treinamento a ser usada para o conjunto de teste.
Se alguma das frações for especificada, tudo deverá ser especificado. As frações precisam ser adicionadas a 1,0. Os valores padrão das frações variam de acordo com o tipo de dados. Saiba mais
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
: - TRAINING_FILTER: itens de dados que correspondem a esse filtro são usados no conjunto de treinamento.
- VALIDATION_FILTER: os itens de dados que correspondem a esse filtro são usados no conjunto de validação. Precisa ser "-" para dados de vídeo.
- TEST_FILTER: os itens de dados que correspondem a esse filtro são usados no conjunto de teste.
Esses filtros podem ser usados com o rótulo ml_use
ou com qualquer rótulo aplicado aos seus dados. Saiba mais sobre como usar
o rótulo ml-use label
e outros rótulos
para filtrar os dados.
O exemplo a seguir mostra como usar o objeto
filterSplit
com o rótulo ml_use
, com o conjunto de validação
incluído:
"filterSplit": { "trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training", "validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation", "testFilter": "labels.aiplatform.googleapis.com/ml_use=test" }