Model Monitoring
O monitoramento de modelos acompanha as entradas, previsões, precisão e latência de um modelo implantado, permitindo detectar deriva de dados e falhas silenciosas antes que os usuários percebam.
A monitorização de modelos é a medição contínua das entradas, saídas, desempenho e estado do serviço de um modelo de aprendizagem automática implementado, com alertas quando algum deles sai do intervalo esperado. As falhas dos modelos costumam ser silenciosas: um detetor continua a devolver caixas com níveis de confiança plausíveis depois de uma câmara ser deslocada, de uma lente ficar suja ou de um produto ser redesenhado, e só a sua precisão se altera. A monitorização compara o comportamento em tempo real com uma referência, normalmente os dados de validação com que o modelo foi aprovado, permitindo às equipas detetar a deriva dos dados e a degradação da precisão através de painéis, em vez de serem alertadas pelos utilizadores. Fecha o ciclo de operações de aprendizagem automática (MLOps) após a implementação do modelo e determina quando é necessário treinar novamente o modelo.
O que monitorizar#
A monitorização em produção costuma abranger quatro camadas:
- Latência de inferência e estado do serviço: Taxa de pedidos, taxa de erros, latência p95 e p99, memória e utilização da GPU, frequentemente recolhidas com o Prometheus e apresentadas em gráficos no Grafana.
- Dados de entrada: Violações de esquema, valores em falta e alterações nas estatísticas das características ou imagens, como brilho, resolução ou tamanho dos objetos.
- Confiança das previsões e distribuição das saídas: A distribuição das classes, as deteções por imagem e as pontuações de confiança. Uma alteração neste âmbito, chamada deriva das previsões, é um sinal de alerta precoce, antes de haver rótulos.
- Desempenho do modelo: Precisão, precisão positiva, revocação ou mAP, calculadas quando os valores de referência ficam disponíveis. Os rótulos de fraude podem chegar semanas depois, na forma de estornos, e as equipas de visão rotulam manualmente uma amostra das imagens de produção.
A Ultralytics Platform incorpora a camada de predição em seus endpoints dedicados: a guia Monitoramento exibe a distribuição de confiança de um modelo YOLO implantado, a confiança média ao longo do tempo, as principais classes e as previsões por imagem, e é possível salvar imagens recentes com suas previsões em um conjunto de dados para revisão e novo treinamento. O guia de monitoramento e manutenção de modelos e a lição da Ultralytics Academy Observabilidade e deriva explicam as verificações de deriva em implantações YOLO.
Dois tipos de alteração causam a maior parte da degradação. A deriva dos dados, também chamada desvio de covariáveis, altera as entradas, como quando uma câmara de inspeção numa linha de fabrico é deslocada ou a iluminação muda. A deriva de conceito altera a relação entre as entradas e as respostas corretas, como quando os burlões mudam de tática e transações antes normais passam a ser fraudulentas. As estatísticas das entradas revelam diretamente a deriva dos dados, e a deriva de conceito só aparece nas métricas de desempenho quando os rótulos ficam disponíveis. Ambas estão entre as causas mais comuns de falha dos modelos de visão computacional em produção.
Deteção da deriva#
Uma verificação comum de deriva compara a distribuição de uma estatística em tempo real com a referência através de um teste de Kolmogorov-Smirnov para duas amostras, que mede a maior diferença entre duas distribuições cumulativas. Este script aplica o teste a níveis de confiança de deteção simulados: uma amostra de referência da validação, uma semana de produção que corresponde a essa amostra e uma semana com valores mais baixos:
import numpy as np
from scipy.stats import ks_2samp
rng = np.random.default_rng(0)
# Detection confidences logged at validation time form the reference distribution
reference = rng.beta(8, 2, size=2000)
# Two simulated production windows: one like the reference, one shifted lower
windows = {"week 1": rng.beta(8, 2, size=500), "week 2": rng.beta(5, 3, size=500)}
for name, live in windows.items():
# Two-sample Kolmogorov-Smirnov test: do both samples come from one distribution?
result = ks_2samp(reference, live)
drift = result.pvalue < 0.01
print(f"{name}: mean {live.mean():.2f}, KS {result.statistic:.3f}, p {result.pvalue:.1e}, drift {drift}")A semana 1 passa com uma estatística KS de 0.037 e p = 0.64. Na semana 2, a confiança média desce para 0.63, face aos 0.80 da semana 1, e uma estatística KS de 0.456 com p = 1.2e-75 assinala a deriva. Com muitos milhares de amostras, até alterações inofensivas se tornam estatisticamente significativas, pelo que as verificações em produção costumam gerar alertas quando a estatística KS ou o índice de estabilidade da população (PSI) ultrapassa um limiar fixo. Bibliotecas de código aberto, como o Evidently e o NannyML, agrupam estes testes em relatórios de deriva, e o NannyML também estima a precisão de um classificador sem rótulos com base nas respetivas pontuações de confiança calibradas. O Amazon SageMaker Model Monitor e o Vertex AI Model Monitoring oferecem as mesmas verificações como serviços geridos. Um alerta dá então início a uma investigação:
Monitorização, observabilidade e avaliação#
- Observabilidade: Os registos, rastreios e dados de entrada armazenados que explicam por que motivo foi acionado um alerta. A monitorização executa verificações predefinidas, e muitos fornecedores oferecem ambos os serviços em conjunto como observabilidade de ML.
- Avaliação de modelos: Avalia um modelo num conjunto de teste reservado antes do lançamento. A monitorização repete essa medição no tráfego em tempo real durante todo o período em que o modelo está em serviço.
- Acompanhamento de experiências: Regista as execuções de treino durante o desenvolvimento, antes de existirem dados de produção.










