Monitoramento de modelo do Azure Machine Learning
O monitoramento de modelos é a última etapa do ciclo de vida de ponta a ponta do aprendizado de máquina. Esta etapa acompanha o desempenho do modelo na produção e analisa o desempenho do ponto de vista operacional e de ciência de dados. Neste artigo, você aprenderá sobre o monitoramento de modelos no Aprendizado de Máquina do Azure, os sinais e métricas que você pode monitorar e as práticas recomendadas para monitoramento de modelos.
Ao contrário dos sistemas de software tradicionais, o comportamento do sistema de aprendizado de máquina não depende apenas de regras especificadas no código, mas também é aprendido a partir de dados. Alterações na distribuição de dados, distorção no serviço de treinamento, problemas de qualidade de dados, mudanças nos ambientes e mudanças no comportamento do consumidor podem fazer com que um modelo se torne obsoleto.
Quando um modelo se torna obsoleto, seu desempenho pode se degradar a ponto de não agregar valor aos negócios 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 em fluxo contínuo e 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 verdade básica.
Importante
O monitoramento de modelo do Aprendizado de Máquina do Azure dá suporte apenas à autenticação baseada em credenciais, como um 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 modelo ou dados por meio do Aprendizado de Máquina do Azure ou da Grade de Eventos do Azure. Ao receber alertas, você pode usar o estúdio de Aprendizado de Máquina do Azure 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 manipular um sinal de monitoramento interno, como desvio 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.
Em seguida, o Azure Machine Learning executa 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 Aprendizado de Máquina do Azure identificará a anomalia e notificará 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 do Azure Machine Learning.
- Se você implantar um modelo fora do Aprendizado de Máquina do Azure ou em um ponto de extremidade em lote do Aprendizado de Máquina do Azure, será responsável por coletar dados de inferência de produção que poderá usar para o monitoramento do modelo do Aprendizado de Máquina do Azure.
Em seguida, configure o monitoramento do modelo. Você pode usar o SDK do Azure Machine Learning/CLI 2.0 ou a interface do usuário do estúdio para configurar facilmente o monitoramento do modelo. Durante a configuração, você pode especificar seus sinais de monitoramento preferidos e personalizar métricas e limites para cada sinal.
Finalmente, visualize e analise os resultados do monitoramento do modelo. Depois de configurar o monitoramento de modelo, o Aprendizado de Máquina do Azure executa um trabalho de monitoramento em sua agenda 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. Você pode seguir o link na notificação de alerta para exibir e analisar os resultados do monitoramento em seu espaço de trabalho do Azure Machine Learning.
Capacidades de monitorização de modelos
O Azure Machine Learning fornece os seguintes recursos para monitoramento contínuo de modelos:
- Sinais de monitoramento integrados para dados tabulares, incluindo desvio de dados, desvio de previsão, qualidade de dados, desvio de atribuição de recursos e desempenho do modelo.
- Monitoramento de modelo pronto para uso para endpoints on-line. Se você implantar seu modelo na produção em um ponto de extremidade online, o Azure Machine Learning coletará 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 suas métricas preferidas e o limite de alerta.
- Escolha dos 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 anteriores recentes.
- Principais recursos N para desvio de dados ou monitoramento de qualidade de dados. Se você usar dados de treinamento como dados de referência, poderá definir desvio de dados ou sinais de qualidade de dados em camadas sobre a importância do recurso.
- Capacidade de definir sinais de monitoramento personalizados. Se os sinais de monitoramento integrados não forem adequados para o 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 fonte. Se você implantar modelos fora do Aprendizado de Máquina do Azure ou implantar modelos em pontos de extremidade em lote, ainda poderá coletar dados de inferência de produção por conta própria para usar no monitoramento de modelos do Azure Machine Learning.
Práticas recomendadas para monitoramento de modelos
Cada modelo de aprendizado de máquina e seus casos de uso são únicos. Portanto, o monitoramento do modelo é único para cada situação. A lista a seguir descreve as práticas recomendadas para o monitoramento de modelos.
- Inicie o monitoramento do modelo imediatamente após implantar um modelo na produção.
- Trabalhe com cientistas de dados que estejam familiarizados com o modelo para configurar o monitoramento. Os cientistas de dados que têm informações sobre o modelo e seus casos de uso podem recomendar o monitoramento de sinais e métricas e definir os limites de alerta corretos para cada métrica para evitar fadiga de alerta.
- Inclua vários sinais de monitorização na sua configuração. Com vários sinais de monitoramento, você obtém visualizações de monitoramento amplas e granulares. Por exemplo, você pode combinar desvio de dados e sinais de desvio de atribuição de recursos para obter avisos antecipados sobre 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 linha de base de comparação, você pode usar dados de produção anteriores recentes ou dados históricos, como dados de treinamento ou validação. Para uma comparação mais significativa, use os dados de treinamento como linha de base de comparação para desvio de dados e qualidade dos dados. Use dados de validação como linha de base de comparação para desvio 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 tráfego diário intenso 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 dados de produção ao longo do tempo.
- Monitore os principais recursos N 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 desvio de dados ou o monitoramento de qualidade de dados para os principais recursos importantes 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 monitorar o ruído.
- Use o sinal de desempenho do modelo quando tiver acesso aos dados de verdade do solo. Se você tiver acesso a dados de verdade básica, também chamados de reais, com base em seu aplicativo de aprendizado de máquina, use o sinal de desempenho do modelo para comparar os dados de verdade do solo com a saída do modelo. Esta comparação fornece uma visão objetiva do desempenho do modelo na produção.
Tamanho e deslocamento da janela de retrospetiva
O tamanho da janela de retrospetiva é a duração do tempo no formato ISO 8601 para sua janela de dados de produção ou referência. O deslocamento da janela de retrospetiva é a duração do tempo para compensar o final da janela de dados a partir da data de execução do monitoramento.
Por exemplo, seu modelo em produção tem um monitor definido para ser executado em 31 de janeiro às 15h15 UTC. Um tamanho de janela de retrospetiva de dados de produção de P7D
ou sete dias e um deslocamento de janela de retrospetiva de dados de P0D
ou zero dias significa que o monitor usa dados de produção de 24 de janeiro às 15h15 UTC até 31 de janeiro às 15h15 UTC, o horário em que o monitor é executado.
Para os dados de referência, se você definir o deslocamento da janela de retrospetiva para P7D
ou sete dias, a janela de dados de referência terminará imediatamente antes do início da janela de dados de produção, para que não haja sobreposição. Em seguida, você pode definir o tamanho da janela de retrospetiva de dados de referência para ser tão grande quanto desejar.
Por exemplo, se você definir o tamanho da janela de retrospetiva de dados de referência para P24D
ou 24 dias, a janela de dados de referência incluirá dados de 1º de janeiro às 15h15 UTC até 24 de janeiro às 15h15 UTC. O diagrama a seguir ilustra este exemplo.
Em alguns casos, pode ser útil definir o deslocamento da janela de retrospetiva para seus dados de produção para um número maior que zero dias. Por exemplo, se o monitor estiver programado para ser executado semanalmente às segundas-feiras às 15h15 UTC, mas você não quiser usar dados do fim de semana na execução de monitoramento, poderá usar um tamanho de janela de retrospetiva de P5D
ou cinco dias e um deslocamento de janela de retrospetiva 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ê deve 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, você pode garantir janelas não sobrepostas certificando-se de que o deslocamento da janela de retrospetiva de dados de referência, P10D
ou 10 dias neste exemplo, seja maior ou igual à soma do tamanho da janela de retrospetiva de dados de produção e seu deslocamento da janela de retrospetiva, sete dias no total neste exemplo.
Com o monitoramento de modelo do Azure Machine Learning, você pode usar padrões inteligentes para o tamanho da janela de retrospetiva e o deslocamento da janela de retrospetiva ou pode personalizá-los para atender às suas necessidades. São suportadas janelas rolantes e janelas fixas.
Personalizar o tamanho da janela de retrospetiva
Você tem a flexibilidade de selecionar um tamanho de janela de retrospetiva para os dados de produção e os dados de referência.
Por padrão, o tamanho da janela de retrospetiva dos 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 de retrospetiva. Você pode usar a
production_data.data_window.lookback_window_size
propriedade para ajustar a janela de dados contínuos para dados de produção.Por padrão, a janela de retrospetiva dos dados de referência é o conjunto de dados completo. Você pode usar a
reference_data.data_window.lookback_window_size
propriedade para ajustar o tamanho da janela de retrospetiva 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 de retrospetiva
Você tem a flexibilidade de selecionar um deslocamento de janela de retrospetiva para sua janela de dados para os dados de produção e os dados de referência. Você pode usar o deslocamento para controle granular sobre os dados usados pelo monitor. O deslocamento aplica-se apenas às janelas de dados contínuos.
Por padrão, o deslocamento para dados de produção é
P0D
de zero dias. Você pode modificar esse deslocamento com aproduction_data.data_window.lookback_window_offset
propriedade.Por padrão, o deslocamento para dados de referência é duas vezes o
production_data.data_window.lookback_window_size
. Essa configuração garante que haja dados de referência suficientes para resultados de monitoramento estatisticamente significativos. Você pode modificar esse deslocamento com areference_data.data_window.lookback_window_offset
propriedade.
Monitoramento de sinais e métricas
O monitoramento de modelo do Azure Machine Learning dá suporte aos seguintes sinais e métricas de monitoramento.
Importante
Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. A versão de visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Sinal de monitorização | Description | Métricas | Tarefas de modelo ou formato de dados suportado | Dados de produção | Dados de referência |
---|---|---|---|---|---|
Desvio de dados | Rastreia alterações na distribuição dos dados de entrada de um modelo comparando a distribuição com os dados de treinamento do modelo ou dados de produção recentes. | Distância Jensen-Shannon, Índice de Estabilidade Populacional, Distância Normalizada de Wasserstein, Teste de Kolmogorov-Smirnov de Duas Amostras, Teste Qui-Quadrado de Pearson | Classificação (dados tabulares), Regressão (dados tabulares) | Dados de produção: Entradas de modelo | Dados de produção anteriores recentes ou dados de treinamento |
Desvio de previsão | Rastreia alterações na distribuição das 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. | Distância Jensen-Shannon, Índice de Estabilidade Populacional, Distância Normalizada de Wasserstein, Distância de Chebyshev, Teste de Kolmogorov-Smirnov de Duas Amostras, Teste 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 de dados | Rastreia a integridade dos dados de entrada de um modelo comparando-os com os dados de treinamento do modelo ou dados de produção recentes. As verificações de qualidade de 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 de modelo | Dados de produção anteriores recentes ou dados de treinamento |
Desvio de atribuição de recursos (visualização) | Baseado na contribuição de recursos para previsões, também conhecido como importância do recurso. As faixas de deriva de atribuição de recursos apresentam importância durante a produção, comparando-a com a importância do recurso durante o treinamento. | Ganho acumulado descontado normalizado | Classificação (dados tabulares), Regressão (dados tabulares) | Dados de produção: Entradas e saídas do modelo | Dados de formação (obrigatório) |
Desempenho do modelo: Classificação (visualização) | Rastreia o desempenho objetivo da saída de um modelo na produção, comparando-a com os dados de verdade do solo coletados. | Precisão, Precisão e Recall | Classificação (dados tabulares) | Dados de produção: Saídas do modelo | Dados de verdade de base (obrigatório) |
Desempenho do modelo: Regressão (visualização) | Rastreia o desempenho objetivo da saída de um modelo na produção, comparando-a com os dados de verdade do solo coletados. | Erro Absoluto Médio (MAE), Erro Quadrático Médio (MSE), Erro Quadrático Médio Raiz (RMSE) | Regressão (dados tabulares) | Dados de produção: Saídas do modelo | Dados de verdade de base (obrigatório) |
IA generativa: segurança e qualidade de geração (visualização) | Avalia aplicações generativas de IA para segurança e qualidade, usando métricas assistidas por GPT. | Fundamentação, Relevância, Fluência, Semelhança, Coerência | Perguntas e Respostas | Modelo de prompt, conclusão, contexto e anotação | N/A |
Métricas 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 a seguir:
- Taxa de valor nulo
- Taxa de erro de tipo de dados
- Taxa fora dos limites
O monitoramento de modelo do Aprendizado de Máquina do Azure dá suporte a uma precisão de até 0,00001 para cálculos da taxa de valor nulo, taxa de erro de tipo de dados e 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 do temperature
recurso 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 a partir dos dados de referência. A taxa de erro do tipo de dados é a taxa de diferenças do 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 para o temperature
recurso for inferido como sendo IntegerType
dos dados de referência, mas na janela de dados de produção, 10 de 100 valores para temperature
não IntegerType
são, mas são cadeias de caracteres, a taxa de erro do tipo de dados para temperature
é 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: , , , , TimestampType
DoubleType
, StringType
, IntegerType
, , FloatType
, ByteType
LongType
, e DateType
. BinaryType
BooleanType
ShortType
Se o tipo de dados de um recurso não estiver nessa lista, o monitoramento do modelo do Aprendizado de Máquina do Azure ainda será executado, mas não calculará a taxa de erro do 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 ou conjunto aceitável para cada recurso a partir dos dados de referência. A taxa out-of-bounds é a taxa de valores para cada característica que estão fora do intervalo ou conjunto apropriado determinado pelos dados de referência.
- Para características numéricas, o intervalo adequado é o intervalo numérico entre os valores mínimo e máximo no conjunto de dados de referência, como
[0, 100]
. - Para características categóricas, 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 numérico temperature
em que todos os valores no conjunto de dados de referência estejam dentro do intervalo [37, 77]
, mas 10 de 100 valores para temperature
na janela de dados de produção estejam fora do intervalo [37, 77]
, a taxa fora dos limites para temperature
é de 10%.
O Azure Machine Learning dá suporte ao cálculo da taxa de out-of-bounds para os seguintes tipos de dados disponíveis no PySpark: StringType
, IntegerType
, DoubleType
, ByteType
, LongType
e FloatType
. Se o tipo de dados de um recurso não estiver nessa lista, o monitoramento do modelo do Aprendizado de Máquina do Azure 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
Você pode usar eventos gerados por execuções de monitoramento de modelo do Aprendizado de Máquina do Azure para configurar aplicativos, processos ou fluxos de trabalho de integração contínua/entrega contínua (CI/CD) com a Grade de Eventos do Azure. Quando o monitor do modelo deteta desvios, problemas de qualidade de dados ou degradação do desempenho do modelo, você pode acompanhar esses eventos com a Grade de Eventos e agir programaticamente.
Por exemplo, se a precisão do seu modelo de classificação na produção cair abaixo de um determinado limite, você poderá usar a Grade de Eventos para iniciar um trabalho de retreinamento que use dados de verdade do terreno coletados. Para saber como integrar o Azure Machine Learning com a Grade de Eventos, consulte Monitorar o desempenho de modelos implantados na produção.