En esta página se describe cómo usa Vertex AI los conjuntos de datos de entrenamiento, validación y prueba para entrenar un modelo de AutoML, así como las formas en las que puedes controlar cómo se dividen tus datos entre estos tres conjuntos. AutoML usa las divisiones de datos de forma diferente en función del tipo de datos de los datos de entrenamiento.
En esta página se describen las divisiones de datos de imágenes. Para obtener información sobre las divisiones de datos tabulares, consulta Divisiones de 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 para validar los resultados que devuelve el modelo durante el entrenamiento. Cuando se completa el entrenamiento, AutoML usa el conjunto de datos de prueba para proporcionar las métricas de evaluación finales.
Puedes dejar que Vertex AI divida tus datos automáticamente. Tus datos se dividen aleatoriamente en los tres conjuntos por porcentaje. Es la forma más sencilla de dividir los datos y funciona bien en la mayoría de los casos.
Definida | Porcentaje |
---|---|
Formación | 80 |
Validación | 10 |
Prueba | 10 |
Para usar la división de datos predeterminada, acepta el valor predeterminado en la Google Cloud consola o deja el campo split vacío en la API.
Si quieres controlar cómo se dividen tus datos en conjuntos, tienes las siguientes opciones:
Elige solo una de estas opciones cuando entrenes tu modelo. Algunas de estas opciones requieren que se modifiquen los datos de entrenamiento (por ejemplo, la etiqueta ml_use
). Si incluyes datos o etiquetas para las opciones de división de datos, no es obligatorio que uses esas opciones. Puedes elegir otra opción cuando entrenes tu modelo.
División manual de datos sin estructurar
La división manual también se conoce como "división predefinida".
Para usar la etiqueta ml_use
y controlar la división de tus datos, debes definir la etiqueta ml_use
en tus datos.
Definir un valor para la etiqueta ml_use
Puedes definir 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 mediante la consola Google Cloud .
Definir ml_use en elementos de datos concretos en el momento de la importación
Asigna la etiqueta ml_use
a cada elemento de datos incluyendo un valor para el campo aiplatform.googleapis.com/ml_use
en los datos JSON Lines o definiendo el valor de la primera columna del archivo CSV. Consulta la información sobre cómo preparar los datos para tu tipo de datos para obtener más detalles.
Si alguno de sus elementos de datos se repite en sus datos (si el mismo fragmento de imagen aparece varias veces en su archivo de importación), Vertex AI usa el valor ml_use
del primer elemento de datos que encuentra e ignora los valores ml_use
posteriores. El primer elemento encontrado no es necesariamente el que está más cerca del principio del archivo de subida.
Definir ml_use para todos los archivos de subida
Si sus datos se pueden clasificar en diferentes archivos de subida por valor de ml_use
, puede definir el valor de ml_use
de todo el archivo de subida mediante el menú desplegable por archivo cuando suba archivos con la Google Cloud consola o mediante el campo de asignación dataItemLabels
en el método datasets.import.
Si define ml_use
en un archivo de subida y el archivo también contiene valores de ml_use
, estos valores tienen prioridad sobre el valor de todo el archivo.ml_use
Definir ml_use después de la importación
Una vez que haya subido los datos, puede definir o actualizar el valor de ml_use
para elementos de datos específicos en la Google Cloud consola. Para ello, seleccione uno o varios elementos en la vista de lista y use el menú desplegable Asignar uso de aprendizaje automático.
Si vuelves a subir un archivo de datos, aunque los valores de ml_use hayan cambiado, no se actualizará el valor de ml_use
. No puedes actualizar los valores de ml_use
después de la importación mediante la API de Vertex AI.
Usar la etiqueta ml_use
Cuando entrenes tu modelo, selecciona Manual (Advanced) (Manual [Avanzado]) en la opción Data split (División de datos) de la Google Cloud consola. Si entrenas con la API de Vertex AI, usa el objeto FilterSplit y 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 tienen ml_use
se excluyen del proceso de entrenamiento.
División de filtros de datos
Puedes usar otras etiquetas (además de ml-use) y otros campos para dividir tus datos mediante el objeto FilterSplit en la API Vertex AI. Por ejemplo, puedes definir trainingFilter
como labels.flower=rose
, validationFilter
como labels.flower=daisy
y testFilter
como labels.flower=dahlia
. Con este ajuste, todos los datos etiquetados como rose
se añadirán al conjunto de entrenamiento, todos los datos etiquetados como daisy
se añadirán al conjunto de validación y todos los datos etiquetados como dahlia
se añadirán al conjunto de prueba.
Si filtras por varios campos, un elemento de datos puede coincidir con más de un filtro. En este caso, el conjunto de entrenamiento tiene prioridad, seguido del conjunto de validación y, por último, del conjunto de prueba. Es decir, un elemento solo se incluye en el conjunto de prueba si coincide con el filtro de dicho conjunto, pero no con los filtros de entrenamiento o de validación. Si un elemento no coincide con los filtros de ninguno de los conjuntos, se excluye del entrenamiento.
No uses categorías para dividir los datos en función de lo que va a predecir el modelo. Cada uno de los conjuntos debe reflejar el intervalo de datos que usa el modelo para hacer predicciones. Por ejemplo, no uses los filtros descritos anteriormente en un modelo que deba clasificar imágenes por tipo de flor.
Si no quieres que un filtro coincida con ningún elemento, asigna el valor "-
" (el signo menos).
División matemática
La división matemática también se conoce como "división de fracciones".
De forma predeterminada, los datos se dividen aleatoriamente en los conjuntos según los porcentajes predeterminados de su tipo de datos. Puedes cambiar los porcentajes por cualquier valor que sume 100 (en la API Vertex AI, usa fracciones que sumen 1,0).
Para cambiar los porcentajes (fracciones), usa el objeto FractionSplit para definir las fracciones. En el caso de los tipos de datos de imagen, también puedes usar la consolaGoogle Cloud para actualizar los porcentajes de división al entrenar tu modelo.