Introdução ao Machine Learning Operations (MLOps)
Conforme a inteligência artificial e suas aplicações se tornam mais presentes em produtos e serviços digitais, é crucial desenvolver métodos e estudos apropriados para a verificação, implementação, administração e observação desses modelos em ambientes de produção. Em essência, com a prática de MLOps buscamos minimizar as “dívidas técnicas” nas implementações de Machine Learning.
Introdução ao MLOps
MLOps é uma abordagem operacional desenhada para simplificar o procedimento de lançar um modelo experimental em um ambiente produtivo e gerenciá-lo eficazmente. Baseado em práticas de DevOps, trata modelos de aprendizado de máquina (ML) como os artefatos de software reutilizáveis.
Dentre todas as melhorias que a adoção dessa abordagem consegue trazer, acredito que as mais diretamente impactantes no valor do negócio sejam:
Adaptação às mudanças – pode ser difícil acompanhar a evolução dos requisitos de negócios. Os dados que fluem para os modelos podem mudar constantemente. Portanto, ter um sistema de fácil manutenção para casos do tipo é essencial em diversas ocasiões.
Colaboração – a incapacidade de encontrar um terreno comum para a comunicação entre todas as partes interessadas em um projeto, incluindo cientistas de dados, diretores de operações e líderes empresariais, pode ser um grande obstáculo para iniciativas de IA.
Diferenças MLOPs x DevOps
O MLOps baseia-se em práticas do DevOps, portanto há muitas semelhanças em diversas etapas de suas estruturações. Mas existem algumas diferenças importantes:
Experimentação – As equipes de ML precisam ajustar hiperparâmetros, dados e modelos, enquanto rastreiam seus experimentos para garantir resultados reproduzíveis em seus respectivos laboratórios.
Teste – Em um sistema MLOps, é preciso treinar, testar e avaliar os modelos para identificação do seu desempenho. Isso torna os testes mais complexos, já que é preciso validar e documentar minuciosamente cada etapa. Veja uma comparação dos testes normalmente realizados em ambas as práticas:
Implantação automatizada – exigem mais coordenação e processos automatizados para implantar um modelo de ML. Isso requer um pipeline de várias etapas que possa treinar novamente o modelo, avaliá-lo e monitorar seu desempenho em produção.
Monitoramento de produção – espera-se degradação do desempenho dos modelos de ML. Os modelos geralmente apresentam desempenho pior na produção do que no treinamento por conta das diferenças entre os dados de treinamento e as entradas de novos dados.
CI/CD/CT – No ML, o pipeline deve lidar com preocupações adicionais, incluindo validação de dados, esquemas de dados, modelos e seu desempenho. Dessa forma, o teste contínuo (CT) é um novo elemento no pipeline MLOps, que treina novamente e fornece modelos automaticamente com base nas entradas do ambiente de produção.
Principios básicos do Machine Learning Operations
Dessa forma, ao desenvolver um esboço de arquitetura para seu sistema MLOps, podemos definir algumas de suas principais características:
Versionamento
A possibilidade de replicar a mesma base de código para que várias pessoas possam trabalhar no mesmo projeto simultaneamente é um grande benefício.
“Para garantir que a experimentação da equipe de ciência de dados se tornará um modelo na produção do projeto, é importante garantir que os fatores-chave sejam documentados e reutilizáveis.”
(“Introducing MLOps”, Treveil e Dataiku Team)
Portanto, o que deve ser devidamente versionado:
- Suposições: as decisões e suposições do Cientista de Dados devem ser explícitas.
- Aleatoriedade: precisa estar sob algum tipo de controle para que possa ser reproduzido. Por exemplo, usando “seed”.
- Dados: os mesmos dados do experimento devem estar disponíveis.
- Configurações: repita e reproduza experimentos com as mesmas configurações do original.
- Ambiente: é crucial ter as mesmas configurações de tempo de execução entre todos os cientistas de dados.
Feature Store
O objetivo de um Feature Store é processar dados de várias fontes de dados ao mesmo tempo e transformá-los em recursos que serão consumidos pelas pipelines.
“Feature Stores são maneiras muito confiáveis de gerenciar recursos para pesquisa e treinamento usando Offline Store, assim como gerenciar a alimentação de recursos para um modelo servido em produção usando uma Online Store.”
(“Introducing MLOps”, Treveil e Dataiku Team)
- Offline Store: Loja composta por funcionalidades pré-processadas de Batch Data, utilizadas para construção de uma fonte histórica de funcionalidades, que pode ser utilizada no pipeline de Treinamento de Modelo.
- Online Store: Loja composta por dados da Loja Offline combinada com recursos pré-processados em tempo real de fontes de dados de streaming.
Automoção
A automação de pipelines de aprendizado de máquina está altamente correlacionada com a maturidade do projeto. Existem várias etapas entre o desenvolvimento de um modelo e sua implantação, e boa parte desse processo depende de experimentação.
- MLOps Level 0: Manual Process: Pipeline de experimentação completo executado manualmente usando ferramentas de rápida aplicação.
- MLOps Level 1: ML Pipeline Automation: Automação do pipeline de experimentação que inclui validação de dados e modelo.
- MLOps Level 2: CI/CD Pipeline Automation: Crie, teste e implante automaticamente modelos de ML e componentes de pipeline de treinamento de ML.
• CI (Continuous Integration): Toda vez que um código ou dado é atualizado, o pipeline de ML é executado novamente. E isso é feito de forma que tudo seja versionado e reproduzível.
• CD (Continuous Deployment): A implantação contínua é um método para automatizar a implantação da nova versão na produção ou em qualquer ambiente, como teste.
Monitoramento
O desempenho de modelos de Machine Learning pode variar ao longo do tempo. Assim, uma vez implantado um modelo, ele precisa ser monitorado para garantir que funcione conforme o esperado. Mas o que monitorar?
Alguns dos principais pontos em que devemos manter atenção são os componentes e conceitos de:
- Desempenho: Com base em grupo de métricas.
- Dados: Inconsistências ou erros em virtudes de várias transformações.
- Explicabilidade: Ser capaz de explicar a decisão de um modelo é vital.
- Bias: Ser capaz de evitar preconceitos ou tendências que não devem existir.
- Drift: As propriedades podem mudar ao longo do tempo, levando a um desvio de conceito.
Ferramentas
Por fim, existem inúmeras ferramentas que você pode utilizar para desenvolver sistemas baseados em arquiteturas de MLOps. No Azure, por exemplo, você pode aproveitar o Azure Machine Learning, que oferece um ambiente integrado para gerenciar o ciclo de vida completo dos modelos de machine learning, incluindo construção, treinamento, implantação e monitoramento. O Azure DevOps também é uma excelente escolha para automação de CI/CD específica para projetos de ML.
No AWS, você pode usar o Amazon SageMaker, uma solução completa que facilita a construção, treinamento e implantação de modelos de machine learning em larga escala. O AWS CodePipeline e o AWS CodeBuild também podem ser configurados para automatizar etapas de treinamento e implantação de modelos.
No Google Cloud, o Vertex AI se destaca como uma plataforma unificada para o desenvolvimento de modelos de machine learning, que abrange desde a preparação dos dados até a implantação dos modelos. Por fim, o GCP também oferece o Cloud Build para automação de CI/CD, que se integra perfeitamente com outros serviços do Google Cloud para uma gestão eficaz do ciclo de vida do ML.
Douglas Sammur é cientista de dados na Programmers. Entre suas responsabilidades estão a implementação de projetos Deep Learning, aplicação de conceitos e práticas MLOps, e otimização de soluções utilizando tecnologias NVIDIA. Nos momentos de lazer, Douglas faz trilhas nas serras e cachoeiras do Tocantins.