Adoção de MLOps para escalar e amadurecer as iniciativas de chatbot em 2021

A indústria de Chatbot deve seguir a tendência da indústria de software de investimento em MLOps

LAPPIS
Bots Brasil
6 min readJan 20, 2021

--

O ano de 2020 foi marcado por grande investimento e evolução de algoritmos de processamento de linguagem natural (NLP — Natural Language Processing).

NLP tem sido a área de IA com maior investimento nos últimos anos. Tivemos o lançamento do modelo de linguagem transformers, GPT-3, com 175 bilhões de parâmetros, que promete viabilizar melhores predições, e gerar automaticamente textos de respostas, ou mesmo gerar exemplos de intenções, no contexto de chatbots. Diversas empresas que desenvolvem chatbots superaram os modelos gigantes de pesquisa como GPT-3 e BERT, e apresentaram novas possibilidades, como modelos end-to-end, já em fase de teste. Os modelos para o contextos de chatbot são otimizados (usam menos poder de processamento), utilizam poucos dados de treinamento, e são primordiais para que a adoção em produtos de software seja financeiramente viável para empresas.

Esses novos modelos aumentam a acurácia dos chatbots em classificar as intenções do usuário e prever a melhor ação a ser tomada no diálogo.

A velocidade com que eles evoluem e a necessidade de melhoria contínua de experiência do usuário impõem desafios às equipes de projeto de chatbots. Essas equipes não somente mantém e evoluem as bases de conhecimento do mesmo, mas continuamente testam, calibram hiperparâmetros, validam e, finalmente, disponibilizam novos modelos em ambiente de produção. Uma abordagem DevOps para garantir entrega contínua dessas melhorias já não é mais suficiente. Em um chatbot há mais artefatos a serem geridos além do código, como o modelo e os dados de treinamento. Novos papéis fazerem parte do time, como cientista de dados, UX writer, e analista de dados.

O workflow geral de um módulo que contém modelos de machine learning (como o chatbot) é diferente do workflow tradicional de software e pode ser visto na Figura 1.

O workflow mostra as etapas na construção de um produto de machine learning, como por exemplo o modelo do chatbot:

  • Inicia com os levantamentos de requisitos do modelo;
  • Passa por etapas de processamento dos dados (mineração, filtro e anotação), engenharia de feature, treinamento e avaliação do modelo;
  • Termina com a implantação e monitoramento contínuo do modelo.

As etapas são realizadas de forma iterativa, incremental e cíclica, por diferentes papéis no time:

  • No contexto de chatbot, tipicamente, UX Writers, juntamente com estrategistas de negócios realizam as etapas de levantamento de requisitos de modelos e anotação dos dados (criando as intenções e fluxos conversacionais);
  • cientistas de dados são responsáveis pela engenharia de features, treinamento e avaliação do modelo;
  • Engenheiro de software dá suporte no desenvolvimento de ferramentas de apoio, dos conectores do chatbots e da mineração dos dados de conversação do ambiente de produção em dashboards de Business Intelligence (BI);
  • Já o profissional e MLOps é responsável pela implantação e monitoramento automático dos modelos em ambiente de produção/homologação, mas também de todas automações necessárias para agilizar a execução desse workflow.

Recentemente foi cunhado o termo MLOps (do inglês Machine Learning Operations ou em português literal “Operações de Aprendizagem de Máquina”), que aplica práticas ágeis, lean e DevOps para o contexto de sistemas de aprendizagem de máquina.

Dos projetos open source que mais cresceram no GitHub desde julho de 2020, 25% deles focam em MLOps. Com o amadurecimento de frameworks para desenvolvimento de modelos de machine learning, do processo de desenvolvimento, o investimento está movendo da pesquisa e desenvolvimento (R&D) para a operação, onde os modelos rodam .

MLOps é a nova prática emergente para agilizar o gerenciamento do ciclo de vida do ML e sua adoção por equipes de projetos de chatbots promete ser uma das principais tendências em 2021. O MLOps pode ser visto como um um conjunto de práticas multidisciplinares que, quando adotadas, ajuda o time a manter a confiabilidade e reprodutibilidade de módulos de machine learning em um pipeline de entrega de software automatizado. Essas práticas consistem em adequações no processo de desenvolvimento, considerando os diferentes perfis na equipe de projeto, e na atualização do pipeline de entrega contínua, para lidar separadamente com o código, os dados e os módulos de machine learning. A prática de MLOps significa que você defende a automação e o monitoramento de todos os passos da construção do sistema de ML, inclusive integração, teste, lançamento, implantação e gerenciamento de infraestrutura.

Os principais benefícios na adoção de MLOps no contexto de chatbot são:

  • Permitir a escalabilidade do serviço — permite mais usuários acessando o chatbot via canais diferentes, e permite mais chatbots para diferentes serviços na mesma organização;
  • Versionar separadamente o código, os dados de treinamento, e os modelos treinados — viabiliza a experimentação contínua de novos modelos, e estabilidade do serviço em ambiente de produção.
  • Automatizar o deploy/implantação com segurança — A integração contínua não se trata mais de apenas testar e validar código e componentes, mas também testar e validar dados, esquemas de dados e modelos.
  • Reprodutibilidade dos modelos — inserção de novas intenções/fluxos não altera o comportamento anterior do chatbot
  • Permitir experimentação contínua — novos modelos de NLU (Natural Language Understanding)
  • Facilitar e viabilizar a governança e conformidade regulatória (LGBP)
  • Monitorar, e gerir orientado a dados
  • Viabilizar de entrega contínua
  • Viabilizar soluções de de chatbots mais complexos

Adoção de MLOps no projeto da chatbot TAIS

No LAPPIS, adotamos MLOps antes mesmo do termo ser cunhado. No projeto da chatbot TAIS, parceria de co-desenvolvimento entre o laboratório e a Secretaria Especial de Cultura, desenvolvido todo como software livre, fizemos a transição de uma abordagem DevOps para a construção do chatbot com uma abordagem MLOps. Aderimos à comunidade Rasa antes de sua primeira major release e ainda havia pouco conhecimento sobre boas práticas na construção de chatbot (o projeto teve início em 2017).

Inicialmente, tratamos o projeto como software tradicional e aplicamos conceitos de DevOps:

  • A arquitetura com o modelo de machine learning acoplada ao código fonte, tendo assim um único controle de versão para ambos código, modelo e dataset de treinamento;
  • Os estágios do pipeline de deploy contínuo continham somente testes relacionados ao código fonte;
  • Gestão manual dos modelos e dos datasets.

Com as dificuldades em manter e evoluir esses modelos continuamente e estável no ambiente de produção, diversas alterações relacionadas ao que hoje sabemos que é o MLOps foram realizadas. A cada nova inserção de conteúdo (tanto adição/edição de intenções ou exemplos de diálogos), todo o modelo era treinado. Em um pipeline de entrega contínua, diversas pessoas trabalhavam em paralelo tanto no conteúdo do chatbot quanto em testes de modelos e hiperparâmetros mais robustos de conversação, e tínhamos alguns ambientes de teste/homologação. Inicialmente, testamos somente as novas funcionalidade, ou as mudanças realizadas.

Para garantir entrega contínua e serviço estável em ambiente de produção, refatoramos a arquitetura para desacoplar o código fonte do modelo treinado, customizamos o pipeline de integração e deploys contínuos para versionar e gerenciar separadamente esses artefatos, fizemos testes automatizados dos fluxos conversacionais para garantir a reprodutibilidades dos modelos. A otimização do ciclo de deploy da chatbot garantiu uma maior produtividade da equipe, a entrega de funcionalidades avançadas, atualização contínua de modelos de classificação de intenção e gestão de diálogo, ambiente de produção estável, reprodutibilidades do modelo, gestão de projeto mais efetivo, e maior experimentação.

A adoção de MLOps facilitou a manutenção, evolução e escala da solução e isso nos permitiu explorar novas arquiteturas e soluções de chatbots.

Um desses experimentos foi a confraria dos bots, o projeto Bottis, no qual dezenas ou até centenas de chatbots distintos podiam ser facilmente implantados e mantidos, e cooperavam entre si a fim atender demandas do usuário. Essa pesquisa, que ainda está em andamento, seria inviável se não tivéssemos adotado MLOps. O MLOps não só viabiliza manutenção e evolução madura de projetos de chatbot, quanto garante um serviço estável e escalável, aumenta a produtividade da equipe, e permite experimentação e inovação.

Mais informações

Conceitos/ferramentas DevOps

Conceitos MLOps

Projeto Tais

Projeto Bottis

Imagem com “um motor e suas engrenagens em foco” e o título deste artigo em destaque “Adoção de MLOps para escalar e amadurecer as iniciativas de chatbot em 2021”

Este artigo faz parte da série 21 em 2021 do Bots Brasil ✨

Compartilhe com pessoas da sua rede, deixe um like, um comentário e para conferir os outros 20 textos da série da comunidade, acesse: https://bit.ly/2021botsbrasil

--

--

LAPPIS
Bots Brasil

O Laboratório Avançado de Produção, Pesquisa & Inovação em Software (LAPPIS) da Universidade e Brasília (UnB) Campus Gama (FGA) — https://lappis.rocks