Este artigo se aprofundará em MLOps (Machine Learning Operations) e seu relacionamento com DevOps (Development Operations). Exploraremos a motivação por trás do MLOps, os desafios que ele compartilha com o DevOps e os obstáculos únicos que ele encontra. Além disso, examinaremos os principais componentes que compõem uma estrutura MLOps. Então, vamos mergulhar e descobrir o mundo do MLOps juntos!
Neste artigo, abordaremos:
- Os fatores determinantes para MLOps
- As questões sobrepostas entre MLOps e DevOps
- Os desafios únicos em MLOps em comparação com DevOps
- As partes integrantes de uma estrutura MLOps
Otimização gratuita de custos de nuvem e gerenciamento aprimorado de recursos de ML/IA para toda a vida
Os fatores determinantes para MLOps
No processo de implantação de modelos de machine learning (ML) em ambientes de negócios do mundo real, o trabalho feito por cientistas de dados é apenas uma pequena parte do quadro geral. Para que os modelos de ML sejam implementados de forma eficaz, os cientistas de dados devem colaborar de perto com várias equipes, incluindo aquelas de negócios, engenharia e operações. No entanto, essa colaboração pode representar desafios organizacionais, especificamente em relação à comunicação, colaboração e coordenação.
Uma disciplina chamada MLOps (Machine Learning Operations) surgiu para lidar com esses desafios. O MLOps visa simplificar o processo de implantação implementando práticas comprovadas. Isso ajuda as organizações a superar os obstáculos quando diferentes equipes precisam trabalhar juntas. Além disso, MLOps traz agilidade e velocidade, fatores cruciais no cenário digital acelerado de hoje.
O código ML real representa apenas uma pequena parte de todo o sistema em sistemas ML do mundo real. É como uma pequena caixa no meio de uma infraestrutura muito maior e mais complexa necessária para suportá-la.
As questões sobrepostas entre MLOps e DevOps
Os desafios na operacionalização de modelos de ML compartilham muitas semelhanças com a produção de software, onde o DevOps demonstrou sua eficácia. Portanto, é sensato que os cientistas de dados adotem as melhores práticas do DevOps para abordar os desafios comuns enfrentados na produção de software. Um desses métodos é adotar a metodologia ágil promovida pelo DevOps, que oferece vantagens significativas de eficiência em comparação com a metodologia tradicional em cascata. Essa abordagem promove o desenvolvimento iterativo e colaborativo, permitindo um progresso mais rápido e adaptável.
Além da metodologia ágil, diversas As práticas de DevOps beneficiam o MLOps. Essas práticas são descritas na Tabela 1, que fornece uma lista abrangente de técnicas para otimizar a operacionalização de modelos de ML.
Desafios na operacionalização de modelos de ML | Solução orientada a DevOps |
---|---|
Integração Contínua e Entrega Contínua (CI/CD): Implementar um pipeline de CI/CD permite a integração perfeita e segura de atualizações na produção. Ele garante que os modelos de ML sejam construídos, testados e estejam prontos para implantação de forma precisa e eficiente. | Implementar uma estrutura de CI/CD nos permite construir, testar e implantar software perfeitamente. Essa abordagem traz muitos benefícios, como garantir reprodutibilidade, reforçar medidas de segurança e controlar versões de código rigorosamente. |
O processo de pegar modelos e algoritmos desenvolvidos por Cientistas de Dados e implantá-los na produção costuma ser demorado. Uma das principais razões para isso é a falta de coordenação e transferência adequada entre as equipes de Ciência de Dados e operações. Quando não há comunicação e colaboração eficazes entre essas duas partes, isso pode resultar em atrasos e erros durante a fase de implantação. Esses atrasos e erros podem causar frustração e consumir tempo e recursos valiosos. | A metodologia ágil vem ao resgate ao coordenar projetos complexos. Ela faz isso dividindo-os em sprints gerenciáveis. Durante cada sprint, os desenvolvedores entregam recursos incrementais que estão prontos para implantação. A melhor parte? Toda a equipe obtém visibilidade da saída de cada sprint graças a pipelines bem definidos. Esse ciclo de feedback inicial e contínuo reduz significativamente o risco de surpresas de última hora e incentiva um ambiente colaborativo. Em termos simples, ele nos ajuda a enfrentar os desafios de coordenação de frente e garante uma navegação tranquila durante todo o projeto. |
Outro desafio é a comunicação ineficaz entre diferentes equipes envolvidas no projeto de ML. Normalmente, as equipes de desenvolvimento trabalham em silos isolados sem muita interação com outras partes interessadas. Isso significa que a solução final de ML geralmente continua sendo uma caixa-preta misteriosa para aqueles não diretamente envolvidos em seu desenvolvimento. Essa falta de transparência e feedback limitado ao longo do processo pode causar atrasos significativos para chegar a uma solução final. Torna-se difícil abordar problemas e fazer os ajustes necessários sem a contribuição oportuna de todas as partes relevantes. Como resultado, o projeto pode sofrer com desperdício de tempo, esforço e recursos, o que poderia ter sido evitado com melhor comunicação e colaboração da equipe. |
Os desafios únicos em MLOps em comparação com DevOps
MLOps, frequentemente chamado de DevOps do aprendizado de máquina, visa abordar os desafios únicos enfrentados no ML. Embora o MLOps compartilhe algumas semelhanças com as práticas tradicionais de engenharia de software, aspectos distintos do ML exigem soluções especializadas. Um desses desafios gira em torno da função dos dados. No software padrão, os desenvolvedores escrevem códigos que seguem lógica e regras fixas. No entanto, os cientistas de dados criam códigos em aprendizado de máquina que utilizam parâmetros para resolver problemas comerciais específicos. Esses valores de parâmetros são derivados de dados, geralmente usando técnicas como gradiente descendente. O que o torna interessante é que esses valores de parâmetros podem mudar com diferentes versões dos dados, alterando subsequentemente o comportamento do código. Em outras palavras, os dados são tão importantes quanto o código na modelagem da saída.
Além disso, os dados e o código podem mudar independentemente, adicionando complexidade. Isso cria uma complexidade em camadas em torno dos dados, que precisa ser cuidadosamente definida e rastreada junto com o código do modelo como uma parte intrínseca do software ML. Plataformas MLOps desempenham um papel crucial no gerenciamento dessas complexidades e na garantia de que o código e os dados sejam manipulados adequadamente durante todo o ciclo de vida do ML.
Desafios específicos do aprendizado de máquina (ML) | Descrição |
---|---|
1-Gerenciando versões de dados e hiperparâmetros | Em aplicativos de software tradicionais, ferramentas de controle de versão são amplamente usadas para acompanhar as alterações de código. Essa prática garante a reprodutibilidade e oferece suporte a processos automatizados como integração contínua (CI), onde modificações no código acionam tarefas como construção, teste e entrega de software pronto para produção. No entanto, em Machine Learning (ML), o modelo de saída pode ser influenciado por alterações no código do algoritmo ou hiperparâmetros e variações nos dados subjacentes. Embora os desenvolvedores tenham controle sobre o código e os hiperparâmetros, gerenciar alterações nos dados pode apresentar um desafio único. Portanto, torna-se essencial introduzir o conceito de versionamento de dados e hiperparâmetros, além do versionamento de código. Vale a pena notar que lidar com o versionamento de dados, especialmente para dados não estruturados como imagens e áudio, requer abordagens especializadas adotadas por plataformas MLOps. |
2-Apoiar o desenvolvimento iterativo e a experimentação | Em Machine Learning (ML), o desenvolvimento de algoritmos e modelos é um processo iterativo e experimental. Ele envolve o ajuste fino de parâmetros e a execução de engenharia de recursos para otimizar o desempenho. Os pipelines de ML operam com diferentes versões de dados, código de algoritmo e hiperparâmetros. Sempre que qualquer um desses componentes muda (independentemente), ele aciona a criação de novas versões de modelo prontas para implantação, levando a mais experimentação e avaliação de métricas. Plataformas MLOps desempenham um papel crucial no rastreamento da linhagem completa desses artefatos, garantindo transparência e facilitando a natureza iterativa do desenvolvimento e da experimentação de ML. |
3-Teste | No Machine Learning, é essencial detectar quaisquer problemas o mais cedo possível no pipeline de ML. Aqui estão algumas etapas críticas para isso: a) Validação de dados: precisamos garantir que os dados com os quais estamos trabalhando estejam limpos e sem anomalias. Além disso, quando novos dados chegam, queremos garantir que eles sigam os mesmos padrões dos dados que usamos antes. Isso nos ajuda a manter a consistência e a confiabilidade em nossos modelos. b) Pré-processamento de dados: é crucial pré-processar os dados de forma eficiente e escalável. Esta etapa envolve transformar e organizar os dados para que nossos modelos possam entender. Ao fazer isso corretamente, podemos evitar discrepâncias entre os dados usados para treinamento e os dados usados para fazer previsões. Queremos minimizar quaisquer diferenças que possam causar problemas mais tarde. c) Validação de algoritmo: aqui, nos concentramos em rastrear métricas específicas para tarefas de classificação ou regressão que se alinham com o problema de negócios que estamos tentando resolver. Queremos garantir que nossos algoritmos tenham um bom desempenho e atinjam os resultados desejados. Também prestamos atenção à imparcialidade do algoritmo, garantindo que nossos modelos não sejam tendenciosos ou discriminatórios em suas previsões. Essas etapas nos ajudam a identificar e resolver possíveis problemas no início do processo de aprendizado de máquina, permitindo-nos construir modelos robustos e confiáveis. |
4-Segurança | Quando modelos de ML são implantados em produção, eles geralmente são integrados em sistemas maiores, onde suas saídas são utilizadas por vários aplicativos, alguns dos quais podem ser desconhecidos. Isso expõe potenciais riscos de segurança. Para mitigar esses riscos, os MLOps devem se concentrar em fornecer medidas de segurança e controle de acesso. O objetivo é garantir que as saídas dos modelos de ML sejam acessadas e usadas apenas por usuários autorizados, minimizando as chances de acesso não autorizado ou uso indevido. |
5-Monitoramento da produção | Quando os modelos de ML estão em produção, é essencial monitorar continuamente seu desempenho para garantir que eles atendam às expectativas durante o processamento de novos dados. O monitoramento envolve vários aspectos, incluindo a detecção de mudanças de covariáveis e mudanças anteriores. Essas dimensões de monitoramento nos ajudam a rastrear quaisquer mudanças na distribuição de dados de entrada e nas suposições subjacentes do modelo. Ao monitorar ativamente esses fatores, podemos identificar e abordar quaisquer desvios ou problemas que possam surgir, permitindo-nos manter a eficácia e a confiabilidade do modelo ao longo do tempo. |
6-Requisito de infraestrutura | Aplicações de machine learning exigem escalabilidade e poder computacional significativos, levando ao desenvolvimento de infraestruturas complexas. Durante a fase de experimentação, a utilização de GPUs pode ser crucial, e a necessidade de escala de produção dinâmica pode surgir. |
As partes integrantes de uma estrutura MLOps
Estágio de descoberta: O primeiro passo é que os cientistas de negócios e de dados trabalhem juntos e identifiquem um problema específico que precisa ser resolvido. Eles colaboram de perto para definir a declaração do problema e os objetivos para que as técnicas de aprendizado de máquina possam abordá-los. Eles também identificam os principais indicadores de desempenho (KPIs) que serão usados para medir o sucesso da solução.
Engenharia de Dados: Uma vez que o problema é definido, engenheiros de dados e cientistas de dados se unem para coletar dados de várias fontes. Eles trabalham juntos para processar e validar os dados, garantindo que estejam limpos e em um formato adequado para modelagem. Isso envolve limpar os dados e transformá-los em um formato utilizável.
Pipeline de aprendizado de máquina: Após os dados serem preparados, a próxima etapa é projetar e implementar um pipeline que suporte integração e implementação contínuas (CI/CD). Cientistas de dados usam esse pipeline para conduzir vários experimentos e testes. É como um fluxo de trabalho estruturado que rastreia os dados, a linhagem do modelo e os KPIs associados em diferentes experimentos.
Implantação de produção: Uma vez que a solução é desenvolvida, o foco muda para implantá-la de forma segura e perfeita em um servidor de produção. Pode ser um servidor hospedado em uma nuvem pública, no local ou em um ambiente híbrido. O objetivo é garantir que a solução seja acessível e operacional para uso no mundo real.
Monitoramento da produção: Uma vez que a solução é implantada, ela entra na fase de monitoramento. Isso envolve manter um olhar atento sobre o modelo implantado e a infraestrutura subjacente. Os modelos são monitorados continuamente usando KPIs predefinidos, como alterações na distribuição de dados de entrada ou variações no desempenho do modelo. Se gatilhos específicos forem atendidos, isso estimula mais experimentação com novos algoritmos, dados e hiperparâmetros, levando a uma versão aprimorada do pipeline de aprendizado de máquina. Além disso, a infraestrutura é monitorada para garantir que atenda aos requisitos de memória e computação e pode ser ampliada ou reduzida conforme necessário.
💡 Saiba mais sobre os problemas de MLOps e as possíveis soluções que podem ajudar a enfrentar esses desafios → https://hystax.com/what-are-the-main-challenges-of-the-mlops-process/