Entrena un modelo de AutoML Edge con la API de Vertex AI

Puedes crear un modelo de AutoML directamente en la consola de Google Cloud o crear una canalización de entrenamiento de manera programática mediante la API de o una de las bibliotecas cliente de Vertex AI.

Este modelo se crea con un conjunto de datos preparado que proporcionas a través de la consola o la API. La API de Vertex AI usa los elementos del conjunto de datos para entrenar el modelo, probarlo y evaluar su rendimiento. Revisa los resultados de la evaluación, ajusta el conjunto de datos de entrenamiento según sea necesario y crea un trabajo de entrenamiento nuevo con el conjunto de datos mejorado.

El entrenamiento de modelos puede tardar varias horas en completarse. La API de Vertex AI te permite obtener el estado del entrenamiento.

Crea una canalización de entrenamiento de AutoML Edge

Cuando tienes un conjunto de datos con un conjunto representativo de elementos de entrenamiento, estás listo para crear una canalización de entrenamiento de AutoML Edge.

Selecciona un tipo de datos.

Imagen

A continuación, selecciona la pestaña para tu objetivo:

Clasificación

Durante el entrenamiento, puedes elegir el tipo de modelo de AutoML Edge que desees, según tu caso de uso específico:

  • Latencia baja (MOBILE_TF_LOW_LATENCY_1)
  • Uso general (MOBILE_TF_VERSATILE_1)
  • Mayor calidad de predicción (MOBILE_TF_HIGH_ACCURACY_1)

Selecciona la pestaña correspondiente a tu idioma o entorno:

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: Región en la que se encuentra el conjunto de datos y se crea el modelo. Por ejemplo, us-central1.
  • PROJECT: ID del proyecto
  • TRAININGPIPELINE_DISPLAYNAME: Obligatorio. Un nombre visible para trainingPipeline.
  • DATASET_ID: El número de ID del conjunto de datos que se usará para el entrenamiento.
  • fractionSplit: Opcional Una de las diversas opciones del AA posibles usa opciones de división para tus datos. En fractionSplit, los valores deben sumar 1. Por ejemplo:
    • {"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
  • MODEL_DISPLAYNAME*: Un nombre visible para el modelo subido (creado) por TrainingPipeline.
  • MODEL_DESCRIPTION*: Es una descripción del modelo.
  • modelToUpload.labels*: Cualquier conjunto de pares clave-valor para organizar tus modelos. Por ejemplo:
    • "env": "prod"
    • "nivel": "backend"
  • EDGE_MODELTYPE: El tipo de modelo de Edge que se entrenará. Las opciones son las siguientes:
    • MOBILE_TF_LOW_LATENCY_1
    • MOBILE_TF_VERSATILE_1
    • MOBILE_TF_HIGH_ACCURACY_1
  • NODE_HOUR_BUDGET: El costo de entrenamiento real será igual o menor a este valor. Para los modelos de Edge, el presupuesto debe ser de 1,000 a 100,000 milihoras de procesamiento de nodo (inclusive).
  • PROJECT_NUMBER: es el número de tu proyecto.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines

Cuerpo JSON de la solicitud:

{
  "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 tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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

La respuesta contiene información sobre las especificaciones y los TRAININGPIPELINE_ID.

Puedes obtener el estado del trabajo de trainingPipeline con el TRAININGPIPELINE_ID.

Clasificación

Durante el entrenamiento, puedes elegir el tipo de modelo de AutoML Edge que desees, según tu caso de uso específico:

  • Latencia baja (MOBILE_TF_LOW_LATENCY_1)
  • Uso general (MOBILE_TF_VERSATILE_1)
  • Mayor calidad de predicción (MOBILE_TF_HIGH_ACCURACY_1)

Selecciona la pestaña correspondiente a tu idioma o entorno:

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: Región en la que se encuentra el conjunto de datos y se crea el modelo. Por ejemplo, us-central1.
  • PROJECT: ID del proyecto
  • TRAININGPIPELINE_DISPLAYNAME: Obligatorio. Un nombre visible para trainingPipeline.
  • DATASET_ID: El número de ID del conjunto de datos que se usará para el entrenamiento.
  • fractionSplit: Opcional Una de las diversas opciones del AA posibles usa opciones de división para tus datos. En fractionSplit, los valores deben sumar 1. Por ejemplo:
    • {"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
  • MODEL_DISPLAYNAME*: Un nombre visible para el modelo subido (creado) por TrainingPipeline.
  • MODEL_DESCRIPTION*: Es una descripción del modelo.
  • modelToUpload.labels*: Cualquier conjunto de pares clave-valor para organizar tus modelos. Por ejemplo:
    • "env": "prod"
    • "nivel": "backend"
  • EDGE_MODELTYPE: El tipo de modelo de Edge que se entrenará. Las opciones son las siguientes:
    • MOBILE_TF_LOW_LATENCY_1
    • MOBILE_TF_VERSATILE_1
    • MOBILE_TF_HIGH_ACCURACY_1
  • NODE_HOUR_BUDGET: El costo de entrenamiento real será igual o menor a este valor. Para los modelos de Edge, el presupuesto debe ser de 1,000 a 100,000 milihoras de procesamiento de nodo (inclusive).
  • PROJECT_NUMBER: es el número de tu proyecto.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines

Cuerpo JSON de la solicitud:

{
  "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 tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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