Três lições dos nossos projetos de IA
Ao longo de dois anos, acompanhámos dezenas de projetos de IA, desde a exploração inicial até um modelo que é executado todas as noites. Alguns…
Os projetos de machine learning estão a tornar-se mais complexos. Muitas vezes, vários cientistas de dados e engenheiros de dados trabalham em equipa nos mesmos modelos. É importante que os modelos sejam reprodutíveis, escaláveis e fáceis de gerir ao longo de todo o processo. Com vários modelos, conjuntos de dados, notebooks e scripts, é fácil perder a visão de conjunto se não houver uma estrutura clara. O MLOps tornou-se indispensável porque normaliza e automatiza o trabalho, tornando-o escalável. Neste contexto, o MLflow ajuda a manter o controlo do fluxo de trabalho de machine learning.
Com o MLflow, pode acompanhar experiências, registar modelos e consultar automaticamente métricas de desempenho, como accuracy, precision e recall, diretamente na interface. Sem código adicional, mas com mais controlo.
Foi lançada recentemente a versão 3.0 do MLflow, com várias funcionalidades novas que respondem às tendências mais recentes, como GenAI e LLMs, e à necessidade de modelos de data science maiores, mais rápidos e reprodutíveis.
O MLflow 3.0 introduz várias melhorias importantes que permitem trabalhar mais depressa, manter uma visão mais clara e aplicá-lo num leque mais alargado de situações.
O maior avanço na área de deep learning é a melhoria do acompanhamento dos modelos. Embora o MLflow 2.0 já permitisse tecnicamente registar vários checkpoints de modelos, esse processo não estava normalizado e, muitas vezes, faltava uma ligação direta entre um modelo registado e o contexto em que tinha sido treinado e avaliado. O acompanhamento renovado oferece uma rastreabilidade abrangente entre diferentes modelos, runs e métricas de avaliação através da arquitetura LoggedModel. Com esta arquitetura, é possível registar vários checkpoints de modelos e metadados numa única run e acompanhar o respetivo desempenho em diferentes datasets. Isto é especialmente útil em workflows de deep learning, quando pretende guardar e comparar modelos em diferentes momentos do treino. Pode registar vários checkpoints durante um treino e encontrá-los diretamente com os dados de desempenho em diferentes datasets. Ao utilizar o parâmetro step nas funções de registo, pode registar checkpoints em momentos específicos do treino. Cada modelo registado recebe um ID único, que permite identificá-lo facilmente mais tarde. Por fim, pode selecionar o modelo com melhor desempenho entre os vários checkpoints com base nas métricas de desempenho.
Em suma: já não precisa de organizar tudo manualmente. O MLflow fá-lo por si. Cada variante de modelo registada recebe um ID único, associado ao seu contexto, à etapa de treino e aos resultados da avaliação. Pode encontrar facilmente qual foi o modelo registado em cada momento e qual foi o seu desempenho.
O MLflow oferece agora:
Utilizamos o Intel Image Classification
um conjunto de fotografias de paisagens do Kaggle, categorizadas em diferentes classes. Depois de dividir os dados em conjuntos de treino, validação e teste, aplicamos data augmentation com Keras.
Abaixo, apresentamos exemplos de como ficam as imagens após a aplicação de data augmentation.
Em seguida, fazemos o pré-processamento com a mesma pipeline do MobileNetV2.
Escolhemos o MobileNetV2 pelo equilíbrio entre desempenho e velocidade. O modelo é leve e pré-treinado, e congelamos as camadas de base porque não queremos treinar novamente todos os pesos.
Em vez de autolog, optamos deliberadamente pelo logging manual. Isto permite controlar melhor o que é ou não registado e as informações que guardamos sobre o modelo. É essencial para uma avaliação escalável. Registamos checkpoints por epoch, diferentes métricas por dataset e parâmetros por variante do modelo. Uma callback personalizada do MLflow regista tudo automaticamente após cada epoch.
Esta função é utilizada numa classe de callback personalizada que, durante o treino, regista após cada epoch as informações sobre o modelo e a respetiva execução de treino.
Agora que o modelo está compilado, podemos treiná-lo. Como também queremos utilizar o MLflow para acompanhar o treino e visualizar o desempenho do modelo, primeiro temos de iniciar uma experiência de tracking. É aqui que se indica onde encontrar todas as execuções de treino e se atribui um nome à experiência.
O modelo está pronto para ser treinado, com cada execução acompanhada no MLflow. Isto permite realizar várias execuções dentro da mesma experiência e compará-las mais tarde. Uma das nossas execuções tem o seguinte aspeto:
Depois de executar o modelo, podemos utilizar a nova funcionalidade do MLflow 3.0 para encontrar os modelos registados e os respetivos resultados através do código abaixo:
Com o MLflow 3.0, é fácil filtrar por desempenho para selecionar o melhor modelo. A possibilidade de aplicar filtros é uma adição útil. Pode definir condições ao procurar o melhor modelo e o mais adequado, utilizando termos de pesquisa como “accuracy > 0.9”. Assim, pode selecionar sempre o modelo com melhor desempenho para o guardar e implementar.
Para este caso de estudo, analisámos qual o modelo com melhor desempenho em função da epoch. Na página Run da MLflow UI, podemos ver a execução e os modelos registados com os nomes corretos.
O separador Models mostra todos os modelos guardados e as respetivas métricas.
O separador artifacts reúne todos os ficheiros, resultados e figuras adicionais que podem ser guardados para cada modelo, como informações sobre o ambiente em que o modelo foi executado ou sobre a sua arquitetura.
O MLflow também permite adicionar manualmente ficheiros/figuras a uma execução. Pode encontrá-los no separador Artifacts da execução, onde podem ser úteis para registar informações adicionais, como uma confusion matrix.
Este caso de uso mostra como pode usar o MLflow 3.0 para criar as bases de um workflow de machine learning estruturado e reproduzível. Mas há muito mais que pode fazer com MLOps para melhorar a sua plataforma.
Quer integrar mais o MLflow na sua organização? Considere:
O que precisa depende da fase em que se encontra no seu processo de MLOps. A maturidade do seu processo de data science, a escala a que trabalha e a complexidade dos seus modelos são fatores importantes.
Na DSL, teremos todo o gosto em pensar consigo. Agende uma conversa inicial.
Ao longo de dois anos, acompanhámos dezenas de projetos de IA, desde a exploração inicial até um modelo que é executado todas as noites. Alguns…
Muitas organizações já realizaram um projeto-piloto de IA. O modelo funciona, a demonstração é aplaudida e depois não acontece mais nada. Pela nossa…
A inteligência artificial está a evoluir rapidamente. Surgem novos modelos quase todas as semanas, e cada vez mais organizações experimentam a IA. Ao…
Quer ser a primeira pessoa a saber quando publicamos um novo artigo no blogue?
Obrigado pela sua inscrição!