En esta página, se muestra cómo entrenar un modelo de reconocimiento de acciones de AutoML a partir de un conjunto de datos de video con la consola de Google Cloud o la API de Vertex AI.
Entrena un modelo de AutoML
Consola de Google Cloud
En la sección Vertex AI de la consola de Google Cloud, ve a la página Conjuntos de datos.
Haz clic en el nombre del conjunto de datos que deseas usar para entrenar tu modelo a fin de abrir su página de detalles.
Haga clic en Entrenar un modelo nuevo.
Ingresa el nombre visible de tu modelo nuevo.
Si deseas configurar el forma en que se dividen los datos de entrenamiento, expande Opciones avanzadas y selecciona una opción de división de datos. Obtenga más información.
Haz clic en Continuar.
Selecciona el método de entrenamiento de modelos.
AutoML
es una buena opción para una amplia gama de casos de uso.Seq2seq+
es una buena opción para experimentar. Es probable que el algoritmo converja más rápido queAutoML
porque su arquitectura es más simple y usa un espacio de búsqueda más pequeño. Nuestros experimentos demuestran que Seq2Seq+ funciona bien con un presupuesto pequeño y en conjuntos de datos de menos de 1 GB de tamaño.
Haga clic en Comenzar entrenamiento.
El entrenamiento de modelos puede tardar muchas horas, según el tamaño y la complejidad de tus datos y tu presupuesto de entrenamiento, si especificaste uno. Puedes cerrar esta pestaña y regresar a ella más tarde. Recibirás un correo electrónico cuando tu modelo haya finalizado el entrenamiento.
Varios minutos después de que comienza el entrenamiento, puedes verificar la estimación de la hora de procesamiento de nodo del entrenamiento con la información de las propiedades del modelo. Si cancelas el entrenamiento, no se aplicarán cargos por el producto actual.
API
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: El ID del proyecto.
- LOCATION: Región en la que se encuentra el conjunto de datos y se crea el modelo. Por ejemplo,
us-central1
. - TRAINING_PIPELINE_DISPLAY_NAME: Obligatorio. Un nombre visible para TrainingPipeline.
- DATASET_ID: ID del conjunto de datos de entrenamiento.
-
TRAINING_FRACTION, TEST_FRACTION: El objeto
fractionSplit
es opcional. La usas para controlar tu división de datos. Si deseas obtener más información a fin de controlar la división de datos, consulta Acerca de las divisiones de datos para los modelos de AutoML. Por ejemplo:{"trainingFraction": "0.8","validationFraction": "0","testFraction": "0.2"}
- MODEL_DISPLAY_NAME: Nombre visible del modelo entrenado
- MODEL_DESCRIPTION: Es una descripción del modelo.
- MODEL_LABELS: Cualquier conjunto de pares clave-valor para organizar los modelos. Por ejemplo:
- "env": "prod"
- "nivel": "backend"
- EDGE_MODEL_TYPE:
MOBILE_VERSATILE_1
: Uso general
- PROJECT_NUMBER: El número de proyecto de tu proyecto generado de forma automática
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines
Cuerpo JSON de la solicitud:
{ "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 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/beta1/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/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
La respuesta contiene información sobre las especificaciones y los TRAININGPIPELINE_ID.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Controla la división de datos mediante REST
Puedes controlar cómo se dividen los datos de entrenamiento entre los conjuntos de entrenamiento, validación y prueba. Cuando uses la API de Vertex AI, usa el objeto Split
para determinar la división de datos. El objeto Split
se puede incluir en el objeto InputConfig
como uno de varios tipos de objeto, cada uno de los cuales proporciona una forma diferente de dividir los datos de entrenamiento. Puedes seleccionar solo un método.
-
FractionSplit
:- TRAINING_FRACTION: La fracción de los datos de entrenamiento que se usarán para el conjunto de entrenamiento.
- VALIDATION_FRACTION: La fracción de los datos de entrenamiento que se usarán para el conjunto de validación. No se usa para datos de video.
- TEST_FRACTION: La fracción de los datos de entrenamiento que se usarán para el conjunto de prueba.
Si se especifican cualquiera de las fracciones, se deben especificar todas. Las fracciones deben sumar hasta 1.0. Los valores predeterminados para las fracciones difieren según tu tipo de datos. Obtenga más información.
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
: - TRAINING_FILTER: los elementos de datos que coinciden con este filtro se usan para el conjunto de entrenamiento.
- VALIDATION_FILTER: los elementos de datos que coinciden con este filtro se usan para el conjunto de validación. Debe ser “-” para los datos de video.
- TEST_FILTER: los elementos de datos que coinciden con este filtro se usan para el conjunto de prueba.
Estos filtros se pueden usar con la etiqueta ml_use
o con cualquier etiqueta que apliques a tus datos. Obtén más información sobre cómo usar la etiqueta de ml-use y otras etiquetas a fin de filtrar tus datos.
En el siguiente ejemplo, se muestra cómo usar el objeto filterSplit
con la etiqueta ml_use
, con el conjunto de validación incluido:
"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" }