Neste artigo, abordamos uma introdução amigável ao MLOps detalhando os principais conceitos de maneira simples. Nossa esperança é que depois de ler este artigo, um iniciante se sinta mais confortável lendo uma documentação mais avançada sobre MLOps.

1. Motivação para MLOps

Devido ao sucesso das técnicas de machine learning em vários campos de pesquisa, muitas empresas têm buscado incorporá-las em seus sistemas de software para melhorar a eficiência e resolver problemas do mundo real. No entanto, a implementação do machine learning em ambientes de produção pode ser um processo desafiador e demorado para muitas empresas. Além disso, uma vez implantado, o modelo deve ser gerenciado e mantido, e seu desempenho deve ser monitorado para garantir que esteja funcionando corretamente. Essas tarefas podem ser especialmente difíceis em sistemas grandes e complexos.

Por outro lado, os engenheiros de software utilizam o paradigma DevOps (Development and Operations), um conjunto de práticas e ferramentas que facilitam a colaboração e a comunicação entre as equipes de desenvolvimento e operações, para desenvolver e gerenciar seus sistemas. Isso ajuda a manter a velocidade e a qualidade do desenvolvimento. O MLOps visa adaptar esses princípios de DevOps para sistemas de machine learning. Com esse pano de fundo em mente, o que é exatamente MLOps?

2. Definição

Para definir MLOps, vamos começar examinando várias definições:

Definição 1:

“MLOps (Machine Learning Operations) é um paradigma, incluindo aspectos como melhores práticas conjuntos de conceitos, bem como uma cultura de desenvolvimento quando se trata de conceituação de ponta a ponta, implementação, monitoramento, implantação e escalabilidade de produtos de machine learning.”

Definição 2:

“MLOps é a extensão da metodologia DevOps para incluir ativos de Machine Learning e Data Science como cidadãos de primeira classe dentro da ecologia DevOps.”

Definição 3:

“Podemos usar a definição de Machine Learning Engineering (MLE), onde MLE é o uso de princípios científicos, ferramentas e técnicas de machine learning e engenharia de software tradicional para projetar e construir sistemas de computação complexos. O MLE abrange todos os estágios, desde a coleta de dados até a construção do modelo, para disponibilizar o modelo para uso pelo produto ou pelos consumidores.” (por A. Burkov)

Com base nas definições anteriores, podemos entender MLOps como um conjunto de técnicas e práticas usadas para projetar, construir e implantar modelos de machine learning de maneira eficiente, otimizada e organizada. Essas técnicas e práticas são frequentemente discutidas no contexto do ciclo de vida do MLOps.

3. Ciclo de vida de MLOps

MLOps-Amigavel-triggo.ai
Ciclo de vida MLOps ( fonte ) CC BY 4.0

O ciclo de vida do MLOps consiste nas etapas e técnicas envolvidas no paradigma MLOps, desde o projeto e desenvolvimento de um modelo de machine learning até sua implantação em um ambiente de produção, monitoramento e manutenção ao longo do tempo. Geralmente é dividido em três etapas principais:

  • primeira etapa é o processo de design, que envolve a definição do problema de negócios, os requisitos do modelo e seu caso de uso pretendido. Isso geralmente envolve a criação de uma tela AI/ML.
  • segunda etapa é o processo de desenvolvimento do modelo que inclui engenharia de dados e modelo.
  • terceiro estágio é o processo de operações que abrange a implantação e manutenção do modelo.

É importante manter o desempenho do modelo ao longo do tempo após sua implantação, portanto, essas etapas normalmente são realizadas de maneira cíclica. Isso garante que o modelo tenha um bom desempenho e ainda atenda às necessidades definidas no primeiro estágio. Agora que discutimos os estágios do ciclo de vida do MLOps, vamos examinar o seu fluxo de trabalho, que descreve as tarefas e atividades específicas executadas em cada estágio do processo.

4. Fluxo de trabalho MLOps

MLOps-Fluxo-de-trabalho-triggoai
Fluxo de trabalho de MLOps

O fluxo de trabalho MLOps descreve as etapas a serem seguidas para desenvolver, implantar e manter modelos de machine learning. Em um mundo ideal, seguir o fluxo de trabalho seria suficiente: primeiro, o problema de negócios é compreendido, depois o modelo é escolhido, treinado e implantado. No entanto, isso nem sempre é o caso no mundo real. A qualquer momento, pode ser necessário retornar a uma etapa anterior. Além disso, após a implantação do modelo, este deve ser mantido e monitorado, por isso é importante entender tanto o ciclo de vida do MLOps quanto o seu fluxo de trabalho.

4.1. Problema de negócios

MLOps-Amigavel-ML-Canvas-AI-Workflow-triggo.ai
Problema de negócios (o fluxograma de trabalho, a tela AI e a tela ML são da fonte CC BY 4.0)

A primeira etapa no fluxo de trabalho do MLOps é entender o problema de negócios, que envolve a definição da entrada e saída do modelo, bem como o processo e suas várias subtarefas. Para estruturar esse processo, você pode usar a tela AI (Inteligência Artificial) ou a tela ML (machine learning), que podem ser consideradas modelos para organizar o fluxo de trabalho do MLOps. A tela AI geralmente fornece uma estrutura de alto nível para implementação de ML/AI, enquanto a tela ML fornece uma descrição de alto nível e especificidades do sistema. Você pode ler mais sobre essas telas aqui.

Vamos dar um exemplo!

Digamos que, para melhorar seus produtos, uma empresa de laticínios esteja interessada em obter feedback de seus consumidores. Para fazer isso, é necessário analisar os sentimentos dos consumidores nos comentários sobre os produtos que são feitos nas plataformas de mídia social.

As técnicas de machine learning podem ser usadas para treinar um modelo de classificação do sentimento desses comentários como positivo, negativo ou neutro. Isso permitirá que a empresa entenda melhor as experiências de seus clientes com seus produtos e identifique pontos de melhoria. Esta descrição do problema de negócios foi transformada em uma tela AI e/ou uma tela ML para uma representação mais clara:

Prediction/prediction task: o sistema de IA analisará a entrada de texto e preverá o sentimento do comentário (positivo, negativo ou neutro).

Judgment: O sistema usará técnicas de processamento de linguagem natural para entender o significado e o sentimento do texto.

Action/decisions: com base no sentimento previsto, o sistema pode realizar diferentes ações, como sinalizar avaliações negativas para análise posterior ou priorizar postagens positivas de mídia social para promoção.

Outcome: O resultado desejado é que o sistema classifique com precisão o sentimento da entrada de texto, levando a uma maior satisfação do cliente, melhor envolvimento da mídia social ou outros benefícios, dependendo do caso de uso específico.

Training: o sistema será treinado em um conjunto de dados de texto rotulado, contendo o texto de entrada e o rótulo de sentimento correspondente.

Input/Data sources: o sistema aceitará a entrada de texto de várias fontes, como postagens de mídia social ou avaliações de clientes.

Output /Making predictions: O sistema analisará a entrada de texto e preverá o sentimento do texto (positivo, negativo ou neutro).

Feedback: O sistema pode incorporar feedback de usuários ou partes interessadas para melhorar seu desempenho ao longo do tempo, por exemplo, ajustando os parâmetros dos algoritmos de processamento de linguagem natural ou adicionando novos dados ao conjunto de dados de treinamento.

Offline evaluation: o sistema será avaliado usando métricas padrão, como precisão, recall e pontuação F1, para garantir que a classificação aconteça com precisão quanto ao sentimento da entrada de texto.

Live monitoring: o sistema será continuamente monitorado e atualizado conforme necessário para garantir que continue a funcionar com precisão ao longo do tempo.

4.2. Engenharia de dados

MLOps-Engenharia-de-dados-triggo.ai
Engenharia de dados

Depois de entender o problema de negócios em questão, a próxima etapa no fluxo de trabalho do MLOps é o processo de engenharia de dados. Isso inclui ingestão de dados, exploração e validação, limpeza de dados, rotulagem e divisão de dados.

  • ingestão de dados envolve o uso de um conjunto de técnicas para reunir os dados, criar backups, proteger informações privadas, criar um catálogo de metadados e amostrar um conjunto de teste para evitar um viés de espionagem de dados.
  • Para explorar e validar o conjunto de dados, um conjunto de estatísticas e técnicas de visualização são usadas.
  • Os dados coletados geralmente têm ruído, contêm valores discrepantes e valores ausentes. Esses problemas podem afetar o próximo processo, portanto, a etapa de limpeza de dados é aplicada para resolvê-los.
  • Data labeling é necessária quando o modelo escolhido é baseado em aprendizado supervisionado. Esta etapa pode ser feita de forma manual, automática ou semi-automática.
  • Data splitting é a etapa final desse processo e envolve a divisão dos dados em conjuntos de treinamento, validação e teste.

4.3. Engenharia de modelos de ML

MLOps-Engenharia-de-modelos-de-ML-triggo.ai
Engenharia de modelos de ML

A terceira etapa no fluxo de trabalho do MLOps é a engenharia de machine learning, que inclui treinamento, avaliação, teste e empacotamento de modelo.

  • Os modelos de treinamento envolvem engenharia de recursos, revisão e versão de código, além de ajuste de hiperparâmetros. Você pode se perguntar por que a engenharia de recursos está incluída nesta etapa em vez de na anterior. A razão é que muitos tipos e arquiteturas de modelos são testados nesta etapa, portanto, a engenharia de recursos geralmente não é a mesma para todos os modelos. Vale ressaltar que vários modelos são treinados e testados antes de selecionar qual o mais adequado nesta etapa.
  • A avaliação do modelo envolve a validação do modelo para garantir que ele atenda aos objetivos de negócios descritos na etapa do problema de negócios.
  • Na etapa de teste do modelo, o teste de aceitação é realizado usando o conjunto de testes iniciais.
  • Depois que o modelo é validado e testado, a etapa final é exportar o modelo em um formato específico para que possa ser fornecido ao aplicativo de negócios.

4.4. Engenharia de código

MLOps-Engenharia-de-codigo-triggo.ai
Engenharia de código

Nesta etapa, o modelo está pronto para ser implantado na produção. A implantação consiste em três etapas: serviço de modelo, monitoramento de desempenho e registro de desempenho.

  • Para servir um modelo, o padrão de serviço e a estratégia de implantação devem ser considerados. O padrão de serviço refere-se a como o modelo é integrado ao software, como integrá-lo como um serviço, como uma dependência, usando serviço pré-computado, serviço sob demanda ou serviço híbrido. A estratégia de implantação refere-se ao método usado para encapsular o modelo, como implantá-lo como um container Docker ou como funções sem servidor.
  • Monitorar o modelo envolve observar o comportamento geral do modelo, como o desvio de suas previsões do desempenho em relação ao anterior.
  • O log de desempenho envolve salvar os resultados das previsões do modelo em um registro de log.

5. Conclusão

Neste artigo, fornecemos uma breve introdução ao MLOps. Discutimos a necessidade de MLOps, apresentamos várias definições, explicamos o seu ciclo de vida e descrevemos o seu fluxo de trabalho. Se você quiser saber mais sobre MLOps, recomendo acessar o ml-ops.org para obter informações adicionais.

A triggo.ai é especialista na abordagem de XOps que contempla técnicas de DataOps e MLOps, atuando com soluções de ponta para acelerar a jornada Data Driven das organizações.

Já ouviu falar sobre Dataiku? Entre em contato para lhe apresentarmos uma demo.