MLOps: DevOps no mundo do Machine Learning

Em 2018, o conceito de MLOps apareceu no meio profissional e em conferências temáticas dedicadas à IA, que rapidamente se consolidou na indústria e agora se desenvolve como uma direção independente. No futuro, os MLOps poderão se tornar uma das áreas mais populares em TI. O que é e com que se come, vamos descobrir a seguir.

MLOps: DevOps no mundo do Machine Learning

O que é MLOps

MLOps (combinando tecnologias e processos de aprendizado de máquina e abordagens para implementar modelos desenvolvidos em processos de negócios) é uma nova forma de colaboração entre representantes de empresas, cientistas, matemáticos, especialistas em aprendizado de máquina e engenheiros de TI na criação de sistemas de inteligência artificial.

Em outras palavras, é uma forma de transformar métodos e tecnologias de aprendizado de máquina em uma ferramenta útil para resolver problemas de negócios. 

É preciso entender que a cadeia de produtividade começa muito antes do desenvolvimento do modelo. O primeiro passo é definir um problema de negócio, uma hipótese sobre o valor que pode ser extraído dos dados e uma ideia de negócio para aplicá-lo. 

O próprio conceito de MLOps surgiu como uma analogia ao conceito de DevOps em relação a modelos e tecnologias de aprendizado de máquina. DevOps é uma abordagem de desenvolvimento de software que permite aumentar a velocidade de implementação de mudanças individuais, mantendo a flexibilidade e a confiabilidade usando uma série de abordagens, incluindo desenvolvimento contínuo, divisão de funções em vários microsserviços independentes, testes automatizados e implantação de individual mudanças, monitoramento da saúde global, sistema de resposta rápida para falhas detectadas, etc. 

O DevOps definiu o ciclo de vida do software e a comunidade teve a ideia de aplicar a mesma metodologia ao big data. DataOps é uma tentativa de adaptar e expandir a metodologia levando em consideração as características de armazenamento, transmissão e processamento de grandes quantidades de dados em plataformas diversas e interoperáveis.
  
Com o advento de uma certa massa crítica de modelos de aprendizado de máquina implementados nos processos de negócios das empresas, notou-se uma forte semelhança entre o ciclo de vida dos modelos matemáticos de aprendizado de máquina e o ciclo de vida do software. A única diferença é que os algoritmos do modelo são criados usando ferramentas e métodos de aprendizado de máquina. Portanto, surgiu naturalmente a ideia de aplicar e adaptar abordagens já conhecidas de desenvolvimento de software para modelos de aprendizado de máquina. Assim, os seguintes estágios principais podem ser distinguidos no ciclo de vida dos modelos de aprendizado de máquina:

  • definir uma ideia de negócio;
  • treinamento de modelo;
  • teste e implementação do modelo no processo de negócios;
  • operação do modelo.

Quando durante a operação há necessidade de alterar ou retreinar o modelo com novos dados, o ciclo recomeça - o modelo é refinado, testado e uma nova versão é implantada.

Retiro. Por que reciclar e não reciclar? O termo “retreinamento do modelo” tem um duplo significado: entre os especialistas significa um defeito do modelo, quando o modelo prevê bem, na verdade repete o parâmetro previsto no conjunto de treinamento, mas tem um desempenho muito pior na amostra de dados externos. Naturalmente, tal modelo é um defeito, pois esse defeito não permite seu uso.

Neste ciclo de vida, parece lógico usar ferramentas DevOps: testes, implantação e monitoramento automatizados, projetando cálculos de modelos na forma de microsserviços separados. Mas também há vários recursos que impedem o uso direto dessas ferramentas sem vinculação adicional de ML.

MLOps: DevOps no mundo do Machine Learning

Como fazer os modelos funcionarem e serem lucrativos

Como exemplo em que demonstraremos o uso da abordagem MLOps, tomaremos a clássica tarefa de robotizar um suporte via chat para um produto bancário (ou qualquer outro). Normalmente, um processo de negócios de suporte por chat é assim: um cliente insere uma mensagem com uma pergunta em um chat e recebe uma resposta de um especialista dentro de uma árvore de diálogo predefinida. A tarefa de automatizar esse tipo de bate-papo geralmente é resolvida usando conjuntos de regras definidos por especialistas, que exigem muito trabalho para desenvolver e manter. A eficiência dessa automação, dependendo do nível de complexidade da tarefa, pode ser de 20 a 30%. Naturalmente, surge a ideia de que é mais rentável implementar um módulo de inteligência artificial - um modelo desenvolvido com recurso a aprendizagem de máquina, que:

  • consegue processar um maior número de solicitações sem a participação do operador (dependendo do tema, em alguns casos a eficiência pode chegar a 70–80%);
  • adapta-se melhor a formulações não padronizadas no diálogo - é capaz de determinar a intenção, o real desejo do usuário a partir de uma solicitação não formulada com clareza;
  • sabe determinar quando a resposta do modelo é adequada e quando há dúvidas sobre o “conhecimento” dessa resposta e é necessário fazer uma pergunta adicional de esclarecimento ou passar para a operadora;
  • pode ser treinado adicionalmente automaticamente (em vez de um grupo de desenvolvedores adaptando e corrigindo constantemente scripts de resposta, o modelo é treinado adicionalmente por um especialista em ciência de dados usando as bibliotecas de aprendizado de máquina apropriadas). 

MLOps: DevOps no mundo do Machine Learning

Como fazer funcionar um modelo tão avançado? 

Como acontece com qualquer outro problema, antes de desenvolver tal módulo, é necessário definir um processo de negócio e descrever formalmente a tarefa específica que iremos resolver utilizando o método de aprendizado de máquina. Neste ponto, inicia-se o processo de operacionalização, designado pela sigla Ops. 

O próximo passo é que o Cientista de Dados, em colaboração com o Engenheiro de Dados, verifique a disponibilidade e suficiência dos dados e a hipótese de negócio sobre a viabilidade da ideia de negócio, desenvolvendo um modelo de protótipo e testando a sua real eficácia. Somente após a confirmação pelo negócio é que pode começar a transição do desenvolvimento de um modelo para a integração em sistemas que executam um processo de negócio específico. O planejamento de implementação ponta a ponta, um entendimento profundo em cada etapa de como o modelo será utilizado e qual efeito econômico ele trará, é um ponto fundamental nos processos de introdução de abordagens MLOps no cenário tecnológico da empresa.

Com o desenvolvimento das tecnologias de IA, o número e a variedade de problemas que podem ser resolvidos através da aprendizagem automática estão a aumentar exponencialmente. Cada um desses processos de negócio é uma economia para a empresa devido à automatização do trabalho dos funcionários em massa (call center, verificação e triagem de documentos, etc.), é uma expansão da base de clientes ao adicionar novas funções atraentes e convenientes, é está economizando dinheiro otimizando seu uso e redistribuição de recursos e muito mais. Em última análise, qualquer processo está focado na criação de valor e, como resultado, deve trazer um certo efeito económico. Aqui é muito importante formular claramente a ideia de negócio e calcular o lucro esperado da implementação do modelo na estrutura geral de criação de valor da empresa. Há situações em que a implementação de um modelo não se justifica e o tempo gasto pelos especialistas em aprendizado de máquina é muito mais caro do que o local de trabalho do operador que executa essa tarefa. É por isso que é necessário tentar identificar tais casos nas fases iniciais da criação de sistemas de IA.

Conseqüentemente, os modelos começam a gerar lucro somente quando o problema de negócio foi formulado corretamente no processo MLOps, as prioridades foram definidas e o processo de introdução do modelo no sistema foi formulado nos estágios iniciais de desenvolvimento.

Novo processo - novos desafios

Uma resposta abrangente à questão empresarial fundamental sobre como os modelos de ML são aplicáveis ​​à resolução de problemas, a questão geral da confiança na IA é um dos principais desafios no processo de desenvolvimento e implementação de abordagens de MLOps. Inicialmente, as empresas estão céticas quanto à introdução do aprendizado de máquina nos processos - é difícil confiar em modelos em locais onde antes, via de regra, as pessoas trabalhavam. Para as empresas, os programas parecem ser uma “caixa preta”, cuja relevância ainda precisa ser comprovada. Além disso, no sector bancário, nos negócios dos operadores de telecomunicações e outros, existem requisitos rigorosos dos reguladores governamentais. Todos os sistemas e algoritmos implementados nos processos bancários estão sujeitos a auditoria. Para resolver este problema, para provar às empresas e aos reguladores a validade e correcção das respostas da inteligência artificial, estão a ser introduzidas ferramentas de monitorização juntamente com o modelo. Além disso, existe um procedimento de validação independente, obrigatório para modelos regulatórios, que atende às exigências do Banco Central. Um grupo de peritos independentes audita os resultados obtidos pelo modelo tendo em conta os dados de entrada.

O segundo desafio é avaliar e levar em conta os riscos do modelo ao implementar um modelo de aprendizado de máquina. Mesmo que uma pessoa não consiga responder com cem por cento de certeza se o mesmo vestido era branco ou azul, a inteligência artificial também tem o direito de cometer um erro. Também vale a pena considerar que os dados podem mudar ao longo do tempo e os modelos precisam ser retreinados para produzir um resultado suficientemente preciso. Para garantir que o processo de negócio não seja prejudicado, é necessário gerenciar os riscos do modelo e monitorar o desempenho do modelo, treinando-o regularmente com novos dados.

MLOps: DevOps no mundo do Machine Learning

Mas após a primeira fase de desconfiança, o efeito oposto começa a aparecer. Quanto mais modelos são implementados com sucesso em processos, mais cresce o apetite das empresas pelo uso de inteligência artificial - estão sendo encontrados novos e novos problemas que podem ser resolvidos usando métodos de aprendizado de máquina. Cada tarefa desencadeia todo um processo que requer certas competências:

  • engenheiros de dados preparam e processam dados;
  • cientistas de dados usam ferramentas de aprendizado de máquina e desenvolvem um modelo;
  • A TI implementa o modelo no sistema;
  • O engenheiro de ML determina como integrar corretamente este modelo ao processo, quais ferramentas de TI utilizar, dependendo dos requisitos do modo de aplicação do modelo, levando em consideração o fluxo de solicitações, tempo de resposta, etc. 
  • Um arquiteto de ML projeta como um produto de software pode ser implementado fisicamente em um sistema industrial.

Todo o ciclo requer um grande número de especialistas altamente qualificados. A certa altura do desenvolvimento e do grau de penetração dos modelos de ML nos processos de negócios, verifica-se que dimensionar linearmente o número de especialistas em proporção ao aumento do número de tarefas torna-se caro e ineficaz. Portanto, surge a questão de automatizar o processo MLOps - definindo várias classes padrão de problemas de aprendizado de máquina, desenvolvendo pipelines padrão de processamento de dados e treinamento adicional de modelos. Num cenário ideal, a resolução de tais problemas requer profissionais que sejam igualmente proficientes em competências na intersecção de Big Data, Data Science, DevOps e TI. Portanto, o maior problema na indústria de Data Science e o maior desafio na organização dos processos MLOps é a falta dessa competência no mercado de formação existente. Especialistas que atendem a esses requisitos são atualmente raros no mercado de trabalho e valem seu peso em ouro.

Sobre a questão das competências

Em teoria, todas as tarefas de MLOps podem ser resolvidas usando ferramentas DevOps clássicas e sem recorrer a uma extensão especializada do modelo. Então, como observamos acima, um cientista de dados deve ser não apenas um matemático e analista de dados, mas também um guru de todo o pipeline - ele é responsável por desenvolver a arquitetura, programar modelos em diversas linguagens dependendo da arquitetura, preparar um data mart e implantação do próprio aplicativo. No entanto, a criação do framework tecnológico implementado no processo MLOps ponta a ponta leva até 80% dos custos trabalhistas, o que significa que um matemático qualificado, que seja um Cientista de Dados de qualidade, dedicará apenas 20% do seu tempo à sua especialidade . Portanto, delinear as funções dos especialistas envolvidos no processo de implementação de modelos de aprendizado de máquina torna-se vital. 

O grau de detalhamento das funções deve ser delineado depende do tamanho da empresa. Uma coisa é quando uma startup tem um especialista, um trabalhador esforçado na reserva de energia, que é seu próprio engenheiro, arquiteto e DevOps. É uma questão completamente diferente quando, numa grande empresa, todos os processos de desenvolvimento de modelos estão concentrados em alguns especialistas de alto nível em Ciência de Dados, enquanto um programador ou especialista em bases de dados - uma competência mais comum e menos dispendiosa no mercado de trabalho - pode assumir na maior parte do trabalho. tarefas rotineiras.

Assim, a velocidade e a qualidade dos modelos desenvolvidos, a produtividade da equipe e o microclima nela contido dependem diretamente de onde está a fronteira na seleção de especialistas para apoiar o processo MLOps e como é organizado o processo de operacionalização dos modelos desenvolvidos .

O que nossa equipe já fez

Recentemente, começamos a construir uma estrutura de competências e processos de MLOps. Mas nossos projetos de gerenciamento do ciclo de vida de modelos e de uso de modelos como serviço já estão em fase de testes de MVP.

Também determinamos a estrutura de competências ideal para uma grande empresa e a estrutura organizacional de interação entre todos os participantes do processo. Foram organizadas equipes ágeis para solucionar problemas de toda a gama de clientes empresariais, e foi estabelecido um processo de interação com equipes de projeto para criação de plataformas e infraestrutura, que é a base do edifício MLOps em construção.

Perguntas para o futuro

MLOps é uma área em crescimento que enfrenta escassez de competências e ganhará impulso no futuro. Enquanto isso, é melhor aproveitar os desenvolvimentos e práticas de DevOps. O principal objetivo do MLOps é usar modelos de ML de forma mais eficaz para resolver problemas de negócios. Mas isso levanta muitas questões:

  • Como reduzir o tempo de lançamento dos modelos em produção?
  • Como reduzir os atritos burocráticos entre equipes de diferentes competências e aumentar o foco na cooperação?
  • Como rastrear modelos, gerenciar versões e organizar um monitoramento eficaz?
  • Como criar um ciclo de vida verdadeiramente circular para um modelo moderno de ML?
  • Como padronizar o processo de aprendizado de máquina?

As respostas a essas perguntas determinarão em grande parte a rapidez com que os MLOps atingirão todo o seu potencial.

Fonte: habr.com

Adicionar um comentário