Monitoramento de modelo do Azure Machine Learning
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 analisa o desempenho das perspectivas da ciência de dados e operacional. Neste artigo, você aprenderá sobre o monitoramento de modelo no Azure Machine Learning, os sinais e as métricas que você pode monitorar e as melhores práticas para o monitoramento de modelo.
Ao contrário dos sistemas de software tradicionais, o comportamento do sistema de machine learning não depende apenas das regras especificadas no código, mas também é aprendido com os dados. Alterações de distribuição de dados, distorção de serviço de treinamento, problemas de qualidade de dados, mudanças em ambientes e 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. Portanto, é importante monitorar o desempenho do modelo.
Como funciona o monitoramento de modelo do 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 inferência de produção referem-se aos dados de entrada e saída do modelo coletados na produção. Os dados de referência podem ser dados históricos de treinamento, validação ou verídicos.
Importante
O monitoramento de modelo do Azure Machine Learning dá suporte apenas à autenticação baseada em credencial, como token SAS (Assinatura de Acesso Compartilhado), 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.
Cada sinal de monitoramento tem uma ou mais métricas. Você pode definir limites para essas métricas para disparar alertas sobre anomalias de dados ou modelos por meio do Azure Machine Learning ou da Grade de Eventos do Azure. Ao receber alertas, você pode usar o Estúdio do Azure Machine Learning para analisar ou solucionar problemas de sinais de monitoramento para melhoria contínua da qualidade do modelo.
O Azure Machine Learning usa o seguinte processo para lidar com um sinal de monitoramento interno, como descompasso de dados, para um modelo em produção:
Primeiro, o Azure Machine Learning calcula a distribuição estatística do valor do recurso nos dados de treinamento. Essa distribuição é a distribuição de linha de base para o recurso.
Em seguida, o Azure Machine Learning calcula a distribuição estatística dos valores mais recentes do recurso registrados na produção.
O Azure Machine Learning então realiza um teste estatístico ou calcula uma pontuação de distância para comparar a distribuição dos valores mais recentes do recurso em produção com a distribuição da linha de base. Se a estatística de teste ou a pontuação de distância entre as duas distribuições exceder um limite especificado pelo usuário, o Azure Machine Learning identifica a anomalia e notifica o usuário.
Configurar e usar o monitoramento de modelo
Para usar o monitoramento de modelo no Azure Machine Learning:
Primeiro, 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.
- 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 que você pode usar para o monitoramento de modelo no Azure Machine Learning.
Em seguida, configure 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 configuração, você pode especificar seus sinais de monitoramento preferenciais e personalizar métricas e limites para cada sinal.
Por fim, exiba e analise os resultados do monitoramento de modelo. Depois de configurar o monitoramento de modelo, o Azure Machine Learning executará um trabalho de monitoramento em seu agendamento especificado. 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:
- Os sinais de monitoramento integrados para dados tabulares incluem descompasso de dados, descompasso de previsão, qualidade de dados, descompasso de atribuição de recursos e desempenho do modelo.
- Monitoramento de modelo pronto para pontos de extremidade online. Se você implantar seu modelo em produção em um ponto de extremidade online, o Azure Machine Learning coletará os dados de inferência de produção automaticamente e os usará para monitoramento contínuo.
- Vários sinais de monitoramento em uma configuração de monitoramento. Para cada sinal de monitoramento, você pode selecionar as métricas e um limite de alerta de sua preferência.
- Escolha de dados de referência para comparação. Para sinais de monitoramento, você pode definir dados de referência usando dados de treinamento ou dados de produção recentes e anteriores.
- Principais N recursos para monitoramento de 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.
- Capacidade de definir seus sinais de monitoramento personalizados. 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, você ainda poderá coletar dados de inferência de produção para usar no monitoramento de modelo no Azure Machine Learning.
Práticas recomendadas para monitoramento de modelo
Cada modelo de machine learning e seus casos de uso são únicos. Portanto, o monitoramento do modelo é exclusivo para cada situação. A lista a seguir descreve as 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 conheçam o modelo para configurar o monitoramento. Os cientistas de dados que têm uma compreensão modelo e de seus casos de uso podem 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. Com vários sinais de monitoramento, você tem visualizações ampla e granular do monitoramento. Por exemplo, combine os sinais de descompasso de dados e de descompasso de atribuição de recursos para receber avisos antecipados sobre o problemas de desempenho do modelo.
- Use dados de referência apropriados como a linha de base de comparação. Para dados de referência usados como a linha de base de comparação, você pode usar os dados históricos ou de produção anteriores recentes (como dados de treinamento ou de validação). Para uma comparação mais significativa, use os dados de treinamento como a linha de base de comparação para o descompasso e a qualidade dos dados. Use os dados de validação como a linha de base de comparação de descompasso de previsão.
- Especifique a frequência de monitoramento com base no crescimento dos dados de produçã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, defina a frequência de monitoramento como diária. Caso contrário, considere uma frequência de monitoramento semanal ou mensal, com base no crescimento dos seus dados de produção ao longo do tempo.
- Monitore os principais N recursos 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 N recursos. 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, também chamados de reais, com base no seu aplicativo de machine learning, use o sinal de desempenho do modelo para comparar os dados verídicos com a saída do modelo. Essa comparação fornece uma exibição objetiva sobre o desempenho do modelo em produção.
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. O deslocamento da janela retroativa é a duração do tempo para deslocar o final da janela de dados a partir da data da execução do monitoramento.
Por exemplo, seu modelo em produção tem um monitoramento definido para ser executado em 31 de janeiro às 15h15 UTC. Um tamanho de janela retroativa de dados de produção de P7D
ou sete dias e um deslocamento de janela retroativa de dados de P0D
ou zero dias significa que o monitoramento usa dados de produção de 24 de janeiro às 15h15 UTC até 31 de janeiro às 15h15 UTC, a hora em que o monitoramento é executado.
Para os dados de referência, se você definir o deslocamento da janela retroativa como P7D
ou sete dias, a janela de dados de referência terminará um pouco 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, se você definir o tamanho da janela retroativa de dados de referência como P24D
ou 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. O diagrama a seguir ilustra esse exemplo.
Em alguns casos, pode ser ú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
ou cinco dias e um deslocamento de janela retroativa de P2D
ou dois dias. 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, é maior ou igual à soma do tamanho da janela retroativa dos dados de produção e seu deslocamento da janela retroativa, total de sete dias neste exemplo.
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. Há suporte para janelas com rolagem 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. Todos os dados coletados no período de monitoramento antes da execução do trabalho de monitoramento são incluídos na janela retroativa. Use a propriedade
production_data.data_window.lookback_window_size
para ajustar a janela de dados com rolagem 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 com rolagem.
Por padrão, o deslocamento para dados de produção é
P0D
ou zero dias. Altere esse deslocamento com a propriedadeproduction_data.data_window.lookback_window_offset
.Por padrão, o deslocamento para dados de referência é o dobro de
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 propriedadereference_data.data_window.lookback_window_offset
.
Monitoramento de sinais e métricas
O monitoramento do modelo do Azure Machine Learning dá suporte aos sinais e métricas de monitoramento a seguir.
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 ou formato de dados com suporte | Dados de produção | Dados de referência |
---|---|---|---|---|---|
Descompasso de dados | Acompanha 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 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 | Acompanha 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 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 | Acompanha 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 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) | 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 do modelo | Dados de treinamento (obrigatórios) |
Desempenho do modelo: classificação (versão prévia) | Acompanha o desempenho objetivo da saída de um modelo em produção, comparando-o aos dados verídicos 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) | Acompanha o desempenho objetivo da saída de um modelo em produção, comparando-o aos dados verídicos 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 | Perguntas e respostas | Modelo de anotação, prompt, conclusão e contexto | N/D |
Métricas de qualidade dos dados
O sinal de monitoramento de qualidade de dados acompanha a integridade dos dados de entrada de um modelo calculando as três métricas a seguir:
- Taxa de valor nulo
- Taxa de erro de tipo de dados
- Taxa fora dos limites
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.
Taxa de valor nulo
A taxa de valor nulo é a taxa de valores nulos na entrada do modelo de cada recurso. Por exemplo, se a janela de dados de produção de monitoramento contiver 100 linhas e o valor do recurso 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
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. 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.
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
, mas são 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 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 desse recurso.
Taxa fora dos limites
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. A taxa fora dos limites é a taxa de valores de cada recurso, que ficam fora do intervalo apropriado ou definidos pelos dados de referência.
- Para recursos numéricos, o intervalo apropriado é um intervalo numérico entre o valor mínimo e máximo no conjunto de dados de referência, como
[0, 100]
. - Para recursos categóricos, 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, se você tiver um recurso temperature
numérico em que todos os valores no conjunto de dados de referência se enquadram no intervalo [37, 77]
, mas 10 de 100 valores para temperature
na janela de dados de produção ficam fora do intervalo [37, 77]
, 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 os seguintes 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 nesta lista, o monitoramento do modelo do Azure Machine Learning ainda será executado, mas não calculará a taxa fora dos limites desse recurso.
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 (integração contínua e entrega contínua) 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 Monitorar o desempenho dos modelos implantados em produção.