Review do Livro “Machine Learning Engineering with Python – 2nd edition”

Machine Learning Engineering with Python - MLOps - Ciclo de vida de modelos
Capa do livro Machine Learning Engineering with Python - 2nd edition

Review do livro “Machine Learning Engineering with Python – 2nd Edition“, que foi escrito por Andrew P. McMahon e publicado pela Packt Pub. Neste livro você aprenderá sobre MLOps e como trabalhar de forma efetiva com o ciclo de vida de modelos de Machine Learning.

O livro e seus capítulos

Quero compartilhar minhas impressões, mas já destaco que é uma leitura completa para entusiastas de MLOps e EngML. Para evitar dúvidas quanto à terminologia, escrevi sobre a diferença destes termos aqui neste post.

Com uma abordagem direta, o livro ensina de forma prática como gerenciar o ciclo de vida de modelos de aprendizado de máquina usando técnicas de MLOps. O livro é organizado em 9 capítulos e aborda conceitos técnicos, padrões de implementação com boas práticas e metodologias de desenvolvimento de modelos.

Vamos aos capítulos…

Cap 1 – Introdução à Machine Learning Engineering

Este capítulo discuti um pouco sobre as carreiras e disciplinas de Ciência de Dados, Engenharia de Dados, Engeharia de ML e Engenharia de MLOps. Discute sobre trabalhar de forma efetiva com um time multidisciplinar, além de apresentar desafios do mundo real e compartilha padrões de desenvolvimento e boas práticas para serem seguidas;

Cap 2 – Processo de desenvolvimento de Machine Learning

Aqui passa um pouco sobre o CRISP-DM (Cross Industry Standard Process for Data Mining), além de ajudar a montar o setup necessário para desenvolver soluções de EngML com Python;

Cap 3 – Do modelo para a Fábrica de Modelos

Aborda as etapas necessárias para construir as pipelines de desenvolvimento, aprofundando em cada estágio apresentado. Explica as fases de definição dos ambientes, escolha e definição das variáveis, treino e retreino do modelo, persistência e serving (ainda não consegui usar um termo em Português mais apropriado do que o termo original em Inglês para o Serving) do modelo;

Cap 4 – Empacotando a aplicação (prefiro o termo original “Packaging”, mas empacotamento funciona aqui)

Aqui o autor dedica bastante tempo para trabalhar com boas práticas de Python e como isso pode lhe ajudar a desenvolver suas pipelines mais otimizadas;

Cap 5 – Publicando padrões e ferramentas

São discutidas boas práticas e padrões de projetos para desenvolvimento de projetos de Machine Learning, deem uma atenção especial à este capítulo. O texto cobre assuntos como microsserviços, containerização, mas também discute ferramentas de mercado como Airflow, ZenML e Kubeflow. O capítulo é concluído com uma discussão estratégica para a publicação do seu projeto;

Cap 6 – Escalando a aplicação

Também é um assunto importante, porque escalabilidade reflete diretamente no quanto seu ambiente atenderá os clientes e também o quanto isso vai custar no fim do mês. Neste capítulo são discutidos tópicos sobre desenho de soluções e alternativas de cloud computing para atender a demanda do projeto, mas sem gastar uma fortuna;

Cap 7 – Deep Learning, Generative AI e LLMOps

Posso estar sendo muito injusto, mas aqui eu arrisco dizer que este capítulo entrou no livro por questões de timing. Até novembro/2022 quando a OpenAI lançou o ChatGPT, eram poucos projetos que se mostravam relevantes para esse tipo de tecnologia. Porém, após o lançamento do ChatGPT e a facilidade de uso para o publico fora do nicho de LLM, a busca por este tema cresceu muito. Inclusive, estes assuntos de Generative AI estão no Hype não só nas publicações de redes sociais, mas também em discussões estratégicas em empresas e congressos científicos.

É apresentado uma introdução à Deep Learning com PyTorch e fine-tuning. Em seguida introduz o assunto de LLM (Large Language Model) e finaliza o capítulo com a explicação de como funciona uma pipeline de LLM Operation.

Cap 8 – Construindo um modelo com Microsserviços e 9 – Construindo um caso de uso de ETML

Aqui tomei a liberdade de juntar os dois capítulos que, na minha interpretação, seguem um propósito muito parecidos. No capítulo 8 é discutido como construir sua solução a partir de peças e arquitetura de microsserviços, mas no capítulo 9 são discutidas as tarefas para se fazer no ETML (Extract, Tranform and Machine Learning).

Confesso que foi aqui primeira vez que li sobre o assunto com o nome de ETML.

O porque eu juntei os dois capítulos? Porque os dois tratam de casos de uso, no capítulo 8 é um estudo de Forecasting, mas no capítulo 9 é um estudo de Processamento Batch.

Minha opinião

Na minha opinião é um material útil para aprender ou aprimorar suas habilidades em EngML com Python. O livro oferece uma visão geral, porém prática e aplicada, de como criar soluções robustas e escaláveis com ML usando ferramentas e técnicas modernas, incluindo soluções Open Source e também de Cloud Computing.

No geral recomendo a leitura para quem se interessa pelo assunto, a versão digital está na Amazon por um pouco mais de 200 reais enquanto escrevo esse texto. Para mim, os capítulos que discutem arquitetura, boas práticas e padrões de projetos são os que me chamaram mais atenção.

No site da Packt Pub, o livro digital está em promoção por apenas 10USD, aproveite enquanto está disponível nessa promoção: https://www.packtpub.com/product/machine-learning-engineering-with-python-second-edition/9781837631964

MLOps – Ciclo de vida de modelos

No Github da editora você pode acompanhar os códigos do livro e criar seus projetos envolvendo o ciclo de vida de modelos.

 

Bons estudos!


2024 e eu ainda não me adaptei com eBooks, só consigo ler livros físicos… vai entender!

livro físico Manchine Learning Engineering with Python
Eu segurando o livro físico “Manchine Learning Engineering with Python – 2nd edition”
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.