Operacionalize a IA em escala com Software 2.0, MLOps e Milvus
A criação de aplicações de aprendizagem automática (ML) é um processo complexo e iterativo. À medida que mais empresas se apercebem do potencial inexplorado dos dados não estruturados, a procura de processamento e análise de dados com base em IA continuará a aumentar. Sem operações de aprendizagem automática eficazes, ou MLOps, a maior parte dos investimentos em aplicações de aprendizagem automática definhará. A investigação revelou que apenas 5% das adopções de IA que as empresas planeiam implementar chegam efetivamente a ser implementadas. Muitas organizações incorrem em "dívida de modelo", onde as mudanças nas condições de mercado e a falha em se adaptar a elas resultam em investimentos não realizados em modelos que permanecem sem atualização (ou pior, nunca são implantados).
Este artigo explica o MLOps, uma abordagem sistémica à gestão do ciclo de vida dos modelos de IA, e como a plataforma de gestão de dados vectoriais de código aberto Milvus pode ser utilizada para operacionalizar a IA à escala.
O que é o MLOps?
As operações de aprendizado de máquina (MLOps), também conhecidas como operações de modelo (ModelOps) ou operacionalização de modelo de IA, são necessárias para criar, manter e implantar aplicativos de IA em escala. À medida que as empresas procuram aplicar os modelos de IA que desenvolvem a centenas de cenários diferentes, é fundamental que os modelos em utilização e os que estão a ser desenvolvidos sejam operacionalizados em toda a organização. O MLOps envolve a monitorização de um modelo de aprendizagem automática ao longo do seu ciclo de vida e a gestão de tudo, desde os dados subjacentes à eficácia de um sistema de produção que depende de um determinado modelo.
01.jpg
A Gartner define ModelOps como a governação e a gestão do ciclo de vida de uma vasta gama de modelos operacionalizados de inteligência artificial e de decisão. A funcionalidade principal do MLOps pode ser dividida da seguinte forma:
Integração contínua/entrega contínua (CI/CD): Um conjunto de melhores práticas emprestadas das operações do programador (DevOps), a CI/CD é um método para fornecer alterações de código com maior frequência e fiabilidade. A integração contínua promove a implementação de alterações de código em pequenos lotes, monitorizando-as com um controlo de versão rigoroso. A entrega contínua automatiza a entrega de aplicações a vários ambientes (por exemplo, ambientes de teste e desenvolvimento).
Ambientes de desenvolvimento de modelos (MDE): Um processo complexo para criar, rever, documentar e examinar modelos, os MDE ajudam a garantir que os modelos são criados iterativamente, documentados à medida que são desenvolvidos, fiáveis e reproduzíveis. Um MDE eficaz garante que os modelos podem ser explorados, investigados e experimentados de forma controlada.
Teste campeão-desafiador: Semelhante à metodologia de teste A/B utilizada pelos profissionais de marketing, o teste campeão-desafiante envolve a experimentação de diferentes soluções para ajudar o processo de tomada de decisão que procede ao compromisso com uma única abordagem. Esta técnica envolve a monitorização e a medição do desempenho em tempo real para identificar qual o desvio que funciona melhor.
Versões de modelos: Tal como acontece com qualquer sistema complexo, os modelos de aprendizagem automática são desenvolvidos por etapas por muitas pessoas diferentes, o que resulta em questões de gestão de dados relacionadas com versões de dados e modelos de aprendizagem automática. O controlo de versões de modelos ajuda a gerir e a governar o processo iterativo de desenvolvimento de aprendizagem automática, em que os dados, os modelos e o código podem evoluir a ritmos diferentes.
Armazenamento e reversão de modelos: Quando um modelo é implantado, seu arquivo de imagem correspondente deve ser armazenado. As capacidades de reversão e recuperação permitem às equipas de MLOps reverter para uma versão anterior do modelo, se necessário.
Usar apenas um modelo em um aplicativo de produção apresenta uma série de desafios difíceis. O MLOps é um método estruturado e repetível que se baseia em ferramentas, tecnologia e melhores práticas para ultrapassar problemas técnicos ou comerciais que surgem durante o ciclo de vida de um modelo de aprendizagem automática. Os MLOps bem sucedidos mantêm a eficiência das equipas que trabalham para criar, implementar, monitorizar, treinar novamente e gerir modelos de IA e a sua utilização em sistemas de produção.
Porque é que o MLOps é necessário?
Tal como descrito no ciclo de vida do modelo de aprendizagem automática acima, a criação de um modelo de aprendizagem automática é um processo iterativo que envolve a incorporação de novos dados, a reciclagem de modelos e o tratamento da deterioração geral do modelo ao longo do tempo. Todas estas são questões que as operações tradicionais do programador, ou DevOps, não abordam nem fornecem soluções. O MLOps tornou-se necessário como forma de gerir o investimento em modelos de IA e garantir um ciclo de vida produtivo do modelo. Uma vez que os modelos de aprendizagem automática serão aproveitados por uma variedade de sistemas de produção diferentes, o MLOps torna-se essencial para garantir que os requisitos podem ser cumpridos em diferentes ambientes e em cenários variados.
02.jpg
A ilustração simples acima mostra um modelo de aprendizagem automática a ser implementado num ambiente de nuvem que alimenta uma aplicação. Neste cenário básico, podem surgir vários problemas que o MLOps ajuda a ultrapassar. Como a aplicação de produção depende de um ambiente de nuvem específico, há requisitos de latência aos quais os cientistas de dados que desenvolveram o modelo de ML não têm acesso. A operacionalização do ciclo de vida do modelo permitiria aos cientistas de dados ou engenheiros com um conhecimento profundo do modelo identificar e resolver problemas que surgem em ambientes de produção específicos.
Não só os modelos de aprendizagem automática são treinados em ambientes diferentes das aplicações de produção em que são utilizados, como também dependem frequentemente de conjuntos de dados históricos que diferem dos dados utilizados nas aplicações de produção. Com os MLOps, toda a equipa de ciência de dados, desde os que desenvolvem o modelo até aos que trabalham ao nível da aplicação, tem um meio de partilhar e solicitar informações e assistência. O ritmo a que os dados e os mercados mudam torna imperativo que exista o mínimo de fricção possível entre todos os principais intervenientes e colaboradores que virão a depender de um determinado modelo de aprendizagem automática.
Apoiar a transição para o Software 2.0
Software 2.0 é a ideia de que o desenvolvimento de software irá sofrer uma mudança de paradigma à medida que a inteligência artificial desempenha cada vez mais um papel central na escrita de modelos de IA que alimentam as aplicações de software. No Software 1.0, o desenvolvimento envolve programadores que escrevem instruções explícitas utilizando uma linguagem de programação específica (por exemplo, Python, C++). O Software 2.0 é muito mais abstrato. Embora as pessoas forneçam dados de entrada e definam parâmetros, as redes neurais são difíceis de compreender devido à sua enorme complexidade - com redes típicas contendo milhões de pesos que afectam os resultados (e por vezes milhares de milhões ou triliões).
O DevOps foi construído em torno da dependência do Software 1.0 em relação a instruções específicas ditadas por programadores que utilizam linguagens, mas nunca considerou o ciclo de vida de um modelo de aprendizagem automática que alimenta uma variedade de aplicações diferentes. O MLOps aborda a necessidade de o processo de gestão do desenvolvimento de software mudar juntamente com o software em desenvolvimento. À medida que o Software 2.0 se torna o novo padrão para a resolução de problemas com base em computadores, ter as ferramentas e os processos corretos para gerir os ciclos de vida dos modelos fará com que os investimentos em novas tecnologias sejam decisivos. O Milvus é um motor de pesquisa de semelhanças vectoriais de código aberto criado para apoiar a transição para o Software 2.0 e gerir os ciclos de vida dos modelos com MLOps.
03.jpg
Operacionalizar a IA em escala com o Milvus
O Milvus é uma plataforma de gestão de dados vectoriais que foi criada especificamente para armazenar, consultar, atualizar e manter conjuntos de dados vectoriais maciços e à escala de um bilião. A plataforma potencializa a pesquisa de similaridade vetorial e pode ser integrada a bibliotecas de índices amplamente adotadas, incluindo Faiss, NMSLIB e Annoy. Ao combinar modelos de IA que convertem dados não estruturados em vectores com o Milvus, podem ser criadas aplicações que abrangem o desenvolvimento de novos medicamentos, análises biométricas, sistemas de recomendação e muito mais.
A pesquisa por semelhança de vectores é a solução ideal para o processamento e análise de dados não estruturados, e os dados vectoriais estão a emergir rapidamente como um tipo de dados essencial. Um sistema de gestão de dados abrangente como o Milvus facilita a operacionalização da IA de várias formas, incluindo
Fornecer um ambiente para a formação de modelos que garanta que mais aspectos do desenvolvimento sejam feitos num único local, facilitando a colaboração entre equipas, a governação de modelos e muito mais.
Oferecer um conjunto abrangente de APIs que suportam estruturas populares, como Python, Java e Go, facilitando a integração de um conjunto comum de modelos de ML.
A compatibilidade com o Google Colaboratory, um ambiente de notebook Jupyter que funciona num navegador, simplifica o processo de compilação do Milvus a partir do código-fonte e a execução de operações básicas em Python.
A funcionalidade de aprendizagem automática de máquinas (AutoML) permite automatizar as tarefas associadas à aplicação da aprendizagem automática a problemas do mundo real. O AutoML não só conduz a melhorias de eficiência, como também permite que não especialistas tirem partido dos modelos e técnicas de aprendizagem automática.
Independentemente das aplicações de aprendizagem automática que está a desenvolver atualmente, ou dos planos que tem para aplicações no futuro, o Milvus é uma plataforma de gestão de dados flexível criada a pensar no Software 2.0 e nos MLOps. Para saber mais sobre o Milvus ou fazer contribuições, encontre o projeto no Github. Para se envolver com a comunidade ou fazer perguntas, junte-se ao nosso canal Slack. Quer mais conteúdo? Consulte os seguintes recursos:
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word