Esta página mostra como preparar um modelo de classificação do AutoML a partir de um conjunto de dados de imagens usando a Google Cloud consola ou a API Vertex AI.
Prepare um modelo do AutoML
Google Cloud consola
Na Google Cloud consola, na secção Vertex AI, aceda à página Conjuntos de dados.
Clique no nome do conjunto de dados que quer usar para formar o modelo e abrir a respetiva página de detalhes.
Clique em Formar novo modelo.
Para o método de preparação, selecione
AutoML.Clique em Continuar.
Introduza um nome para o modelo.
Se quiser definir manualmente a forma como os dados de preparação são divididos, expanda as Opções avançadas e selecione uma opção de divisão de dados. Saiba mais.
Clique em Iniciar preparação.
A preparação do modelo pode demorar muitas horas, consoante a dimensão e a complexidade dos seus dados e o orçamento de preparação, se tiver especificado um. Pode fechar este separador e regressar a ele mais tarde. Vai receber um email quando o modelo tiver concluído o treino.
API
Selecione o separador abaixo para o seu objetivo:
Classificação
Selecione o separador abaixo para o seu idioma ou ambiente:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: região onde o conjunto de dados está localizado e o modelo é criado. Por exemplo,
us-central1
. - PROJECT: o seu ID do projeto.
- TRAININGPIPELINE_DISPLAYNAME: obrigatório. Um nome a apresentar para o trainingPipeline.
- DATASET_ID: o número de ID do conjunto de dados a usar para a preparação.
fractionSplit
: opcional. Uma das várias opções possíveis de divisão de utilização da AA para os seus dados. ParafractionSplit
, os valores têm de somar 1. Por exemplo:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*: Um nome a apresentar para o modelo carregado (criado) pela TrainingPipeline.
- MODEL_DESCRIPTION*: uma descrição do modelo.
- modelToUpload.labels*: qualquer conjunto de pares de chave-valor para organizar os seus modelos. Por exemplo:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†: o tipo de modelo alojado na nuvem a preparar. As opções
são:
CLOUD
(predefinição)
- NODE_HOUR_BUDGET†: O custo de preparação real será igual ou inferior a este valor. Para modelos na nuvem, o orçamento tem de ser: 8000 a 800 000 milihoras de nó (inclusive). O valor predefinido é 192 000,o que representa um dia em tempo real, partindo do princípio de que são usados 8 nós.
- PROJECT_NUMBER: o número do projeto gerado automaticamente do seu projeto
* | A descrição do ficheiro de esquema especificada em trainingTaskDefinition descreve a utilização deste campo. |
† | O ficheiro de esquema que especificar em trainingTaskDefinition declara e descreve este campo. |
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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 as especificações, bem como o TRAININGPIPELINE_ID.
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.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruçõ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 Node.js 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.
Classificação
Selecione o separador abaixo para o seu idioma ou ambiente:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: região onde o conjunto de dados está localizado e o modelo é criado. Por exemplo,
us-central1
. - PROJECT: .
- TRAININGPIPELINE_DISPLAYNAME: obrigatório. Um nome a apresentar para o trainingPipeline.
- DATASET_ID: o número de ID do conjunto de dados a usar para a preparação.
fractionSplit
: opcional. Uma das várias opções possíveis de divisão de utilização da AA para os seus dados. ParafractionSplit
, os valores têm de somar 1. Por exemplo:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*: Um nome a apresentar para o modelo carregado (criado) pela TrainingPipeline.
- MODEL_DESCRIPTION*: uma descrição do modelo.
- modelToUpload.labels*: qualquer conjunto de pares de chave-valor para organizar os seus modelos. Por exemplo:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†: o tipo de modelo alojado na nuvem a preparar. As opções
são:
CLOUD
(predefinição)
- NODE_HOUR_BUDGET†: O custo de preparação real será igual ou inferior a este valor. Para modelos na nuvem, o orçamento tem de ser: 8000 a 800 000 milihoras de nó (inclusive). O valor predefinido é 192 000,o que representa um dia em tempo real, partindo do princípio de que são usados 8 nós.
- PROJECT_NUMBER: o número do projeto gerado automaticamente do seu projeto
* | A descrição do ficheiro de esquema especificada em trainingTaskDefinition descreve a utilização deste campo. |
† | O ficheiro de esquema que especificar em trainingTaskDefinition declara e descreve este campo. |
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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 as especificações, bem como o TRAININGPIPELINE_ID.
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.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruçõ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 Node.js 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.
Controle a divisão de dados através de REST
Pode controlar a forma como os dados de preparação são divididos entre os conjuntos de preparação, validação e teste. Quando usar a API Vertex AI, use o objeto Split
para determinar a divisão dos dados. O objeto Split
pode ser incluído no objeto InputConfig
como um de vários tipos de objetos, cada um dos quais oferece uma forma diferente de dividir os dados de preparação. Só pode selecionar um método.
-
FractionSplit
:- TRAINING_FRACTION: a fração dos dados de preparação a usar para o conjunto de preparação.
- VALIDATION_FRACTION: a fração dos dados de preparação a usar para o conjunto de validação. Não é usado para dados de vídeo.
- TEST_FRACTION: a fração dos dados de preparação a usar para o conjunto de testes.
Se alguma das frações for especificada, todas têm de ser especificadas. As frações têm de totalizar 1,0. Os valores predefinidos para as frações variam consoante o tipo de dados. Saiba mais.
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
: - TRAINING_FILTER: os itens de dados que correspondem a este filtro são usados para o conjunto de preparação.
- VALIDATION_FILTER: os itens de dados que correspondem a este filtro são usados para o conjunto de validação. Tem de ser "-" para dados de vídeo.
- TEST_FILTER: os itens de dados que correspondem a este filtro são usados para o conjunto de testes.
Pode usar estes filtros com a etiqueta ml_use
ou com quaisquer etiquetas que aplique aos seus dados. Saiba mais sobre a utilização da
etiqueta ml-use
e de outras etiquetas
para filtrar os seus dados.
O exemplo seguinte mostra como usar o objeto filterSplit
com a etiqueta 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" }