Compartilhar via


Monitoramento de modelos com o Azure Machine Learning

Neste artigo, você aprenderá sobre o monitoramento de modelos através do Azure Machine Learning, os sinais e as métricas que você pode monitorar e as melhores práticas para usar o monitoramento de modelos.

O caso para monitoramento de modelos

O monitoramento de modelos é a última etapa no ciclo de vida ponta a ponta do aprendizado de máquina. Esta etapa acompanha o desempenho do modelo em produção e visa compreender o desempenho tanto da ciência de dados quanto da perspectiva operacional.

Ao contrário dos sistemas de software tradicionais, o comportamento dos sistemas de aprendizado de máquina é governado não apenas por regras especificadas em código, mas também pelo comportamento aprendido pelo modelo com os dados. Portanto, alterações de distribuição de dados, distorção de serviço de treinamento, problemas de qualidade de dados, mudanças em ambientes ou alterações de comportamento do consumidor podem fazer com que um modelo fique obsoleto. Quando um modelo fica obsoleto, seu desempenho pode degradar-se a ponto de não adicionar valor comercial ou começar a causar sérios problemas de conformidade em ambientes altamente regulamentados.

Limitações do monitoramento de modelo no Azure Machine Learning

O monitoramento de modelo no Azure Machine Learning dá suporte apenas ao uso de autenticação baseada em credencial (por exemplo, token SAS) para acessar dados contidos em armazenamentos de dados. Para saber mais sobre armazenamentos de dados e modos de autenticação, consulte Administração de dados.

Como funciona o monitoramento de modelos no Azure Machine Learning

Para implementar o monitoramento, o Azure Machine Learning adquire sinais de monitoramento executando cálculos estatísticos em dados de inferência de produção transmitidos e em dados de referência. Os dados de referência podem ser dados históricos de treinamento, dados de validação ou dados verídicos básicos. Por outro lado, os dados de inferência de produção referem-se aos dados de entrada e saída do modelo coletados na produção.

Cada sinal de monitoramento tem uma ou mais métricas. Os usuários podem definir limites para essas métricas a fim de receber alertas via Azure Machine Learning ou Grade de Eventos do Azure sobre anomalias de modelos ou dados. Esses alertas podem solicitar os usuários a analisar ou solucionar problemas de sinais de monitoramento no Estúdio do Azure Machine Learning para melhorar continuamente a qualidade do modelo.

As etapas a seguir descrevem um exemplo de cálculo estatístico usado para adquirir um sinal de monitoramento integrado, como descompasso de dados, para um modelo que está em produção.

  • Para um recurso nos dados de treinamento, calcule a distribuição estatística de seus valores. Essa distribuição é a distribuição de linha de base para o recurso.
  • Calcule a distribuição estatística dos valores mais recentes do recurso que são vistos na produção.
  • Compare a distribuição dos valores mais recentes do recurso em produção com a distribuição da linha de base, realizando um teste estatístico ou calculando uma pontuação de distância.
  • Quando a estatística de teste ou a pontuação de distância entre as duas distribuições excede um limite especificado pelo usuário, o Azure Machine Learning identifica a anomalia e notifica o usuário.

Configuração de monitoramento de modelo

Para habilitar e usar o monitoramento de modelo no Azure Machine Learning:

  1. Habilite a coleta de dados de inferência de produção. Se você implantar um modelo em um ponto de extremidade online do Azure Machine Learning, poderá habilitar a coleta de dados de inferência de produção usando a coleta de dados do modelo no Azure Machine Learning. Entretanto, se você implantar um modelo fora do Azure Machine Learning ou em um ponto de extremidade em lote do Azure Machine Learning, será responsável por coletar dados de inferência de produção. Você pode depois usar esses dados para o monitoramento do modelo do Azure Machine Learning.
  2. Configurar o monitoramento do modelo. Use o SDK/CLI 2.0 do Azure Machine Learning ou a interface do usuário do estúdio para configurar facilmente o monitoramento de modelos. Durante a instalação, você pode especificar seus sinais de monitoramento preferenciais e personalizar métricas e limites para cada sinal.
  3. Exibir e analisar os resultados do monitoramento do modelo. Após o monitoramento de modelo ser configurado, o Azure Machine Learning agenda um trabalho de monitoramento a ser executado na frequência especificada. Cada execução calcula e avalia métricas para todos os sinais de monitoramento selecionados e dispara notificações de alerta quando qualquer limite especificado é excedido. É possível seguir o link na notificação de alerta para visualizar e analisar os resultados do monitoramento no espaço de trabalho do Azure Machine Learning.

Capacidades do monitoramento de modelo

O Azure Machine Learning fornece os seguintes recursos para o monitoramento contínuo de modelos:

  • Sinais de monitoramento integrados. O monitoramento de modelos fornece sinais de monitoramento integrados para dados tabulares. Esses sinais de monitoramento incluem descompasso de dados, descompasso de previsão, qualidade de dados, descompasso de atribuição de recursos e desempenho do modelo.
  • Configuração de monitoramento de modelo pronto para uso com o ponto de extremidade online do Azure Machine Learning. Se você implantar seu modelo em produção em um ponto de extremidade online do Azure Machine Learning, o Azure Machine Learning coleta os dados de inferência de produção automaticamente e os usa para monitoramento contínuo.
  • Uso de vários sinais de monitoramento para uma exibição ampla. Você pode incluir facilmente vários sinais de monitoramento em uma configuração de monitoramento. Para cada sinal de monitoramento, você pode selecionar as métricas de sua preferência e ajustar um limite de alerta.
  • Uso de dados de treinamento ou de produção anteriores e recentes como dados de referência para comparação. Para sinais de monitoramento, o Azure Machine Learning permite definir dados de referência usando dados de treinamento ou dados de produção recentes e anteriores.
  • Monitoramento dos principais recursos N para descompasso de dados ou de qualidade de dados. Caso use dados de treinamento como dados de referência, poderá definir o descompasso de dados ou os sinais de qualidade de dados em camadas sobre a importância do recurso.
  • Flexibilidade para definir seu sinal de monitoramento. Se os sinais de monitoramento integrados não forem adequados ao seu cenário de negócios, você poderá definir seu próprio sinal de monitoramento com um componente de sinal de monitoramento personalizado.
  • Flexibilidade para usar dados de inferência de produção de qualquer origem. Caso implante modelos fora do Azure Machine Learning ou se implantar modelos em pontos de extremidade em lote do Azure Machine Learning, você poderá coletar dados de inferência de produção para usar no Azure Machine Learning a fim de monitorar modelos.

Tamanho e deslocamento da janela retroativa

O tamanho da janela retroativa é a duração do tempo (no formato ISO 8601) para sua janela de dados de referência ou de produção, retrocedendo a partir da data da sua execução de monitoramento.

O deslocamento da janela retroativa é a duração do tempo (no formato ISO 8601) para deslocar o final da janela de dados a partir da data da execução do monitoramento.

Por exemplo, suponha que seu modelo esteja em produção e você tenha um monitoramento definido para ser executado em 31 de janeiro às 15h15 UTC. Caso defina um tamanho de janela retroativa de produção de P7D (sete dias) para o monitoramento e um deslocamento da janela retroativa de produção de P0D (zero dias), o monitoramento usará dados de 24 de janeiro às 15h15 UTC até 31 de janeiro às 15h15 UTC (a hora em que o monitoramento é executado) na janela de dados.

Além disso, para os dados de referência, se você definir o deslocamento da janela retroativa como P7D (sete dias), a janela de dados de referência terminará logo antes do início da janela de dados de produção, de modo que não haja sobreposição. Em seguida, é possível definir o tamanho da janela retroativa de dados de referência para ser tão grande quanto quiser. Por exemplo, definindo o tamanho da janela retroativa de dados de referência como P24D (24 dias), a janela de dados de referência inclui dados de 1º de janeiro às 15h15 UTC até 24 de janeiro às 15h15 UTC. A figura a seguir ilustra esse exemplo.

Um diagrama mostrando o tamanho e o deslocamento da janela de pesquisa para dados de referência e produção.

Em alguns casos, talvez seja útil definir o deslocamento da janela retroativa para os dados de produção como um número maior que zero dias. Por exemplo, se o monitoramento estiver agendado para ser executado semanalmente às segundas-feiras às 15h15 UTC, mas você não quiser usar dados do fim de semana em sua execução de monitoramento, poderá usar um tamanho de janela retroativa de P5D(cinco dias) e um deslocamento de janela retroativa de P2D (dois dias). Em seguida, sua janela de dados começa na segunda-feira anterior às 15h15 UTC e termina na sexta-feira às 15h15 UTC.

Na prática, você deverá garantir que a janela de dados de referência e a janela de dados de produção não se sobreponham. Conforme mostrado na figura a seguir, é possível garantir que janelas não sobrepostas verifiquem se o deslocamento da janela retroativa de dados de referência (P10D ou 10 dias, neste exemplo) é maior ou igual à soma do tamanho da janela retroativa dos dados de produção e seu deslocamento da janela retroativa (total de sete dias).

Um diagrama mostrando dados de referência não sobrepostos e janelas de dados de produção.

Com o monitoramento do modelo do Azure Machine Learning, você poderá usar padrões inteligentes para o tamanho da janela retroativa e deslocamento da janela retroativa ou personalizá-los para atender às suas necessidades. Além disso, há suporte para janelas sem interrupção e janelas fixas.

Personalizar o tamanho da janela retroativa

Você tem a flexibilidade de selecionar um tamanho de janela retroativa para os dados de produção e os dados de referência.

  • Por padrão, o tamanho da janela retroativa para dados de produção é a frequência de monitoramento. Ou seja, todos os dados coletados no período de monitoramento antes da execução do trabalho de monitoramento serão analisados. Use a propriedade production_data.data_window.lookback_window_size para ajustar a janela de dados como contínua para os dados de produção.

  • Por padrão, a janela retroativa para os dados de referência é o conjunto de dados completo. Use a propriedade reference_data.data_window.lookback_window_size para ajustar o tamanho da janela retroativa de referência.

  • Para especificar uma janela de dados fixa para os dados de referência, use as propriedades reference_data.data_window.window_start_date e reference_data.data_window.window_end_date.

Personalizar deslocamento da janela retroativa

Você tem a flexibilidade de selecionar um deslocamento de janela retroativa para sua janela de dados para os dados de produção e os dados de referência. Use o deslocamento para controle granular sobre os dados usados pelo monitoramento. O deslocamento só se aplica a janelas de dados contínuas.

  • Por padrão, o deslocamento para dados de produção é P0D (zero dias). Altere esse deslocamento com a propriedade production_data.data_window.lookback_window_offset.

  • Por padrão, o deslocamento para dados de referência é o dobro do production_data.data_window.lookback_window_size. Essa configuração garante que haja dados de referência suficientes para resultados de monitoramento estatisticamente significativos. Altere esse deslocamento com a propriedade reference_data.data_window.lookback_window_offset.

Monitoramento de sinais e métricas

O monitoramento do modelo do Azure Machine Learning dá suporte à seguinte lista de monitoramento de sinais e métricas:

Importante

Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. A versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Monitoramento de sinal Descrição Métricas Tarefas do modelo (formato de dados com suporte) Dados de produção Dados de referência
Descompasso de dados O descompasso de dados rastreia as alterações na distribuição dos dados de entrada de um modelo, comparando a distribuição com os dados de treinamento do modelo ou com os dados de produção anteriores e recentes. Método Jensen-Shannon de Distância, Índice de Estabilidade de Rastreamento, Distância Normalizada de Wasserstein, Teste para Duas Amostras de Kolmogorov-Smirnov, Teste do Qui-Quadrado de Pearson Classificação (dados tabulares), Regressão (dados tabulares) Dados de produção - entradas do modelo Dados de produção anteriores recentes ou dados de treinamento
Descompasso de previsão O descompasso de previsão rastreia as alterações na distribuição de saídas previstas de um modelo, comparando a distribuição com dados de validação, dados de teste rotulados ou dados de produção anteriores recentes. Método Jensen-Shannon de Distância, Índice de Estabilidade de Rastreamento, Distância Normalizada de Wasserstein, Distância de Chebyshev, Teste para Duas Amostras de Kolmogorov-Smirnov, Teste do Qui-Quadrado de Pearson Classificação (dados tabulares), Regressão (dados tabulares) Dados de produção - saídas do modelo Dados de produção anteriores recentes ou dados de validação
Qualidade dos dados A qualidade dos dados rastreia a integridade dos dados de entrada de um modelo comparando-os com os dados de treinamento do modelo ou com os dados de produção anteriores e recentes. As verificações de qualidade dos dados incluem a verificação de valores nulos, incompatibilidade de tipo ou valores fora dos limites. Taxa de valor nulo, taxa de erro de tipo de dados, taxa fora dos limites Classificação (dados tabulares), Regressão (dados tabulares) dados de produção - entradas do modelo Dados de produção anteriores recentes ou dados de treinamento
Descompasso de atribuição de recursos (versão prévia) O descompasso de atribuição de recursos baseia-se na contribuição dos recursos para previsões (também conhecida como importância do recurso). O descompasso de atribuição de recursos acompanha a importância do recurso durante a produção, comparando-o com a importância do recurso durante o treinamento. Ganho acumulado descontado e normalizado Classificação (dados tabulares), Regressão (dados tabulares) Dados de produção: entradas e saídas de modelos Dados de treinamento (obrigatórios)
Desempenho do modelo – Classificação (versão prévia) O desempenho do modelo acompanha o desempenho objetivo da saída de um modelo em produção, comparando-o aos dados verídicos básicos coletados. Precisão e recall Classificação (dados tabulares) Dados de produção - saídas do modelo Dados verídicos básicos (obrigatórios)
Desempenho do modelo – Regressão (versão prévia) O desempenho do modelo acompanha o desempenho objetivo da saída de um modelo em produção, comparando-o aos dados verídicos básicos coletados. MAE (erro médio absoluto), EQM (erro quadrático médio), REQM (raiz do erro quadrático médio) Regressão (dados tabulares) Dados de produção - saídas do modelo Dados verídicos básicos (obrigatórios)
IA generativa: segurança e qualidade de geração (versão prévia) Avalia aplicativos de IA generativa quanto à qualidade e segurança, usando métricas assistidas pelo GPT. Fundamentação, relevância, fluência, similaridade, coerência Resposta e perguntas prompt, conclusão, contexto e modelo de anotação N/D

Métricas para o sinal de monitoramento de qualidade de dados

O sinal de monitoramento de qualidade de dados rastreia a integridade dos dados de entrada de um modelo calculando as três métricas:

  • Taxa de valor nulo
  • Taxa de erro de tipo de dados
  • Taxa fora dos limites

Taxa de valor nulo

A taxa de valor nulo é a taxa de valores nulos na entrada do modelo para cada recurso. Por exemplo, se a janela de dados de produção de monitoramento contiver 100 linhas e o valor de um recurso específico temperature for nulo para 10 dessas linhas, a taxa de valor nulo para temperature será de 10%.

  • O Azure Machine Learning dá suporte ao cálculo da taxa de valor nulo para todos os tipos de dados de recurso.

Taxa de erro de tipo de dados

A taxa de erro do tipo de dados é a taxa de diferenças de tipo de dados entre a janela de dados de produção atual e os dados de referência. Durante cada execução de monitoramento, o monitoramento do modelo do Azure Machine Learning infere o tipo de dados para cada recurso dos dados de referência. Por exemplo, se o tipo de dados de um recurso temperature for inferido para ser IntegerType dos dados de referência, mas na janela de dados de produção, 10 de 100 valores para temperature não são IntegerType (talvez sejam cadeias de caracteres), a taxa de erro de tipo de dados para temperature será de 10%.

  • O Azure Machine Learning dá suporte ao cálculo da taxa de erro de tipo de dados para os seguintes tipos de dados disponíveis no PySpark: ShortType, BooleanType, BinaryType, DoubleType, TimestampType, StringType, IntegerType, FloatType, ByteType, LongType e DateType
  • Se o tipo de dados de um recurso não estiver contido nesta lista, o monitoramento do modelo do Azure Machine Learning ainda será executado, mas não calculará a taxa de erro de tipo de dados para esse recurso específico.

Taxa fora dos limites

A taxa fora dos limites é a taxa de valores para cada recurso, que ficam fora do intervalo apropriado ou definidos pelos dados de referência. Durante cada execução de monitoramento, o monitoramento do modelo do Azure Machine Learning determina o intervalo aceitável ou o conjunto para cada recurso dos dados de referência.

  • Para um recurso numérico, o intervalo apropriado é um intervalo numérico do valor mínimo no conjunto de dados de referência até o valor máximo, como [0, 100].
  • Para um recurso categórico, como color, o intervalo apropriado é um conjunto de todos os valores contidos no conjunto de dados de referência, como [red, yellow, green].

Por exemplo, caso tenha um recurso numérico temperature em que todos os valores se enquadram no intervalo [37, 77] no conjunto de dados de referência, mas na janela de dados de produção, 10 de 100 valores para temperature estão fora do intervalo [37, 77], então a taxa fora dos limites para temperature será de 10%.

  • O Azure Machine Learning dá suporte ao cálculo da taxa fora dos limites para esses tipos de dados que estão disponíveis no PySpark: StringType, IntegerType, DoubleType, ByteType, LongType e FloatType.
  • Se o tipo de dados de um recurso não estiver contido nesta lista, o monitoramento do modelo do Azure Machine Learning ainda será executado, mas não calculará a taxa fora dos limites para esse recurso específico.

O monitoramento de modelos do Azure Machine Learning dá suporte à precisão de até 0,00001 para cálculos da taxa de valor nulo, da taxa de erro do tipo de dados e da taxa fora dos limites.

Cada modelo de machine learning e seus casos de uso são únicos. Portanto, o monitoramento do modelo é exclusivo para cada situação. A seguir, há uma lista das melhores práticas recomendadas para o monitoramento de modelos:

  • Inicie o monitoramento de modelo imediatamente após implantar um modelo em produção.
  • Trabalhe com cientistas de dados que estejam familiarizados com o modelo para configurar o monitoramento do modelo. Os cientistas de dados, que têm uma ideia do modelo e de seus casos de uso, estão melhor posicionados para recomendar sinais e métricas de monitoramento e definir os limites de alerta corretos para cada métrica (para evitar a fadiga de alertas).
  • Inclua vários sinais de monitoramento em sua configuração de monitoramento. Com vários sinais de monitoramento, você tem uma exibição ampla e uma exibição granular do monitoramento. Por exemplo, combine os sinais de descompasso de dados e de descompasso de atribuição de recursos para obter um aviso antecipado sobre o problemas de desempenho do modelo.
  • Use dados de treinamento de modelo como dados de referência. Para dados de referência usados como a linha de base de comparação, o Azure Machine Learning permite que você use os dados históricos ou dados históricos de produção anteriores recentes (como dados de treinamento ou dados de validação). Para uma comparação significativa, recomendamos que você use os dados de treinamento como a linha de base de comparação para o descompasso e a qualidade dos dados. Para o descompasso de previsão, use os dados de validação como a linha de base de comparação.
  • Especifique a frequência de monitoramento, com base em como os dados de produção crescerão ao longo do tempo. Por exemplo, se o seu modelo de produção tiver muito tráfego diário e o acúmulo diário de dados for suficiente para o monitoramento, você poderá definir a frequência de monitoramento como diária. Caso contrário, você pode considerar uma frequência de monitoramento semanal ou mensal, com base no crescimento dos seus dados de produção ao longo do tempo.
  • Monitore os recursos N mais importantes ou um subconjunto de recursos. Se você usar dados de treinamento como a linha de base de comparação, poderá configurar facilmente o monitoramento de descompasso de dados ou o monitoramento de qualidade de dados para os principais recursos N. Para modelos que têm um grande número de recursos, considere monitorar um subconjunto desses recursos para reduzir o custo de computação e o ruído de monitoramento.
  • Use o sinal de desempenho do modelo quando tiver acesso aos dados verídicos básicos. Caso tenha acesso aos dados verídicos básicos (também conhecidos como reais) com base nas particularidades do seu aplicativo de machine learning, é recomendável usar o sinal de desempenho do modelo para comparar os dados verídicos básicos com a saída do modelo. Essa comparação fornece uma exibição objetiva sobre o desempenho do modelo em produção.

Integração de monitoramento de modelo com a Grade de Eventos do Azure

Use os eventos gerados pelas execuções de monitoramento de modelos do Azure Machine Learning para configurar aplicativos, processos ou fluxos de trabalho de CI/CD controlados por eventos com a Grade de Eventos do Azure.

Quando o monitoramento de modelo detecta descompasso, problemas de qualidade de dados ou degradação do desempenho do modelo, você poderá acompanhar esses eventos com a Grade de Eventos e tomar medidas programaticamente. Por exemplo, se a precisão do modelo de classificação na produção ficar abaixo de um determinado limite, você poderá usar a Grade de Eventos para iniciar um trabalho de retreinamento que usa os dados verídicos básicos coletados. Para saber como integrar o Azure Machine Learning à Grade de Eventos, consulte Executar o monitoramento sem interrupção de modelos no Azure Machine Learning.