Olá! Seja muito bem-vindo ao curso de Deploy e Operacionalização de Modelos. Eu me chamo Ana Clara, sou cientista de dados sênior, e irei acompanhar vocês nessa jornada.
Audiodescrição: Ana Clara é uma mulher de pele clara, com cabelos longos e loiros. Ela está vestindo uma camiseta azul marinho com a palavra "Alura" escrita no centro. Ao fundo, há uma estante com alguns acessórios e uma iluminação em tons de azul e roxo.
Neste curso, vamos abordar todo o conceito por trás da implementação de modelos em produção. Isso não envolve apenas pegar o modelo do Jupyter Notebook, mas sim construir toda uma arquitetura, criar um ambiente adequado, e aplicar conceitos e princípios importantes que nos permitem construir e colocar modelos em produção.
Um dado interessante para motivar vocês nessa jornada: mais de 80% dos modelos não são colocados em produção. Nas próximas aulas, falaremos melhor sobre esses números. Para evitar que isso aconteça, vamos lidar com essas lacunas introduzindo o conceito de MLOps, que são as operações com modelos de machine learning (operações de machine learning).
Vamos entender todos os fundamentos por trás do MLOps, como surgiram esses princípios, qual é a motivação e quais são os requisitos para aplicarmos esses fundamentos e boas práticas na construção de um sistema de machine learning em um grande projeto.
Em seguida, falaremos sobre as etapas para colocar um modelo em produção, que envolvem os conceitos de MLOps. Isso inclui o desenvolvimento e o design dos modelos, abrangendo todos os requisitos, a questão de como vamos lidar com as variáveis, os dados necessários, a arquitetura, e começar a pensar se temos o suficiente para construir e colocar esse modelo em produção. Discutiremos também os requisitos do negócio e como tornar esse modelo reprodutível e sustentável a longo prazo. Falaremos sobre isso nesta etapa.
Na próxima etapa do nosso ciclo de MLOps, discutiremos a preparação para a produção. Após desenvolvermos e desenharmos o projeto e a ideia do modelo, precisamos torná-lo pronto para ser implementado em produção. Vamos verificar os riscos, realizar testes de qualidade, escolher o melhor modelo para produção, analisar métricas, preparar o ambiente e o código para implementação, entre outros aspectos.
Em seguida, chegaremos ao deploy em produção. Prepararemos o modelo, o pacote e todos os artefatos necessários. Vamos entender como construir nosso pipeline CI/CD, abordar a questão de containers e ambientes produtivos, e explorar as formas de entregar este modelo em produção. Discutiremos o serving, o consumo final e como servir o modelo para o cliente. Existem diferentes formas de implementar essa solução, e vamos explorar essas possibilidades.
Por fim, encerraremos o ciclo de MLOps abordando o monitoramento, a observabilidade e o retreinamento de modelos em produção. Não basta entregar o modelo ao cliente final; é necessário monitorar os resultados, identificar possíveis erros e problemas que possam surgir ao longo do tempo com o modelo em produção. Devemos estar prontos para retreiná-lo a qualquer momento, lidando com ele em produção sem comprometer sua disponibilidade para o cliente.
Durante a aula, aplicaremos ferramentas amplamente conhecidas no mercado, como o Azure, uma plataforma em cloud. Utilizaremos também ferramentas como o MLflow para registro e acompanhamento, reprodutibilidade dos modelos, GitHub, GitHub Actions, Evidently AI, entre outras.
Estamos muito animados com sua participação nesta nova jornada. Seja bem-vindo! Até mais!
Sejam bem-vindos à Aula 1.2, onde abordaremos os Fundamentos de MLOps. Vamos iniciar discutindo o que é MLOps, sua origem e a motivação por trás dessas novas melhores práticas.
Em meados de 2014, observamos um crescimento significativo nas necessidades, aplicações e possibilidades do Machine Learning nas empresas. Isso resultou em um aumento exponencial na busca pelo termo MLOps, ou Produtização de Modelos de Machine Learning. Esse interesse surgiu devido a um novo entendimento dos desafios enfrentados, especialmente o grande gap existente nas empresas. Ficou claro que os sistemas de Machine Learning, assim como os grandes projetos, eram sistemas complexos, compostos por diversas partes, sendo o código do modelo apenas uma pequena parte desse conjunto. Isso envolvia arquitetura, engenharia, engenharia de atributos, engenharia de dados, hiperparâmetros e toda a operacionalização necessária para colocar o modelo em produção.
Esse gap gerava um débito técnico significativo para as empresas. Muitas vezes, quem conseguia colocar o modelo em produção não conseguia mantê-lo disponível para o usuário final ou para a área de negócios. O modelo não se mantinha performático a longo prazo, e as pessoas não conseguiam identificar os problemas, tornando-o pouco robusto e escalável. A maioria dos modelos não chegava a ser implementada, ou, quando eram, apresentavam problemas que não eram compreendidos, levando à sua retirada.
Diante dessa necessidade, começou-se a buscar melhores práticas e ferramentas para auxiliar na implementação dos modelos de Machine Learning em produção, completando o ciclo desde o desenvolvimento até a produção. Assim, definimos o conceito de MLOps como um conjunto de práticas que abrange o ciclo de vida do modelo de Machine Learning, integrando práticas de desenvolvimento e operação, similar ao DevOps.
O ciclo do modelo, desde o desenvolvimento até a disponibilização em produção, é dividido em etapas. A primeira etapa envolve o design e desenvolvimento de dados e modelos. Isso inclui a coleta de dados, pré-processamento, tratamento, desenvolvimento de diferentes modelos, verificação, validação, aplicação de hiperparâmetros para melhorar os resultados, refinamento dos resultados, testes com diferentes modelos, até chegar a um treino e teste adequados, resultando em um modelo pronto para a produção.
Na segunda etapa, começamos a preparar o modelo para a produção. Criamos scripts, repositórios, artefatos e módulos necessários, aplicando boas práticas de código e engenharia de software. Planejamos a arquitetura, dependências, etapas de entrega, riscos associados ao modelo e um planejamento completo para sua disponibilização.
A etapa de verificação e empacotamento envolve a execução de pipelines de testes automatizados, linters e validações de qualidade. Verificamos se o que foi planejado está de acordo com as expectativas da área de negócios e se as regras obedecem ao esperado. Garantimos que o tempo de atualização e gestão das bases de dados não prejudique o modelo, realizando o máximo de verificações possíveis para uma implementação segura.
Por fim, o empacotamento consiste em preparar as aplicações e artefatos para uso. Isso pode incluir a criação de containers, pacotes em Python ou empacotamento do modelo em formato Pickle, garantindo que ele possa ser utilizado e consumido adequadamente. Essa é a segunda etapa do processo.
A terceira etapa envolve o release, que seria a disponibilização. Geralmente, não traduzimos esse termo no dia a dia nas empresas. São palavras que encontramos com muita frequência: o primeiro release, o segundo release. São termos muito comuns, e é bom que nos acostumemos. A tradução literal seria "liberar", que significa liberar o artefato, os ambientes, o modelo para a produção, pronto para entrega.
Depois, configuramos os parâmetros de ambiente, a infraestrutura e os serviços. Precisamos entender se esse modelo será inserido em uma aplicação já existente, em um software, se será embutido em um aplicativo móvel, se é apenas um processo que roda em lote e torna os resultados disponíveis em uma tabela para o negócio consumir, ou se será integrado a um site, e-commerce, entre outros. Portanto, devemos preparar toda essa infraestrutura e serviços, configurando-os de acordo com o que foi planejado.
Após a configuração e entrega, passamos ao monitoramento. O monitoramento é o pacote completo. Acompanhamos a distribuição dos dados, as métricas de performance, latência, os logs e o comportamento em tempo real desses dados. Caso seja em lote, verificamos a cada atualização ou rodada do modelo como está o seu comportamento. É essencial fazer esse monitoramento de perto.
A observabilidade nos ajuda a entender, em caso de problemas, onde está a causa raiz. Em seguida, temos o trabalho de realizar um retreinamento automático. Caso ocorra um problema, não podemos deixar o usuário final sem um produto ou sem consumir nada. Precisamos saber como atuar, lidar com essas informações e qual é o próximo passo no retreinamento automático em produção. Isso se resume ao feedback de aprimoramento contínuo.
O ciclo é melhor resumido nessas três grandes etapas. Esse ciclo contínuo mostra sua dependência dessas etapas. Outra característica clara é a dependência de times multidisciplinares de dados, software e tecnologia como um todo. Dependemos de pessoas específicas, os stakeholders de negócio que trouxeram a necessidade do modelo. Temos um time de engenharia, arquitetura, e pode envolver até o time de DevOps na implantação do modelo. Em algumas empresas, o cientista apoia a produtização, enquanto em outras, o cientista cuida apenas do desenvolvimento, e o engenheiro de machine learning atua na implantação. Isso depende das finalidades da empresa, mas é sempre claro que diferentes perfis estão envolvidos.
Os resultados do modelo impactam os negócios, e podemos extrair indicadores da aplicação. A área de BI pode ser envolvida na análise de dados para acompanhar esses números. Essa é outra característica interessante do ciclo MLOps.
O MLOps lida com o gap que as empresas tinham. Passamos a ter confiabilidade com o monitoramento, logs, planejamento antecipado e reprodutibilidade. Com o empacotamento e registros dos modelos, sabemos qual versão e experimento estão em produção. Isso garante reprodutibilidade e confiança na manutenção a longo prazo, com releases, configurações e boas práticas de código e documentação. Lidamos também com legados, para que a próxima pessoa que fizer a manutenção saiba como proceder.
A integração com sistemas existentes era um grande gap nas empresas. O MLOps auxilia a lidar com isso, preparando o ambiente e configurando-o conforme as necessidades, integrando com times multidisciplinares para construir um sistema completo.
Esse é todo o fluxo do ciclo de MLOps, desde o início até a produtização do modelo, e sua importância nas empresas e no dia a dia. Na próxima aula, ao longo do curso, passaremos por todas essas etapas, tanto no conceito quanto na prática. Até logo, até o próximo vídeo.
Agora, vamos discutir os requisitos para construir um sistema de Machine Learning (ML). Além das boas práticas, do contexto e da aplicação do MLOps, existem alguns requisitos principais que devem ser considerados. Notaremos muitas similaridades com o que se espera do MLOps.
Antes de iniciarmos a aula, gostaríamos de recomendar uma referência importante: o livro "Projetando Sistemas de Machine Learning, Processo Interativo para Aplicações Prontas para a Produção", de Chip Huyen. Este livro é excelente, pois aborda todo o ciclo de vida de um projeto de machine learning, desde o início até o fim. Ele discute as dificuldades, os benefícios, a importância das boas práticas e como garantir que os sistemas possam evoluir e atender às necessidades do negócio. Recomendamos fortemente este livro como ponto de partida para esta aula.
Dando continuidade, vamos falar sobre os requisitos para que um sistema de machine learning seja bem-sucedido. No vídeo anterior, discutimos o que é MLOps, seu fluxo e suas regras para funcionar e serem aplicadas no ciclo de machine learning. Mesmo adotando MLOps nas empresas, existem dois desafios importantes que devem ser considerados ao pensarmos nos requisitos para um sistema.
Sempre que falamos sobre desenvolvimento de sistemas, é necessário listar os requisitos para que o sistema seja desenvolvido. Precisamos entender o que é necessário, como podemos construir e o que se deseja alcançar com isso, além do impacto da solução. Mesmo com a adoção do MLOps, as empresas enfrentam dois desafios principais. O primeiro é a mudança de cultura. O time deve pensar de forma integrada, unindo desenvolvimento e produção, ao invés de tratá-los como módulos independentes ou situações separadas. Essa integração é crucial para o funcionamento do ciclo.
O segundo desafio é a complexidade técnica. Envolvemos muitos times e profissionais com perfis tecnológicos diferentes, e muitas vezes faltam profissionais especializados. Isso leva as empresas a dividirem suas responsabilidades, tornando o desafio não apenas técnico, mas também mais amplo, para que o MLOps flua e a empresa consiga extrair os benefícios dessas boas práticas.
Falando em boas práticas, chegamos aos principais requisitos necessários na construção de um sistema de machine learning, que estão intrinsecamente associados ao conceito de MLOps. O primeiro deles é a confiabilidade. Precisamos garantir que o sistema funcione independentemente das adversidades, sejam elas técnicas ou erros humanos. O modelo não pode parar em produção; deve continuar funcionando mesmo diante dessas adversidades.
Por exemplo, se um erro ocorre nos dados de entrada, como um dado de idade que deveria ser numérico, mas foi inserido como texto, o sistema deve ser capaz de lidar com esse dado incorreto. Deve haver uma forma de se proteger desse erro e não quebrar. Se não houver confiabilidade, o fluxo pode ser interrompido por um erro pequeno, que poderia ser corrigido ou contornado. Portanto, a confiabilidade é essencial, e devemos planejar para esses casos, listando os riscos envolvidos.
O segundo requisito é a escalabilidade. O modelo, projeto ou sistema deve ser capaz de crescer conforme necessário.
Nosso sistema pode crescer em diversos aspectos: quantidade de dados, variáveis, parâmetros e modelos. Ele pode se tornar um sistema com múltiplos modelos necessários para o fluxo e também crescer em volume de tráfego. Por exemplo, em uma solução em tempo real para um site de vendas, inicialmente atendíamos 5 mil clientes, mas, ao nos tornarmos uma empresa amplamente conhecida, passamos a atender 1 milhão de clientes. O tráfego do site aumentou, e o modelo precisa estar preparado para lidar com esse crescimento e se adaptar. O ambiente deve estar preparado para isso, e devemos considerar esse aspecto ao desenvolver o sistema.
Outro requisito importante é a manutenibilidade. Nosso código deve seguir boas práticas para que, se o projeto passar de uma pessoa para outra, a nova pessoa consiga entender o que foi escrito, a função de cada parte, a arquitetura, as regras, as ferramentas utilizadas, a linguagem de programação, as funções criadas e as regras de negócio. É essencial ter documentação e um código bem comentado, com docstrings explicando as funções, seus parâmetros e as bases utilizadas, garantindo que o projeto seja reproduzível. Assim, qualquer pessoa que consuma os resultados saberá o que está acontecendo do início ao fim, o que é crucial para a longevidade do projeto.
A adaptabilidade também é fundamental, envolvendo monitoramento, retreinamento automático e aprendizado contínuo. Nosso modelo deve estar pronto para se adaptar a mudanças nos dados e no comportamento, pois tanto as variáveis quanto o comportamento dos usuários podem mudar. O modelo deve estar preparado para esse aprendizado contínuo.
Essas são as principais características e requisitos para o desenvolvimento de um sistema, além dos desafios que enfrentamos. Um desafio importante é o Training-Serving Skew, que se refere às diferenças entre o treinamento fora da produção e o ambiente produtivo. Quando o modelo é colocado em produção, pode não se adaptar ao ambiente e não gerar os resultados esperados. Esse problema está relacionado à confiabilidade e adaptabilidade.
Também enfrentamos o Data Drift e o Feature Drift, que são alterações no comportamento das variáveis e na distribuição dos dados ao longo do tempo. Devemos estar atentos a essas mudanças e prontos para retreinar o modelo.
Outro ponto crucial é a governança, que envolve as leis, a privacidade dos dados e a conformidade legal no processo de produção. Qualquer uso de dados sensíveis deve ter regras e avaliação de risco.
Por fim, a complexidade técnico-cultural é um desafio que requer integração de equipes, compreensão das responsabilidades de cada um e aplicação no desenvolvimento do projeto. Com atenção a esses desafios e um MLOps bem aplicado, podemos alcançar o sucesso.
Nos despedimos por aqui e até logo!
O curso MLOps: implantação de modelos com automação e monitoramento possui 275 minutos de vídeos, em um total de 53 atividades. Gostou? Conheça nossos outros cursos de Engenharia de Dados em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Matricule-se no plano PLUS e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Mobile, Programação, Front-end, DevOps, UX & Design, Marketing Digital, Data Science, Inovação & Gestão, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para estudantes ultra comprometidos atingirem seu objetivo mais rápido.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.