Como treinar um modelo do AutoML Edge usando a API Vertex AI

Crie um modelo de AutoML diretamente no console do Google Cloud ou criando um pipeline de treinamento de forma programática, usando a API ou um dos métodos Vertex Bibliotecas de cliente da IA.

Esse modelo é criado usando um conjunto de dados preparado fornecido por você por meio do console ou da API. A API Vertex AI usa os itens do conjunto de dados para treinar o modelo, testá-lo e avaliar o desempenho dele. Analise os resultados das avaliações, ajuste o conjunto de dados de treinamento conforme necessário e crie um novo pipeline de treinamento usando o conjunto de dados aprimorado.

O treinamento do modelo leva horas para ser concluído. A API Vertex IA permite que você consiga o status do treinamento.

Criar um pipeline de treinamento do AutoML Edge

Quando você tiver um conjunto de dados com um conjunto representativo de itens de treinamento, estará pronto para criar um pipeline de treinamento do AutoML Edge.

Selecione um tipo de dados.

Image

Selecione a guia abaixo para seu objetivo:

Classificação

No momento do treinamento, é possível escolher o tipo de modelo do AutoML Edge desejado, dependendo do caso de uso específico:

  • Baixa latência (MOBILE_TF_LOW_LATENCY_1)
  • Uso geral (MOBILE_TF_VERSATILE_1)
  • Maior qualidade de previsão (MOBILE_TF_HIGH_ACCURACY_1)

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: o ID do projeto
  • 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. Para fractionSplit, 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"
  • EDGE_MODELTYPE: o tipo de modelo do Edge a ser treinado. As opções são:
    • MOBILE_TF_LOW_LATENCY_1
    • MOBILE_TF_VERSATILE_1
    • MOBILE_TF_HIGH_ACCURACY_1
  • NODE_HOUR_BUDGET: o custo de treinamento real será igual ou menor que este valor. Para modelos Edge, o orçamento precisa ser de 1.000 a 100.000 horas de nó (inclusive).
  • PROJECT_NUMBER: número do projeto para o seu projeto

Método HTTP e URL:

POST http://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": ["EDGE_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 a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://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 "http://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.

Veja o status do job trainingPipeline usando o TRAININGPIPELINE_ID.

Classificação

No momento do treinamento, é possível escolher o tipo de modelo do AutoML Edge desejado, dependendo do caso de uso específico:

  • Baixa latência (MOBILE_TF_LOW_LATENCY_1)
  • Uso geral (MOBILE_TF_VERSATILE_1)
  • Maior qualidade de previsão (MOBILE_TF_HIGH_ACCURACY_1)

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: o ID do projeto
  • 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. Para fractionSplit, 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"
  • EDGE_MODELTYPE: o tipo de modelo do Edge a ser treinado. As opções são:
    • MOBILE_TF_LOW_LATENCY_1
    • MOBILE_TF_VERSATILE_1
    • MOBILE_TF_HIGH_ACCURACY_1
  • NODE_HOUR_BUDGET: o custo de treinamento real será igual ou menor que este valor. Para modelos Edge, o orçamento precisa ser de 1.000 a 100.000 horas de nó (inclusive).
  • PROJECT_NUMBER: número do projeto para o seu projeto

Método HTTP e URL:

POST http://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": ["EDGE_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 a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://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 "http://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.

Veja o status do job trainingPipeline usando o TRAININGPIPELINE_ID.

Detecção de objetos

No momento do treinamento, é possível escolher o tipo de modelo do AutoML Edge desejado, dependendo do caso de uso específico:

  • Baixa latência (MOBILE_TF_LOW_LATENCY_1)
  • Uso geral (MOBILE_TF_VERSATILE_1)
  • Maior qualidade de previsão (MOBILE_TF_HIGH_ACCURACY_1)

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: o ID do projeto
  • 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. Para fractionSplit, 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"
  • EDGE_MODELTYPE: o tipo de modelo do Edge a ser treinado. As opções são:
    • MOBILE_TF_LOW_LATENCY_1
    • MOBILE_TF_VERSATILE_1
    • MOBILE_TF_HIGH_ACCURACY_1
  • NODE_HOUR_BUDGET: o custo de treinamento real será igual ou menor que este valor. Para modelos de nuvem, o orçamento precisa ser de 20.000 a 900 mil horas de nó (inclusive). O valor padrão é 216.000, o que representa um dia em tempo decorrido, desde que nove nós sejam usados.
  • PROJECT_NUMBER: número do projeto para o seu projeto

Método HTTP e URL:

POST http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipeli