Melhores práticas para testar e monitorar modelos de ML

teste e monitoramento de modelo de ml
TVs com monitoramento de modelos de ML

O Machine Learning (ML) é uma área da Inteligência Artificial que permite criar sistemas capazes de aprender com os dados e fazer previsões. Que o ML está revolucionando diversos setores da indústria, desde a saúde até as finanças, não é mais segredo para ninguém. No entanto, para garantir que os modelos de ML funcionem como esperado, é crucial testá-los e monitorá-los adequadamente. Neste texto, iremos explorar as melhores práticas para testar e monitorar modelos de Machine Learning.

Testar modelos de Machine Learning

Primeiramente, é importante entender que o teste de modelos de ML é um pouco diferente do teste de software tradicional. Em vez de simplesmente verificar se o código fonte está livre de erros, precisamos avaliar a precisão e a eficácia do modelo. Para isso, podemos usar várias técnicas, como por exemplo, validação cruzada e teste A/B. Podemos dizer que testar modelos de ML significa verificar se eles atendem aos requisitos funcionais e não funcionais, como métrica de avaliação de performance, robustez, explicabilidade, ética e responsabilidade e privacidade.

Técnicas de testes

Algumas das técnicas mais usadas para testar modelos de Machine Learning são:

– Testes unitários: consistem em verificar se cada componente do modelo funciona como esperado, isoladamente. Por exemplo, se os dados estão sendo pré-processados corretamente, se as funções de perda e otimização estão bem definidas, se os hiperparâmetros estão dentro dos limites aceitáveis, etc.

– Testes de integração: consistem em verificar se os componentes do modelo funcionam bem em conjunto, como um todo. Por exemplo, se o modelo é capaz de lidar com diferentes tipos de dados de entrada, se o pipeline de treinamento e inferência está funcionando corretamente, se o modelo é compatível com o ambiente de produção, etc.

– Testes de sistema: consistem em verificar se o modelo atende aos requisitos do usuário final, como performance, usabilidade, segurança, etc. Por exemplo, se o modelo produz resultados consistentes e confiáveis, se o modelo é fácil de usar e entender, se o modelo respeita os princípios éticos e legais, etc.

– Validação Cruzada: A validação cruzada é um método de avaliação de modelos de Machine Learning onde, por exemplo, o conjunto de dados é dividido em partes, e o modelo é treinado e testado várias vezes em diferentes combinações dessas partes.

– Teste A/B: O teste A/B para modelos de Machine Learning é um experimento onde dois modelos são comparados ao serem aplicados a diferentes grupos de dados para determinar qual tem melhor desempenho.

 

Monitorar modelos de Machine Learning

Além de testar os modelos de ML, também é essencial monitorá-los continuamente. Isso porque os dados de entrada podem mudar com o tempo, o que pode afetar a performance do modelo. Essa mudança dos dados é natural e é conhecida como Drift (desvio), os dois mais comuns são Data Drift e Concept Drift. Monitorar modelos de Machine Learning significa acompanhar o comportamento e o desempenho dos modelos ao longo do tempo, em diferentes condições e cenários. O objetivo é detectar e corrigir possíveis problemas ou anomalias que possam afetar a qualidade ou a confiabilidade dos modelos.

Data Drift refere-se a uma mudança na distribuição dos dados de entrada ao longo do tempo. Por exemplo, se você treinou um modelo para prever a demanda de um produto com base em dados históricos, mas os padrões de compra dos clientes mudaram, isso seria considerado um Data Drift. É importante monitorar o Data Drift para garantir que seu modelo continue relevante e preciso.

Por outro lado, Concept Drift ocorre quando a relação entre as variáveis de entrada e a variável de saída muda ao longo do tempo. Por exemplo, se você tem um modelo que prevê a probabilidade de chuva com base na temperatura e na pressão atmosférica, um Concept Drift poderia ocorrer se, devido às mudanças climáticas, a relação entre esses fatores e a probabilidade de chuva mudasse.

Ambos os conceitos são fundamentais para a manutenção e monitoramento de modelos de Machine Learning, pois permitem identificar quando um modelo pode estar se tornando menos preciso ou eficaz. Isso, por sua vez, pode indicar a necessidade de re-treinar ou ajustar o modelo.

Métricas de Monitoramento

Algumas das métricas mais usadas para monitorar modelos de Machine Learning são:

– Métricas de negócio: são as métricas que medem o impacto do modelo no contexto do problema que ele visa resolver. Por exemplo, se o modelo é usado para recomendar produtos aos clientes, as métricas de negócio podem ser o número de vendas, a taxa de conversão, o lucro gerado, etc.

– Métricas de modelo: são as métricas que medem o desempenho do modelo em termos de acurácia, precisão, recall, F1-score, AUC-ROC, etc. Essas métricas devem ser calculadas tanto no conjunto de treinamento quanto no conjunto de teste ou validação, para verificar se o modelo está sofrendo de overfitting ou underfitting.

– Métricas de dados: são as métricas que medem a qualidade e a diversidade dos dados usados para treinar e testar o modelo. Por exemplo, se os dados estão balanceados, limpos, atualizados, representativos da realidade, etc.

Ferramentas para testar e monitorar modelos de ML

Algumas das ferramentas mais usadas para testar e monitorar modelos de Machine Learning são:

PyTest: é um framework de testes em Python que permite escrever testes unitários, de integração e de sistema para modelos de Machine Learning. PyTest oferece uma sintaxe simples e flexível para definir casos de teste, executar testes em paralelo ou sequencialmente, gerar relatórios detalhados dos resultados dos testes, etc.
MLflow: é uma plataforma aberta para gerenciar todo o ciclo de vida dos modelos de Machine Learning. MLflow permite rastrear os experimentos realizados com diferentes configurações e hiperparâmetros dos modelos, registrar os artefatos gerados pelos modelos (como pesos, metadados, gráficos), implantar os modelos em diferentes ambientes (como nuvem e borda), monitorar as métricas de negócio e de modelo dos modelos em produção, etc.
TensorFlow Data Validation (TFDV): é uma biblioteca que permite analisar e validar os dados usados para treinar e testar modelos de Machine Learning. TFDV permite gerar estatísticas descritivas dos dados (como média, desvio padrão, distribuição), detectar anomalias nos dados (como valores faltantes, outliers), comparar os dados entre diferentes conjuntos (como treino e teste), etc. Inclusive, há um tempo atrás, subi no meu repo do Github um código de TFDV.

Conclusão

Testar e monitorar modelos de Machine Learning são atividades essenciais para garantir que os sistemas sejam confiáveis, seguros e éticos. Além de garantir que eles estejam funcionando corretamente e entregando os resultados esperados. Neste post, apresentei melhores práticas para testar e monitorar modelos de Machine Learning.

 

Imagem de capa criada com IA pelo Bing: Utilizei o prompt: “A panel of TVs on an office wall. There is a desk with some coffee cups, and a notepad with workflow drawings. The desk is messy, like a real office. The panel displays indicators and charts, ensuring they have green and red colors, as well as some bar charts.”.

Sobre Diego Nogare 346 Artigos
Diego Nogare é Gerente Técnico de Engenharia de Machine Learning no Itaú-Unibanco. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.