Os cientistas de dados se destacam em criar modelos que representem e prevejam dados do mundo real, mas efetivamente implantar modelos de aprendizado de máquina é mais uma arte do que ciência. A implantação requer habilidades mais comumente encontradas em engenharia de software e DevOps. Venturebeat relata que 87% dos projetos de ciência de dados nunca chegam à produção, enquanto o redapt afirma que é de 90%. Ambos destacam que um fator crítico que faz a diferença entre sucesso e fracasso é a capacidade de colaborar e iterar como uma equipe.
O objetivo da construção de um modelo de aprendizado de máquina é resolver um problema, e um modelo de aprendizado de máquina só pode fazê-lo quando está em produção e ativamente em uso pelos consumidores. Como tal, a implantação do modelo é tão importante quanto a construção de modelos. Como aponta Redapt, pode haver uma “desconexão entre TI e ciência de dados. A TI tende a manter o foco em tornar as coisas disponíveis e estáveis. Eles querem tempo de atividade a todo custo. Os cientistas de dados, por outro lado, estão focados na iteração e experimentação. Eles querem quebrar as coisas. Fazer a ponte entre esses dois mundos é fundamental para garantir que você tenha um bom modelo e possa realmente colocá-lo em produção.
A maioria dos cientistas de dados acha que a implantação do modelo é uma tarefa de engenharia de software e deve ser tratada por engenheiros de software porque as habilidades necessárias estão mais alinhadas com seu trabalho diário. Embora isso seja um pouco verdade, os cientistas de dados que aprendem essas habilidades terão uma vantagem, especialmente em organizações enxutas. Ferramentas como TFX, Mlflow, Kubeflow podem simplificar todo o processo de implantação do modelo, e os cientistas de dados podem (e devem) aprender e usá-los rapidamente.
As dificuldades na implantação e gestão do modelo deram origem a um novo papel especializado: o engenheiro de machine learning. Os engenheiros de aprendizado de máquina estão mais próximos dos engenheiros de software do que os cientistas de dados típicos e, como tal, eles são o candidato ideal para colocar modelos em produção. Mas nem toda empresa tem o luxo de contratar engenheiros especializados apenas para implantar modelos. Para a loja de engenharia enxuta de hoje, é aconselhável que os cientistas de dados aprendam a colocar seus modelos em produção.
Em tudo isso, outra pergunta se aproxima — qual é a maneira mais eficaz de colocar modelos de aprendizado de máquina em produção?
Essa questão é crítica, pois o aprendizado de máquina promete muito potencial para as empresas, e qualquer empresa que possa fazer seus modelos de forma rápida e eficaz superar seus concorrentes pode ofuscar seus concorrentes.
Neste artigo, vou falar sobre algumas das práticas e métodos que ajudarão a colocar modelos de aprendizado de máquina na produção. Discutirei diferentes técnicas e usarei casos, bem como os prós e contras de cada método.
Então, sem perder mais tempo, vamos lá!
Do modelo à produção
Muitas equipes embarcam em projetos de aprendizado de máquina sem um plano de produção, uma abordagem que muitas vezes leva a sérios problemas na hora de implantar. É caro e demorado criar modelos, e você não deve investir em um projeto de ML se você não tem nenhum plano para colocá-lo em produção, exceto, é claro, ao fazer pesquisa pura. Com um plano em mãos, você não se surpreenderá com quaisquer armadilhas que possam atrapalhar seu lançamento.
T são três áreas-chave que sua equipe precisa considerar antes de embarcar em qualquer projeto de ML são:
Armazenamento e recuperação de dados
Frameworks e ferramentas
Feedback e iteração
Armazenamento e recuperação de dados
Um modelo de aprendizado de máquina não é útil para ninguém se ele não tiver nenhum dado associado a ele. Você provavelmente terá conjuntos de dados de treinamento, avaliação, testes e até mesmo previsão. Você precisa responder perguntas como:
Como seus dados de treinamento são armazenados?
Qual é o tamanho dos seus dados?
Como você vai recuperar os dados para treinamento?
Como você vai recuperar dados para previsão?
Essas perguntas são importantes, pois irão guiá-lo sobre quais frameworks ou ferramentas usar, como abordar seu problema e como projetar seu modelo ML. Antes de fazer qualquer outra coisa em um projeto de aprendizado de máquina, pense nessas questões de dados.
Os dados podem ser armazenados no local, no armazenamento em nuvem ou em um híbrido dos dois. Faz sentido armazenar seus dados onde o treinamento do modelo ocorrerá e os resultados serão atendidos: o treinamento e o serviço de modelos no local serão mais adequados para dados on-premise, especialmente se os dados forem grandes, enquanto os dados armazenados em sistemas de armazenamento em nuvem como GCS, AWS S3 ou armazenamento Azure devem ser combinados com o treinamento e o serviço de ML em nuvem.
O tamanho dos seus dados também importa muito. Se o seu conjunto de dados for grande, então você precisa de mais poder de computação para etapas de pré-processamento, bem como fases de otimização de modelo. Isso significa que você tem que planejar mais computação se estiver operando localmente ou configurar o dimensionamento automático em um ambiente de nuvem desde o início. Lembre-se, qualquer um desses pode ficar caro se você não pensou em suas necessidades de dados, então pré-planeje para garantir que seu orçamento possa apoiar o modelo através de treinamento e produção
Mesmo que você tenha seus dados de treinamento armazenados juntamente com o modelo a ser treinado, você ainda precisa considerar como esses dados serão recuperados e processados. Aqui vem à mente a questão da recuperação de dados em lote vs. em tempo real, e isso deve ser considerado antes de projetar o sistema ML. A recuperação de dados em lote significa que os dados são recuperados em pedaços de um sistema de armazenamento, enquanto a recuperação de dados em tempo real significa que os dados são recuperados assim que disponíveis.
Juntamente com a recuperação de dados de treinamento, você também precisará pensar na recuperação de dados de previsão. Seus dados de previsão são TK (defina-os em relação aos dados de treinamento) e raramente são tão bem embalados quanto os da
.png)
.png)
.png)
.png)