https://github.com/HeyLucasLeao/tinyshift

Imagine um cenário em que você precisa monitorar os dados em produção. Por onde começar?

Eu queria algo prático e rápido para estudos, sem precisar reescrever código ou instalar bibliotecas adicionais. Meu objetivo era simples: analisar resultados e observar mudanças nas características dos dados ao longo do tempo. Foi assim que surgiu o Tinyshift. Não queria reinventar a roda com grandes projetos como Nannyml — eles já fazem isso bem. Precisava apenas de algo básico, leve na memória e que usasse somente as dependências do meu dia a dia para resolver meu problema.

Dito isto, construi apenas três classes:

Junto a isto, basta eu selecionar meus dados de referência, que consigo visualizar como os novos dados se comportam em relação a eles, me auxiliando a tomar decisões adequadas.

O que é Data Drift?

Data Drift é uma mudança na distribuição dos dados de entrada ao longo do tempo. Quando os dados que seu modelo recebe em produção começam a divergir significativamente dos dados de treinamento, isso pode levar à degradação no desempenho do modelo, prejudicando diretamente o seu negócio. O monitoramento desse tipo de comportamento é crucial porque:

Performance

Há diversas maneiras de monitorar isto, uma delas é baseada no desempenho do nosso modelo através de métricas tradicionais — como acurácia, F1-Score, especificidade e outras. Podemos gerar isso em intervalos de tempos pré-definidos, e analisar caso a caso... mas como podemos ir além?

Para me ajudar a ser criterioso com os resultados, eu estimo a média dessas métricas, um intervalo de confiança e, por fim, gerar pontos limites para classificar a degradação do modelo. Por exemplo:

Infelizmente para o contexto de performance, devemos de alguma forma conseguir o valor verdadeiro de cada predição. Por sanidade e não termos sermos tão abrangentes, vamos considerar a situação em que em algum momento consigo obter isso.

<aside> 💡

Pelo Nannyml você consegue estimar o valor real desse período, auxiliando para prever a performance do modelo a partir da probabilidade dos acertos dentro de uma matriz de confusão. Não abordarei esta técnica, mas caso haja esta necessidade, considere o trabalho deles.

</aside>