Vertex AI proporciona métricas de evaluación de modelos para ayudarte a determinar el rendimiento de tus modelos, como las métricas de precisión y recuperación. Vertex AI calcula las métricas de evaluación mediante el conjunto de pruebas.
Cómo usas las métricas de evaluación de modelos
Las métricas de evaluación de modelos proporcionan medidas cuantitativas sobre el rendimiento de tu modelo en el conjunto de prueba. La forma en la que interpretas y usas esas métricas depende de la necesidad de tu empresa y del problema que tu modelo esté entrenado para resolver. Por ejemplo, es posible que tengas una tolerancia más baja para los falsos positivos que para los falsos negativos, o viceversa. Estos tipos de preguntas afectan las métricas en las que te enfocarás.
Si quieres obtener más información sobre la iteración en tu modelo para mejorar su rendimiento, consulta itera en tu modelo.
Métricas de evaluación que muestra Vertex AI
Vertex AI muestra varias métricas de evaluación diferentes, como los límites de confianza, precisión y recuperación. Las métricas que muestra Vertex AI dependen del objetivo del modelo. Por ejemplo, Vertex AI proporciona diferentes métricas de evaluación para un modelo de clasificación de imágenes en comparación con un modelo de detección de objetos de imagen.
Un archivo de esquema, que se puede descargar desde una ubicación de Cloud Storage, determina qué métricas de evaluación proporciona VertexAI para cada objetivo. En las siguientes pestañas, se proporcionan vínculos a los archivos de esquema y se describen las métricas de evaluación para cada objetivo del modelo.
Puedes ver y descargar archivos de esquema desde la siguiente ubicación de Cloud Storage:
gs://google-cloud-aiplatform/schema/modelevaluation/
- AuPRC: el área bajo la curva de precisión y recuperación (PR), también conocida como precisión promedio. Esta medida puede variar de cero a uno y, cuanto más alto sea su valor, mejor será la calidad del modelo.
- Pérdida logística: La entropía cruzada entre las predicciones del modelo y los valores objetivo. Esta medida puede variar de cero a infinito y, cuanto más bajo sea su valor, mejor será la calidad del modelo.
- Umbral de confianza: Una puntuación de confianza que determina qué predicciones mostrar. Un modelo muestra predicciones que tienen este valor o uno más alto. Un umbral de confianza mayor aumenta la precisión, pero reduce la recuperación. Vertex AI muestra métricas de confianza con diferentes valores de umbral para mostrar cómo el umbral afecta la precisión y la recuperación.
- Recuperación: La fracción de predicciones con esta clase que el modelo predijo de forma correcta. También se denomina tasa de verdaderos positivos.
- Precisión: La fracción de predicciones de clasificación correctas que produjo el modelo.
- Matriz de confusión: Una matriz de confusión muestra la frecuencia con la que un modelo predijo correctamente un resultado. Para resultados previstos de forma incorrecta, la matriz muestra lo que el modelo predijo en su lugar. La matriz de confusión te ayuda a comprender dónde tu modelo "confunde" dos resultados.
Obtén métricas de evaluación
Puedes obtener un conjunto agregado de métricas de evaluación para tu modelo y, para algunos objetivos, métricas de evaluación de una clase o etiqueta en particular. Las métricas de evaluación para una clase o etiqueta en particular también se conocen como fragmento de evaluación. En el siguiente contenido, se describe cómo obtener métricas de evaluación agregadas y secciones de evaluación mediante la API o la consola de Google Cloud.
Consola de Google Cloud
En la sección Vertex AI de la consola de Google Cloud, vaya a la página Modelos.
En el menú desplegable Región, selecciona la región en la que se encuentra tu modelo.
En la lista de modelos, haz clic en tu modelo para abrir la pestaña Evaluar.
En la pestaña Evaluar, puedes ver las métricas de evaluación agregadas de tu modelo, como Precisión promedio y Recuperación.
Si el objetivo del modelo tiene porciones de evaluación, la consola mostrará una lista de etiquetas. Puedes hacer clic en una etiqueta para ver las métricas de evaluación de esa etiqueta, como se muestra en el siguiente ejemplo:
(Vista previa) Para cada etiqueta, puedes ver las imágenes previstas agrupadas como verdaderos positivos, falsos positivos y falsos negativos. Cada imagen tiene una métrica de distancia cuadrada de L2 que mide qué tan similar es la imagen con respecto a las imágenes de entrenamiento. Una imagen etiquetada con una insignia de valor atípico es bastante diferente de todas las imágenes de entrenamiento. Para mejorar el rendimiento del modelo, debes considerar agregar más imágenes de entrenamiento que sean similares a los valores atípicos.
API
Las solicitudes a la API a fin de obtener métricas de evaluación son las mismas para cada tipo de datos y objetivo, pero los resultados son diferentes. En los siguientes ejemplos, se muestra la misma solicitud, pero respuestas diferentes.
Obtén métricas totales de evaluación de modelos
Las métricas agregadas de evaluación del modelo proporcionan información sobre el modelo como un todo. Para ver información sobre una porción específica, enumera las porciones de evaluación del modelo.
Para ver las métricas totales de la evaluación del modelo, usa el método projects.locations.models.evaluations.get
.
Vertex AI muestra un arreglo de métricas de confianza. Cada elemento muestra las métricas de evaluación en un valor de confidenceThreshold
diferente (a partir de 0 y hasta 1). Si consultas diferentes valores de umbral, puedes ver cómo el umbral afecta a otras métricas, como la precisión y la recuperación.
Selecciona una pestaña que corresponda 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 almacena tu modelo.
- PROJECT: El ID del proyecto.
- MODEL_ID: El ID del recurso del modelo.
- PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.
- EVALUATION_ID: ID para la evaluación del modelo (aparece en la respuesta).
Método HTTP y URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
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.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js 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 Node.js.
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.
Enumera todas las porciones de evaluación
El método projects.locations.models.evaluations.slices.list
enumera todas las porciones de evaluación de tu modelo. Debes tener el ID de evaluación del modelo, que puedes obtener cuando ves las métricas de evaluación agregadas.
Puedes usar los fragmentos de evaluación del modelo para determinar el rendimiento del modelo en una etiqueta específica. El campo value
indica para qué etiqueta son las métricas.
Vertex AI muestra un arreglo de métricas de confianza. Cada elemento muestra las métricas de evaluación en un valor de confidenceThreshold
diferente (a partir de 0 y hasta 1). Si consultas diferentes valores de umbral, puedes ver cómo el umbral afecta a otras métricas, como la precisión y la recuperación.
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 modelo. Por ejemplo,
us-central1
. - PROJECT: El ID del proyecto.
- MODEL_ID: El ID de tu modelo.
- EVALUATION_ID: ID de la evaluación del modelo que contiene las porciones de evaluación que se deben incluir en la lista.
Método HTTP y URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
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.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js 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 Node.js.
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.
Obtén métricas para un solo fragmento
Si deseas ver las métricas de evaluación de una solo porción, usa el método projects.locations.models.evaluations.slices.get
. Debes tener el ID de porción, que se proporciona cuando Enumeras todas las porciones. En la siguiente muestra, se aplica a todos los tipos de datos y objetivos.
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 modelo. Por ejemplo, us-central1.
- PROJECT: El ID del proyecto.
- MODEL_ID: El ID de tu modelo.
- EVALUATION_ID: ID de la evaluación del modelo que contiene el fragmento de evaluación que se debe recuperar.
- SLICE_ID: ID de un fragmento de evaluación para obtener.
- PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.
- EVALUATION_METRIC_SCHEMA_FILE_NAME: El nombre de un archivo de esquema que define las métricas de evaluación para mostrar, como
classification_metrics_1.0.0
.
Método HTTP y URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices/SLICE_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices/SLICE_ID"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices/SLICE_ID" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
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.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js 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 Node.js.
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.
Realiza iteraciones en tu modelo
Las métricas de evaluación del modelo proporcionan un punto de partida para depurar tu modelo cuando no cumple con tus expectativas. Por ejemplo, las puntuaciones de precisión y recuperación bajos pueden indicar que tu modelo necesita datos de entrenamiento adicionales o que tiene etiquetas incoherentes. La precisión y recuperación perfectas pueden indicar que los datos de prueba son demasiado fáciles de predecir y que podrían no generalizarse bien.
Puedes iterar en los datos de entrenamiento y crear un modelo nuevo. Después de crear un modelo nuevo, puedes comparar las métricas de la evaluación entre el modelo existente y el nuevo.
Las siguientes sugerencias pueden ayudarte a mejorar los modelos que etiquetan elementos, como los modelos de clasificación o detección:
- Considera agregar más ejemplos o un rango más amplio de ejemplos en tus datos de entrenamiento. Por ejemplo, para un modelo de clasificación de imágenes, puedes incluir imágenes de mayor angular, de mayor o menor resolución o diferentes puntos de vista. Para obtener más información, consulta Prepara datos.
- Quita las clases o etiquetas que no tengan muchos ejemplos. En los ejemplos insuficientes, se evita que el modelo haga predicciones de manera coherente y segura sobre esas clases o etiquetas.
- Las máquinas no pueden interpretar el nombre de tus clases o etiquetas, y no comprenden las diferencias entre ellas, como “door” y “door_with_knob”. Debes proporcionar datos para ayudar a que las máquinas reconozcan esas diferencias.
- Mejora tus datos con más ejemplos de verdaderos positivos y verdaderos negativos, especialmente ejemplos que estén cerca de un límite de decisión para mitigar la confusión del modelo.
- Especifica tu propia división de datos (entrenamiento, validación y prueba). Vertex AI asigna elementos de forma aleatoria a cada conjunto. Por lo tanto, los que están casi duplicados se pueden asignar a los conjuntos de entrenamiento y validación, lo que podría llevar a un sobreajuste y un rendimiento deficiente en el conjunto de prueba. Si deseas obtener más información a fin de configurar tu propia división de datos, consulta Acerca de las divisiones de datos para los modelos de AutoML.
- Si las métricas de evaluación del modelo incluyen una matriz de confusión, puedes ver si el modelo presenta dos etiquetas confusas, en las que el modelo predice una etiqueta particular mucho más que la etiqueta verdadera. Revisa tus datos y asegúrate de que los ejemplos estén etiquetados de forma correcta.
- Si tuviste un tiempo de entrenamiento corto (cantidad máxima baja de horas de procesamiento de nodo), es posible que obtengas un modelo de mejor calidad si permites que se entrene por un período más largo (cantidad máxima mayor de horas de procesamiento de nodo).