Nesta página, mostramos como treinar um modelo de classificação do AutoML em um conjunto de dados de imagem usando o console Google Cloud ou a API Agent Platform.
Treinar um modelo do AutoML
Console do Google Cloud
No Google Cloud console, na seção "Plataforma de agente", 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.
Para o método de treinamento, selecione o AutoML.
Clique em Continuar.
Dê um nome para o 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 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.
API
Selecione a guia abaixo para seu objetivo:
Classificação
Selecione a guia abaixo para seu idioma ou ambiente:
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: região em que o conjunto de dados está localizado e o modelo é criado. Por exemplo,
us-central1. - PROJECT: seu [ID do projeto](/resource-manager/docs/creating-managing-projects#identifiers). .
- TRAININGPIPELINE_DISPLAYNAME: obrigatório. Um nome de exibição do trainingPipeline.
- DATASET_ID: o número do ID do conjunto de dados a ser usado para treinamento.
fractionSplit: opcional. Um dos vários modelos de ML possíveis pode usar opções de divisão para os dados. ParafractionSplit, os valores precisam somar 1. Por exemplo:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*: um nome de exibição do modelo enviado (criado) pelo TrainingPipeline.
- MODEL_DESCRIPTION*: uma descrição para o modelo.
- modelToUpload.labels*: qualquer conjunto de pares de chave-valor para organizar seus modelos. Por exemplo:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†: o tipo de modelo hospedado na nuvem a ser treinado. As opções
são:
CLOUD(padrão)
- NODE_HOUR_BUDGET†: o custo de treinamento real será igual ou menor que este valor. Para modelos em nuvem, o orçamento precisa ser de 8.000 a 800.000 mil horas de uso do nó (inclusive). O valor padrão é 192.000, o que representa um dia em tempo decorrido, desde que oito nós sejam usados.
- PROJECT_NUMBER: o número do projeto gerado automaticamente
| * | A descrição do arquivo de esquema que você especifica em trainingTaskDefinition descreve o uso deste campo. |
| † | O arquivo de esquema especificado em trainingTaskDefinition declara e descreve esse campo. |
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON da solicitação:
{
"displayName": "TRAININGPIPELINE_DISPLAYNAME",
"inputDataConfig": {
"datasetId": "DATASET_ID",
"fractionSplit": {
"trainingFraction": "DECIMAL",
"validationFraction": "DECIMAL",
"testFraction": "DECIMAL"
}
},
"modelToUpload": {
"displayName": "MODEL_DISPLAYNAME",
"description": "MODEL_DESCRIPTION",
"labels": {
"KEY": "VALUE"
}
},
"trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_classification_1.0.0.yaml",
"trainingTaskInputs": {
"multiLabel": "false",
"modelType": ["MODELTYPE"],
"budgetMilliNodeHours": NODE_HOUR_BUDGET
}
}
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 abaixo:
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/v1/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/v1/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 esta amostra, siga as instruções de configuração do Java no Guia de início rápido da plataforma de agentes: como usar bibliotecas de cliente.
Para autenticar na plataforma de agentes, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido da plataforma de agentes: como usar bibliotecas de cliente.
Para autenticar na plataforma de agentes, 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.
Classificação
Selecione a guia abaixo para seu idioma ou ambiente:
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: região em que o conjunto de dados está localizado e o modelo é criado. Por exemplo,
us-central1. - PROJECT: .
- TRAININGPIPELINE_DISPLAYNAME: obrigatório. Um nome de exibição do trainingPipeline.
- DATASET_ID: o número do ID do conjunto de dados a ser usado para treinamento.
fractionSplit: opcional. Um dos vários modelos de ML possíveis pode usar opções de divisão para os dados. ParafractionSplit, os valores precisam somar 1. Por exemplo:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*: um nome de exibição do modelo enviado (criado) pelo TrainingPipeline.
- MODEL_DESCRIPTION*: uma descrição para o modelo.
- modelToUpload.labels*: qualquer conjunto de pares de chave-valor para organizar seus modelos. Por exemplo:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†: o tipo de modelo hospedado na nuvem a ser treinado. As opções
são:
CLOUD(padrão)
- NODE_HOUR_BUDGET†: o custo de treinamento real será igual ou menor que este valor. Para modelos em nuvem, o orçamento precisa ser de 8.000 a 800.000 mil horas de uso do nó (inclusive). O valor padrão é 192.000, o que representa um dia em tempo decorrido, desde que oito nós sejam usados.
- PROJECT_NUMBER: o número do projeto gerado automaticamente
| * | A descrição do arquivo de esquema que você especifica em trainingTaskDefinition descreve o uso deste campo. |
| † | O arquivo de esquema especificado em trainingTaskDefinition declara e descreve esse campo. |
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON da solicitação:
{
"displayName": "TRAININGPIPELINE_DISPLAYNAME",
"inputDataConfig": {
"datasetId": "DATASET_ID",
"fractionSplit": {
"trainingFraction": "DECIMAL",
"validationFraction": "DECIMAL",
"testFraction": "DECIMAL"
}
},
"modelToUpload": {
"displayName": "MODEL_DISPLAYNAME",
"description": "MODEL_DESCRIPTION",
"labels": {
"KEY": "VALUE"
}
},
"trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_classification_1.0.0.yaml",
"trainingTaskInputs": {
"multiLabel": "true",
"modelType": ["MODELTYPE"],
"budgetMilliNodeHours": NODE_HOUR_BUDGET
}
}
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 abaixo:
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/v1/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/v1/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 esta amostra, siga as instruções de configuração do Java no Guia de início rápido da plataforma de agentes: como usar bibliotecas de cliente.
Para autenticar na plataforma de agentes, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido da plataforma de agentes: como usar bibliotecas de cliente.
Para autenticar na plataforma de agentes, 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 Agent Platform, use o
objeto Split 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"
}