En esta página, se describe cómo Vertex AI usa los conjuntos de entrenamiento, validación y prueba de tus datos para entrenar un modelo de AutoML, y cómo puedes controlar la forma en que se dividen tus datos entre estos tres conjuntos. AutoML usa divisiones de datos de manera diferente, según el tipo de datos de entrenamiento.
En esta página, se describen las divisiones de datos para los datos de imágenes. Si quieres obtener información sobre las divisiones de datos para los datos tabulares, consulta Divisiones de datos para datos tabulares.
En el caso de los conjuntos de datos de imágenes, AutoML usa el conjunto de entrenamiento para entrenar el modelo y el conjunto de validación a fin de validar los resultados que el modelo genera durante el entrenamiento. Cuando finaliza el entrenamiento, AutoML usa el conjunto de prueba para proporcionar las métricas de la evaluación final.
Puedes permitir que Vertex AI divida tus datos de forma automática. Tus datos se dividen al azar en los tres conjuntos a través del porcentaje. Esta es la forma más fácil de dividir los datos y funciona bien en la mayoría de los casos.
Establecer | Porcentaje |
---|---|
Capacitación | 80 |
Validación | 10 |
Prueba | 10 |
Para usar la división de datos predeterminada, acepta el valor predeterminado en la consola de Google Cloud o deja el campo división vacío para la API.
Si quieres controlar cómo se dividen tus datos en conjuntos, tienes las siguientes opciones:
Elige solo una de estas opciones; haz la elección cuando entrenes el modelo. Algunas de estas opciones requieren que se realicen cambios en los datos de entrenamiento (por ejemplo, la etiqueta ml_use
). Incluir datos o etiquetas para las opciones de división de datos no requiere el uso de estas opciones. Aún puedes elegir otra opción cuando entrenas tu modelo.
División manual para datos no estructurados
La división manual también se conoce como "división predefinida".
Para usar la etiqueta ml_use
a fin de controlar la división de datos, debes configurar la etiqueta ml_use
en tus datos.
Configura un valor para la etiqueta ml_use
Puedes establecer la etiqueta ml_use
para los datos de imagen en el momento de la importación de datos (por elemento de datos o para todo el archivo de importación) o después de la importación de datos con la consola de Google Cloud .
Establece ml_use en elementos de datos individuales en el momento de la importación
Configura la etiqueta ml_use
en cada elemento de datos si incluyes un valor para el campo aiplatform.googleapis.com/ml_use
en tus datos de líneas JSONL o estableces el valor de la primera columna del archivo CSV. Consulta la información sobre cómo preparar datos para tu tipo de datos a fin de obtener más detalles.
Si alguno de tus elementos de datos se repite en tus datos (si el mismo fragmento de imagen aparece varias veces en tu archivo de importación), Vertex AI usa el valor ml_use
para el primer elemento de datos que encuentre y, luego, ignora los valores ml_use
posteriores. El primer elemento encontrado no es necesariamente el elemento más cercano al principio del archivo de carga.
Configura ml_use para archivos de carga completos
Si tus datos se pueden ordenar en diferentes archivos de carga según el valor de ml_use
, puedes establecer el valor de ml_use
para todo el archivo de carga mediante el menú desplegable por archivo cuando subes archivos con la consola de Google Cloud o mediante el campo del mapa dataItemLabels
en el método datasets.import.
Si configuras ml_use
para un archivo de carga, y este también contiene valores ml_use
, los valores ml_use
del archivo tienen prioridad por sobre el valor del archivo completo.
Configura ml_use después de la importación
Después de subir los datos, puedes configurar o actualizar el valor ml_use
para los elementos de datos específicos en la Google Cloud consola. Para ello, selecciona uno o más elementos en la vista de lista y usa el menú desplegable Asignar uso del AA.
Si vuelves a subir un archivo de datos, incluso si los valores de ml_use cambiaron, no se actualizará el valor de ml_use
. No puedes actualizar los valores ml_use
después de la importación mediante el uso de la API de Vertex AI.
Usa la etiqueta ml_use
Cuando entrenes tu modelo, especifica Manual (Avanzado) para la división de datos en la consola de Google Cloud . Si entrenas con la API de Vertex AI, usa el objeto FilterSplit, que especifica labels.aiplatform.googleapis.com/ml_use=training
para el filtro de entrenamiento, labels.aiplatform.googleapis.com/ml_use=validation
para el filtro de validación y labels.aiplatform.googleapis.com/ml_use=test
para el filtro de prueba.
Por ejemplo:
model = job.run(
dataset=dataset,
model_display_name=_name,
training_filter_split="labels.aiplatform.googleapis.com/ml_use=training",
validation_filter_split="labels.aiplatform.googleapis.com/ml_use=validation",
test_filter_split="labels.aiplatform.googleapis.com/ml_use=test")
Los elementos de datos con un valor ml_use
se asignan al conjunto especificado. Los elementos de datos que no tengan el conjunto ml_use
se excluirán del proceso de entrenamiento.
División de filtro de datos
Puedes usar otras etiquetas (además de ml-use) y otros campos para dividir tus datos mediante el objeto FilterDivide en la API de Vertex AI. Por ejemplo, puedes configurar trainingFilter
como labels.flower=rose
, validationFilter
como labels.flower=daisy
y testFilter
como labels.flower=dahlia
. Este parámetro de configuración hace que todos los datos etiquetados como rose
se agreguen al conjunto de entrenamiento, que todos los datos etiquetados como daisy
se agreguen al conjunto de validación y que todos los datos etiquetados como dahlia
se agreguen al conjunto de prueba.
Si filtras datos en varios campos, un elemento de datos podría coincidir con más de un filtro. En este caso, el conjunto de entrenamiento tiene prioridad, seguido del conjunto de validación, seguido del conjunto de prueba. En otras palabras, un elemento se coloca en el conjunto de prueba solo si coincide con el filtro del conjunto de prueba, pero no coincide con los filtros de entrenamiento o validación. Si un elemento no coincide con los filtros de ninguno de los conjuntos, se excluye del entrenamiento.
No uses categorías para la división de datos relacionada con lo que predecirá el modelo; cada uno de tus conjuntos debe reflejar el rango de datos que usa el modelo para hacer predicciones. Por ejemplo, no uses los filtros descritos con anterioridad para un modelo que se espera que clasifique imágenes por tipo de flor.
Si no quieres que un filtro coincida con ningún elemento, configúralo como "-
" (el signo menos).
División matemática
La división matemática también se conoce como "división de fracción".
De forma predeterminada, tus datos se dividen al azar en los conjuntos, según los porcentajes predeterminados para tu tipo de datos. Puedes cambiar los porcentajes a valores cualquiera que sumen hasta 100 (para la API de Vertex AI, debes usar fracciones que sumen hasta 1.0).
Para cambiar los porcentajes (fracciones), usa el objeto FractionSplit para definir tus fracciones. Para los tipos de datos de imagen, también puedes usar la consola deGoogle Cloud para actualizar los porcentajes de división cuando entrenas tu modelo.