Vista geral da monitorização de modelos

Este documento descreve como o BigQuery ML suporta a monitorização de modelos de aprendizagem automática (AA) através da avaliação e da comparação dos dados que um modelo usa. Isto inclui a comparação dos dados de publicação de um modelo com os respetivos dados de preparação e a comparação dos novos dados de publicação com os dados de publicação usados anteriormente.

Compreender os dados usados pelos seus modelos é um aspeto crítico da ML, porque estes dados afetam o desempenho do modelo. Compreender qualquer variação entre os dados de preparação e de publicação é especialmente importante para garantir que os modelos permanecem precisos ao longo do tempo. Um modelo tem o melhor desempenho em dados de publicação semelhantes aos dados de preparação. Quando os dados de publicação se desviam dos dados usados para preparar o modelo, o desempenho do modelo pode deteriorar-se, mesmo que o próprio modelo não tenha sido alterado.

O BigQuery ML fornece funções para ajudar a analisar os dados de preparação e publicação para desequilíbrio de dados e desvio de dados:

  • A distorção de dados ocorre quando a distribuição dos valores das caraterísticas para os dados de preparação é significativamente diferente dos dados de publicação em produção. As estatísticas de preparação do modelo são guardadas durante a preparação do modelo, pelo que os dados de preparação originais não são necessários para usar a deteção de desvios.
  • A deriva de dados ocorre quando a distribuição de dados de funcionalidades na produção muda significativamente ao longo do tempo. A deteção de desvio é suportada para intervalos consecutivos de dados, por exemplo, entre diferentes dias de dados de publicação. Isto permite-lhe receber uma notificação se os dados de publicação estiverem a mudar ao longo do tempo, antes de os conjuntos de dados divergirem demasiado para voltar a preparar o modelo.

Use as seguintes funções para monitorizar modelos no BigQuery ML:

  • ML.DESCRIBE_DATA: calcular estatísticas descritivas para um conjunto de dados de preparação ou publicação.
  • ML.VALIDATE_DATA_SKEW: calcular as estatísticas de um conjunto de dados de publicação e, em seguida, compará-las com as estatísticas de dados de preparação que foram calculadas quando um modelo do BigQuery ML foi preparado, para identificar diferenças anómalas entre os dois conjuntos de dados. As estatísticas só são calculadas para colunas de funcionalidades nos dados de publicação que correspondem às colunas de funcionalidades nos dados de preparação, de modo a alcançar um melhor desempenho e um custo inferior.
  • ML.VALIDATE_DATA_DRIFT: calcular e comparar as estatísticas de dois conjuntos de dados de publicação para identificar diferenças anómalas entre os dois conjuntos de dados.
  • ML.TFDV_DESCRIBE: calcular estatísticas descritivas detalhadas para um conjunto de dados de preparação ou publicação. Esta função tem o mesmo comportamento que a API TensorFlow tfdv.generate_statistics_from_csv.
  • ML.TFDV_VALIDATE: compare as estatísticas dos dados de preparação e de publicação, ou dois conjuntos de estatísticas dos dados de publicação, para identificar diferenças anómalas entre os dois conjuntos de dados. Esta função tem o mesmo comportamento que a API TensorFlow validate_statistics.

Exemplos de utilização de monitorização

Esta secção descreve como usar as funções de monitorização do modelo do BigQuery ML em exemplos de utilização de monitorização comuns.

Monitorização básica da distorção de dados

Este exemplo de utilização é adequado quando quer desenvolver e monitorizar rapidamente um modelo para a distorção de dados e não precisa de estatísticas de distorção detalhadas para integrar com uma solução de monitorização existente.

Os passos típicos para este exemplo de utilização são os seguintes:

  1. Execute a função ML.DESCRIBE_DATA nos dados de preparação e publicação para se certificar de que ambos os conjuntos de dados se comparam adequadamente entre si e estão dentro dos parâmetros esperados.
  2. Crie um modelo do BigQuery ML e prepare-o com os dados de preparação.
  3. Execute a função ML.VALIDATE_DATA_SKEW para comparar as estatísticas dos dados de publicação com as estatísticas dos dados de preparação que foram calculadas durante a criação do modelo, de modo a verificar se existe alguma distorção de dados.
  4. Se existir uma distorção de dados, investigue a causa principal, ajuste os dados de preparação de forma adequada e, em seguida, volte a preparar o modelo.

Monitorização básica da deriva de dados

Este exemplo de utilização é adequado quando quer desenvolver e monitorizar rapidamente um modelo para a variação dos dados e não precisa de estatísticas de variação detalhadas para integrar com uma solução de monitorização existente.

Os passos típicos para este exemplo de utilização são os seguintes:

  1. Execute a função ML.DESCRIBE_DATA nos dados de preparação e publicação para se certificar de que ambos os conjuntos de dados são comparados adequadamente entre si e estão dentro dos parâmetros esperados.
  2. Crie um modelo do BigQuery ML e prepare-o com os dados de preparação.
  3. Execute a função ML.VALIDATE_DATA_DRIFT para comparar as estatísticas de dois conjuntos de dados de publicação diferentes, de modo a verificar se existe alguma deriva de dados. Por exemplo, pode querer comparar os dados de publicação atuais com os dados de publicação do histórico de uma imagem instantânea da tabela ou com as funcionalidades publicadas num determinado momento, que pode obter através da função ML.FEATURES_AT_TIME.
  4. Se existir uma variação dos dados, investigue a causa principal, ajuste os dados de preparação de forma adequada e, em seguida, volte a preparar o modelo.

Monitorização avançada da variação ou da deriva dos dados

Este exemplo de utilização é adequado quando quer estatísticas detalhadas de desvio ou variação para integrar com uma solução de monitorização existente ou para outros fins.

Os passos típicos para este exemplo de utilização são os seguintes:

  1. Execute a função ML.TFDV_DESCRIBE nos seus dados de preparação e publicação a intervalos adequados à sua solução de monitorização e guarde os resultados da consulta. Este passo permite-lhe comparar os dados de publicação futuros com os dados de preparação e publicação de pontos anteriores no tempo.
  2. Execute a função ML.TFDV_VALIDATE nas estatísticas de dados de preparação e publicação, ou em dois conjuntos de estatísticas de dados de publicação, para avaliar a distorção de dados ou a variação das funcionalidades, respetivamente. Os dados de preparação e publicação têm de ser fornecidos como um buffer de protocolo do TensorFlow DatasetFeatureStatisticsList no formato JSON. Pode gerar um protocolo buffer no formato correto executando a função ML.TFDV_DESCRIBE ou carregá-lo a partir de fora do BigQuery. O exemplo seguinte mostra como avaliar a distribuição das caraterísticas:

    DECLARE stats1 JSON;
    DECLARE stats2 JSON;
    
    SET stats1 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`)
    );
    SET stats2 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.serving`)
    );
    
    SELECT ML.TFDV_VALIDATE(stats1, stats2, 'SKEW');
    
    INSERT `myproject.mydataset.serve_stats`
      (t, dataset_feature_statistics_list)
    SELECT CURRENT_TIMESTAMP() AS t, stats1;
  3. Se existir uma distorção ou uma deriva de dados, investigue a causa principal, ajuste os dados de preparação adequadamente e, em seguida, volte a preparar o modelo.

Visualização da monitorização

Algumas funções de monitorização oferecem integração com o Vertex AI Model Monitoring, para que possa usar gráficos para analisar o resultado da função de monitorização de modelos.

A utilização de visualizações da Vertex AI oferece as seguintes vantagens:

  • Visualizações interativas: explore as distribuições de dados, as métricas enviesadas e as métricas de desvio através de gráficos na consola do Vertex AI.
  • Análise do histórico: acompanhe os resultados da monitorização de modelos ao longo do tempo através das visualizações da Vertex AI. Isto permite-lhe identificar tendências e padrões nas alterações de dados para que possa atualizar e manter os modelos de forma proativa.
  • Gestão centralizada: faça a gestão da monitorização de todos os modelos do BigQuery ML e do Vertex AI no painel de controlo unificado do Vertex AI.

Pode ativar a visualização do resultado da função ML.VALIDATE_DATA_DRIFT usando o argumento MODEL dessa função. Pode ativar a visualização do resultado da função ML.VALIDATE_DATA_SKEW usando o argumento enable_visualization_link dessa função.

Só pode usar a visualização de monitorização com modelos registados no Vertex AI. Pode registar um modelo existente através da declaração ALTER MODEL.

Automatização da monitorização

Pode automatizar a monitorização através de uma consulta agendada para executar a função de monitorização, avaliar a saída e voltar a preparar o modelo se forem detetadas anomalias. Tem de ativar as notificações por email como parte da configuração da consulta agendada.

Para ver um exemplo que mostra como automatizar a função ML.VALIDATE_DATA_SKEW consulte Automatize a deteção de distorções.

O que se segue?

Para mais informações sobre as funções e as declarações SQL suportadas para modelos de ML, consulte o artigo Percurso do utilizador completo para modelos de ML.