A Vertex AI fornece métricas de avaliação de modelo para ajudar você a determinar o desempenho dos seus modelos, como métricas de precisão e recall. A Vertex AI calcula as métricas de avaliação usando o conjunto de teste.
Como usar métricas de avaliação do modelo
As métricas de avaliação do modelo são medidas que avaliam o desempenho do seu modelo no conjunto de teste. A forma como você interpreta e usa essas métricas depende das necessidades do seu negócio e do problema que seu modelo é treinado para solucionar. Por exemplo, você pode ter uma tolerância menor a falsos positivos do que para falsos negativos ou vice-versa. Esses tipos de perguntas afetam as métricas que podem ser relevantes para você.
Para mais informações sobre como iterar seu modelo para melhorar o desempenho, consulte Como iterar no modelo.
Métricas de avaliação retornadas pela Vertex AI
A Vertex AI retorna várias métricas de avaliação, como limites de precisão, recall e confiança. As métricas retornadas pela Vertex AI dependem do objetivo do seu modelo. Por exemplo, a Vertex AI fornece métricas de avaliação diferentes para um modelo de classificação de imagens em comparação com um modelo de detecção de objetos de imagem.
Um arquivo de esquema, disponível para download em um local do Cloud Storage, determina quais métricas de avaliação a Vertex AI fornece para cada objetivo. As guias a seguir fornecem links para os arquivos de esquema e descrevem as métricas de avaliação para cada objetivo do modelo.
É possível visualizar e fazer o download de arquivos de esquema no seguinte local do
Cloud Storage:
gs://google-cloud-aiplatform/schema/modelevaluation/
- Limite de IoU: um valor de limite de interseção sobre união que determina quais previsões serão retornadas. Um modelo retorna previsões que têm esse valor ou um valor maior. Quanto maior o limite, mais próximos os valores previstos da caixa delimitadora precisarão ser dos valores reais da caixa delimitadora.
- Precisão média: também conhecida como a precisão média. Esse valor varia de zero a um. Um valor maior indica um modelo de melhor qualidade.
- Limite de confiança: uma pontuação de confiança que determina quais previsões serão retornadas. Um modelo retorna previsões que têm esse valor ou um valor maior. Um limite de confiança maior aumenta a precisão, mas diminui o recall. A Vertex AI retorna métricas de confiança em valores de limite diferentes para mostrar como o limite afeta a precisão e o recall.
- Recall: a fração de predições com esta classe que o modelo previu corretamente. Também chamado de taxa de verdadeiro positivo.
- Precisão: a fração de predições de classificação produzidas pelo modelo que estavam corretas.
- Pontuação F1: a média harmônica de precisão e recall. F1 é uma métrica útil quando você está procurando um equilíbrio entre precisão e recall e a distribuição de classes é desigual.
-
Precisão média da caixa delimitadora: a única métrica para avaliações
de caixa delimitadora: a média de
meanAveragePrecision
em relação a todas asboundingBoxMetrics
.
Como receber métricas de avaliação
É possível receber um conjunto agregado de métricas de avaliação para o modelo e, para alguns objetivos, métricas de avaliação de uma classe ou rótulo específico. As métricas de avaliação de uma classe ou rótulo específico também são conhecidas como fração de avaliação. O conteúdo a seguir descreve como receber métricas de avaliação agregadas e frações de avaliação usando o Console ou a API do Google Cloud.
Console do Google Cloud
No Console do Google Cloud, na seção "Vertex AI", acesse a página Modelos.
Na lista suspensa Região, selecione a região em que seu modelo está localizado.
Na lista de modelos, clique no seu modelo para abrir a guia Avaliar.
Na guia Avaliar, é possível visualizar as métricas agregadas de avaliação do modelo, como Precisão média e Recall.
Se o objetivo do modelo tiver frações de avaliação, o console mostrará uma lista de rótulos. Clique em um rótulo para visualizar as métricas de avaliação, conforme mostrado no exemplo a seguir:
API
As solicitações de API para receber métricas de avaliação são as mesmas para cada tipo de dado e objetivo, mas as saídas são diferentes. Os exemplos a seguir mostram a mesma solicitação, mas saídas diferentes.
Como receber métricas agregadas de avaliação de modelo
As métricas agregadas de avaliação de modelo fornecem informações sobre o modelo como um todo. Para ver informações sobre uma fração específica, liste as frações de avaliação do modelo.
Para visualizar as métricas agregadas de avaliação do modelo, use o
método
projects.locations.models.evaluations.get
.
Para a métrica de caixa delimitadora, a Vertex AI retorna uma matriz de valores de métrica em diferentes valores de limite de IoU (entre 0 e 1) e valores de limite de confiança (entre 0 e 1). Por exemplo, é possível restringir as métricas de avaliação em um limite de IoU de 0,85 e um limite de confiança de 0,8228. Ao visualizar esses valores de limite diferentes, é possível ver como eles afetam outras métricas, como precisão e recall.
Selecione uma guia que corresponda ao seu idioma ou ambiente:
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: região onde seu modelo é armazenado.
- PROJECT: o ID do projeto.
- MODEL_ID: o ID do recurso do modelo.
- PROJECT_NUMBER: o número do projeto gerado automaticamente.
- EVALUATION_ID: ID da avaliação do modelo (aparece na resposta).
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Java
Antes de testar esse exemplo, siga as instruções de configuração para Java no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Java.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar essa amostra, siga as instruções de configuração para Node.js Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Node.js.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Como listar todas as frações de avaliação
O
método projects.locations.models.evaluations.slices.list
lista todas as frações de avaliação do modelo. É necessário ter o ID
de avaliação do modelo, que é possível conseguir ao visualizar as métricas agregadas
de avaliação.
É possível usar frações de avaliação de modelo para determinar como foi o desempenho do modelo em um
rótulo específico. O campo value
informa para quais rótulos as métricas são usadas.
Para a métrica de caixa delimitadora, a Vertex AI retorna uma matriz de valores de métrica em diferentes valores de limite de IoU (entre 0 e 1) e valores de limite de confiança (entre 0 e 1). Por exemplo, é possível restringir as métricas de avaliação em um limite de IoU de 0,85 e um limite de confiança de 0,8228. Ao visualizar esses valores de limite diferentes, é possível ver como eles afetam outras métricas, como precisão e recall.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: região onde o modelo está localizado. Por exemplo,
us-central1
. - PROJECT: o ID do projeto.
- MODEL_ID: o ID do modelo.
- EVALUATION_ID: ID da avaliação do modelo que contém as frações de avaliação a serem listadas.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Java
Antes de testar esse exemplo, siga as instruções de configuração para Java no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Java.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar essa amostra, siga as instruções de configuração para Node.js Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Node.js.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Como receber métricas para uma única fração
Para visualizar as métricas de avaliação de uma única fração, use o
método
projects.locations.models.evaluations.slices.get
. É necessário ter o ID da fração, que é fornecido quando você lista todas as
frações. A amostra a seguir se aplica a todos os tipos de dados e
objetivos.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: região onde o modelo está localizado. Por exemplo: us-central1.
- PROJECT: o ID do projeto.
- MODEL_ID: o ID do modelo.
- EVALUATION_ID: ID da avaliação do modelo que contém a fração de avaliação a ser recuperada.
- SLICE_ID: ID de uma fração de avaliação a ser recebida.
- PROJECT_NUMBER: o número do projeto gerado automaticamente.
- EVALUATION_METRIC_SCHEMA_FILE_NAME: o nome de um arquivo de esquema
que define as métricas de avaliação a serem retornadas, como
classification_metrics_1.0.0
.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices/SLICE_ID
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
Java
Antes de testar esse exemplo, siga as instruções de configuração para Java no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Java.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar essa amostra, siga as instruções de configuração para Node.js Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Node.js.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Iterar o modelo
As métricas de avaliação do modelo são um ponto de partida para depurar o modelo quando ele não atende às suas expectativas. Por exemplo, pontuações baixas de precisão e recall podem indicar que o modelo precisa de dados de treinamento extras ou tem rótulos inconsistentes. A precisão e o recall perfeitos podem indicar que os dados de teste são muito fáceis de prever e podem não generalizar bem.
É possível iterar os dados de treinamento e criar um novo modelo. Depois de criar um novo modelo, é possível comparar as métricas de avaliação entre o modelo atual e o novo.
As sugestões a seguir podem ajudar a melhorar os modelos que rotulam itens, como os modelos de detecção ou de detecção de objetos:
- Adicione mais exemplos ou uma variedade maior de exemplos nos dados de treinamento. Por exemplo, para um modelo de classificação de imagem, é possível incluir imagens de ângulo mais amplo, imagens de resolução maior ou menor ou pontos de visualização diferentes. Consulte mais orientações em Como preparar dados.
- Considere remover classes ou rótulos que não tenham muitos exemplos. Exemplos insuficientes impedem que o modelo faça previsões consistentes e confiáveis sobre essas classes ou rótulos.
- As máquinas não conseguem interpretar o nome das classes ou dos rótulos e não compreendem as nuances entre elas, como "porta" e "porta_com_maçaneta". Você precisa fornecer dados para ajudar as máquinas a reconhecer essas nuances.
- Amplie seus dados com mais exemplos de verdadeiros positivos e verdadeiros negativos, especialmente exemplos próximos de uma fronteira de decisão para reduzir a confusão de modelos.
- Especifique sua própria divisão de dados (treinamento, validação e teste). A Vertex AI atribui itens aleatoriamente para cada conjunto. Portanto, quase duplicadas podem ser alocadas nos conjuntos de treinamento e validação, o que pode levar a um overfitting e desempenho insatisfatório no conjunto de teste. Para mais informações sobre como configurar sua própria divisão de dados, consulte Sobre divisões de dados para modelos do AutoML.
- Se as métricas de avaliação do modelo incluírem uma matriz de confusão, será possível ver se o modelo está confundindo dois rótulos, onde o modelo está prevendo um rótulo específico bem mais do que o rótulo verdadeiro. Revise os dados e verifique se os exemplos estão rotulados corretamente.
- Se você teve pouco tempo de treinamento (baixo número máximo de horas de uso do nó), poderá receber um modelo de maior qualidade, permitindo que ele seja treinado por um período maior (maior número máximo de horas de uso do nó).