MLOps (Operações de aprendizagem automática)

MLOps (Operações de aprendizagem automática)
À medida que os modelos de aprendizagem automática (ML) se tornam mais integrados nos processos empresariais quotidianos, as organizações enfrentam vários desafios para manter os seus modelos precisos e relevantes em ambientes do mundo real. Um dos principais problemas é a deriva de dados - quando os dados em que os modelos se baseiam mudam ao longo do tempo, fazendo com que percam precisão. Isto leva à necessidade de monitorização contínua, reciclagem e reimplementação de modelos para garantir que as suas previsões permanecem válidas.
A gestão destes modelos pode tornar-se propensa a erros, morosa e dispendiosa sem os sistemas corretos. O MLOps (Machine Learning Operations) resolve este problema automatizando e simplificando todo o processo.
Vamos perceber como o MLOps simplifica e automatiza o ciclo de vida da aprendizagem automática de ponta a ponta, desde a preparação de dados até à implementação do modelo e monitorização.
O que é MLOps?
O Machine Learning Operations (MLOps) combina aprendizado de máquina, DevOps e engenharia de dados para simplificar o ciclo de vida do aprendizado de máquina. O objetivo do MLOps é implementar e manter de forma fiável modelos de ML em escala em ambientes de produção, desde a recolha de dados e desenvolvimento de modelos até à implementação, monitorização e reciclagem de modelos.
Assim como o DevOps trouxe práticas de automação e integração para o desenvolvimento de software, o MLOps faz o mesmo para o aprendizado de máquina. Aplica os princípios da Integração Contínua (CI) e da Implementação Contínua (CD), permitindo às equipas iterar os modelos mais rapidamente, garantindo simultaneamente uma monitorização e um desempenho robustos em ambientes de produção.
Como funciona o MLOps
O processo MLOps inclui vários estágios que trabalham juntos para simplificar todo o ciclo de vida do aprendizado de máquina. São elas:
Desenvolvimento de modelos
Utilização do modelo
Monitorização do modelo
Manutenção do modelo
Gestão de dados
Automatização
Figura - Múltiplas fases do fluxo de trabalho MLOps.png
Figura: Múltiplas etapas no fluxo de trabalho do MLOps
Desenvolvimento do modelo
A primeira etapa do MLOps é o [desenvolvimento do modelo] (https://zilliz.com/glossary/foundation-models), que é a base de qualquer projeto de aprendizagem automática e que inclui várias subetapas importantes:
Preparação de dados: Os dados devem ser limpos e organizados antes de treinar um modelo. Isto inclui a remoção de informações irrelevantes, o preenchimento de valores em falta, a normalização dos dados e a sua transformação num formato adequado para um modelo de aprendizagem automática.
Engenharia de caraterísticas:** A engenharia de caraterísticas cria novas caraterísticas informativas ou transforma as existentes para as tornar mais úteis para o modelo. Por exemplo, os cientistas de dados podem criar novas caraterísticas como "velocidade do vento ao quadrado" ou "gradientes de temperatura" num modelo de previsão meteorológica para melhorar a precisão da previsão.
Treino de modelos:** Após a preparação dos dados, os modelos de ML são treinados. Os cientistas de dados treinam vários modelos com algoritmos e hiperparâmetros para encontrar o modelo com melhor desempenho.
Teste do modelo:** Depois de um modelo ser treinado, é testado num conjunto de dados separado para garantir que consegue fazer previsões exactas em dados novos e não vistos. Também são utilizadas várias métricas de avaliação para avaliar o desempenho do modelo de ML treinado.
Serviço de modelo
Assim que um modelo é desenvolvido, precisa de ser implementado num ambiente de produção para que possa fazer previsões em tempo real:
Desdobramento: Isto inclui tornar o modelo disponível para utilizadores ou aplicações. O modelo é frequentemente implantado através de uma API para interagir com outros sistemas. Soluções de implantação como Kubernetes e Docker ajudam a gerenciar esse processo, garantindo que os modelos sejam escalonáveis e fáceis de manter.
Contentorização:** Os modelos são isolados em contentores (como o Docker) para garantir a consistência. Os contêineres incluem todos os componentes necessários - código, dependências e configurações - para que o modelo seja executado de forma consistente em diferentes ambientes.
Monitoramento de modelo
Após a implantação, o desempenho do modelo precisa ser monitorado continuamente para garantir que ele permaneça preciso e relevante:
Rastreamento de desempenho: Os sistemas de monitoramento monitoram o desempenho do modelo. Por exemplo, se um modelo começar a fazer previsões imprecisas, isso pode indicar que os dados com que está a trabalhar mudaram ao longo do tempo (desvio de dados).
Registo:** Todas as actividades do modelo são registadas para manter um registo de entradas, saídas e erros. Isto ajuda a resolver problemas e a identificar padrões na forma como o modelo é utilizado.
Manutenção do modelo
Os modelos de aprendizagem automática precisam de ser mantidos regularmente para manterem um bom desempenho:
Actualizações e reciclagem: O MLOps facilita a atualização e a reciclagem de modelos à medida que novos dados ficam disponíveis ou quando o desempenho diminui. O retreinamento regular garante que os modelos permaneçam atualizados e precisos, adaptando-se às mudanças nos padrões de dados. O MLOps automatiza esse processo, tornando-o eficiente e menos propenso a erros.
Para acompanhar as diferentes versões dos modelos, o MLOps usa sistemas de controle de versão, como GitHub, MLflow e DVC. Esses sistemas registram cada versão de um modelo, juntamente com os dados e o código usados para criá-lo.
Gerenciamento de dados
Os dados são a espinha dorsal de qualquer sistema de aprendizagem automática e a sua gestão eficaz é uma parte essencial dos MLOps:
Ingestão e armazenamento de dados: O MLOps gere o fluxo de dados de várias fontes para o pipeline de ML e armazena os dados em armazenamento em nuvem expansível, como [Zilliz Cloud] (https://zilliz.com/cloud) e [Milvus] (https://milvus.io/).
Data Governance: O MLOps garante a qualidade dos dados, a segurança e a conformidade com a regulamentação. Também garante que apenas as pessoas autorizadas podem aceder aos dados e que as leis de privacidade são cumpridas.
Automação
Um dos principais objectivos do MLOps é automatizar tarefas repetitivas, facilitando a gestão de modelos de aprendizagem automática ao longo do tempo:
Orquestração de fluxo de trabalho: As ferramentas de automação podem lidar com muitas etapas no pipeline de ML, desde o processamento de dados até o treinamento e a implantação do modelo. Isto reduz a necessidade de interferência manual e ajuda a manter a consistência ao criar e implementar modelos.
Integração Contínua/Desenvolvimento Contínuo (CI/CD):** Os pipelines CI/CD ajudam as equipas a criar, testar e implementar continuamente modelos numa abordagem simplificada e automatizada. Com a CI/CD, os modelos podem ser rapidamente actualizados, testados e colocados em produção com um atraso mínimo.
Comparação: MLOps vs. DevOps vs. LLMOps
MLOps, DevOps, e LLMOps parecem termos semelhantes; cada prática centra-se na melhoria dos fluxos de trabalho de desenvolvimento, mas abordam desafios diferentes e oferecem soluções únicas no domínio do desenvolvimento de software e da IA.
| Aspect | DevOps | MLOps | LLMOps | |
| Definição | Um conjunto de práticas para automatizar o desenvolvimento de software e as operações de TI. | Estende os princípios do DevOps para automatizar o ciclo de vida dos modelos de ML. | Concentra-se no gerenciamento do ciclo de vida de modelos de linguagem grandes (LLMs). | |
| Automatização de pipelines de entrega de software (CI/CD), melhorando a colaboração e encurtando o ciclo de vida de desenvolvimento. | Automatizar fluxos de trabalho de ML, desde a preparação de dados até à implementação e monitorização de modelos. | Otimizar a implantação, o ajuste fino e o gerenciamento de LLMs na produção. | ||
| Ferramentas principais | - GitLab para CI/CD.- Grafana para monitorização.- Docker e Kubernetes para orquestração de contentores. | - Kubeflow e Apache Airflow são usados para automação do fluxo de trabalho.- Scikit-learn e TensorFlow para treinamento de modelos. | Ferramentas de inferência em larga escala (Ray Serve, ONNX). | |
| Casos de utilização | - Implementação rápida de actualizações de software | - Gestão de sistemas distribuídos. | Monitorização contínua do desempenho do modelo em produção. Automatização da reciclagem e reimplementação de modelos de ML. | Implantação de grandes modelos de linguagem para tarefas de NLP. |
Métricas de MLOps
No MLOps, as métricas são fundamentais para medir o desempenho do modelo e todo o pipeline de ML. Os KPIs em MLOps vão além das métricas tradicionais do modelo de ML para todo o ciclo de vida. A exatidão do modelo, a precisão, a recuperação e a pontuação F1 continuam a ser fundamentais, mas os MLOps introduzem novos indicadores. A frequência de implantação mede a frequência com que novos modelos ou atualizações são implantados na produção e a agilidade do pipeline de ML. O tempo médio de recuperação (MTTR) mede a rapidez com que os problemas nos modelos de produção são identificados e resolvidos. As métricas de utilização de recursos medem a eficiência computacional, importante para a gestão de custos na nuvem. As métricas de desvio de dados e modelos medem o desempenho dos modelos ao longo do tempo à medida que os dados de entrada são alterados. A latência e o rendimento da inferência são críticos para aplicações em tempo real, medindo o tempo de resposta e a capacidade de processamento. As métricas de teste A/B comparam o desempenho de novos modelos com o de modelos existentes em produção. O nível de automação do pipeline mede o nível de intervenção humana necessário; um nível mais elevado é melhor para MLOps mais maduros. Por último, a versão do modelo e as métricas de reprodutibilidade garantem que as experiências e as implementações podem ser controladas e replicadas. Estas métricas dão-lhe uma visão completa dos MLOps para que possa melhorar continuamente os seus processos e resultados de ML.
Benefícios e desafios dos MLOps
Embora o MLOps ofereça inúmeras vantagens que melhoram a eficiência e a eficácia das operações de aprendizado de máquina, ele também apresenta vários desafios que as organizações devem enfrentar. Compreender os benefícios e desafios é crucial para implementar com sucesso as práticas de MLOps e alcançar os melhores resultados.
Benefícios do MLOps
Pipelines automatizados:** Reduz as intervenções manuais, permitindo que os cientistas e engenheiros de dados se concentrem nas tarefas principais.
Time-to-Market mais rápido:** Fluxos de trabalho simplificados e automação permitem iterações de modelos e ciclos de lançamento mais rápidos.
Desempenho melhorado:** Os ciclos contínuos de monitorização e reciclagem criam modelos robustos com bom desempenho em cenários dinâmicos do mundo real.
Escalabilidade:** As estruturas MLOps permitem a implantação e o gerenciamento de milhares de modelos em diferentes ambientes.
Melhoria Contínua:** Os modelos são continuamente monitorizados e treinados. Essa prática garante que eles se adaptem a novos dados e condições variáveis e mantenham um alto desempenho.
Desafios do MLOps
Complexidade:** A implementação de MLOps requer a criação de infra-estruturas e fluxos de trabalho complexos, que consomem muitos recursos.
Integração de ferramentas:** Integrar diferentes ferramentas para gestão de dados, formação de modelos, implementação e monitorização é um desafio.
Versões de modelos e reprodutibilidade:** Pode ser difícil acompanhar e gerir todas as diferentes versões de modelos de aprendizagem automática e as dependências e definições que os acompanham. Outro problema que pode surgir é a reprodução e validação de resultados em vários ambientes.
Custo:** Embora os MLOps possam melhorar a eficiência e a escalabilidade a longo prazo, o custo inicial da criação de uma estrutura de MLOps pode ser elevado. As organizações precisam de investir nas ferramentas, infra-estruturas e talentos certos para garantir o sucesso das suas iniciativas de MLOps.
Colaboração:** O MLOps introduz processos e ferramentas comuns, promovendo a colaboração efectiva entre engenheiros de dados, cientistas, programadores e engenheiros de TI, o que continua a ser um desafio significativo.
Ferramentas e tecnologias em MLOps
O MLOps depende de várias ferramentas e tecnologias para gerir o ciclo de vida da aprendizagem automática. Abaixo estão algumas das ferramentas MLOps mais utilizadas:
MLflow: Uma plataforma de código aberto para gerir todo o ciclo de vida da aprendizagem automática, incluindo o controlo de experiências, o controlo de versões de modelos e a implementação.
DVC (Data Version Control):** Um sistema de controlo de versões de código aberto para gestão de dados, automatização de pipelines de aprendizagem automática e gestão de experiências.
Kubeflow:** Uma plataforma baseada em Kubernetes para implantar, dimensionar e gerenciar modelos de aprendizado de máquina em ambientes de produção.
Apache Airflow:** Uma ferramenta de automação de fluxo de trabalho que ajuda a gerenciar pipelines de dados e agendar tarefas para ingestão de dados e treinamento de modelos.
TensorFlow Extended (TFX):** Uma plataforma de ponta a ponta para implantar pipelines de aprendizado de máquina de produção usando o TensorFlow. O TFX fornece ferramentas para validação de dados, fornecimento de modelos e treinamento contínuo.
Bases de dados vectoriais (Milvus, Zilliz Cloud): Em muitos cenários de MLOps, é crucial lidar com dados não estruturados como imagens, texto ou áudio. É aqui que as bases de dados vectoriais podem ser úteis. Estas são especializadas no armazenamento e consulta de vetor embeddings e representações numéricas desses dados. Milvus é uma base de dados vetorial de código aberto que se destaca por lidar com conjuntos de dados de grande escala e consultas complexas.
Tendências MLOps
O panorama dos MLOps está a mudar rapidamente e estão a surgir algumas tendências interessantes. O AutoML (Automated Machine Learning) está a descolar, automatizando a engenharia de caraterísticas e a afinação de hiperparâmetros. O ML de ponta está a tornar-se mais importante; os modelos podem ser executados em dispositivos de ponta, reduzindo a latência e aumentando a privacidade. A aprendizagem federada está a surgir para treinar modelos em dispositivos descentralizados, mantendo os dados privados. As ferramentas XAI (Explainable AI) estão a ser adicionadas aos pipelines de MLOps para responder à necessidade crescente de interpretabilidade e transparência dos modelos. Há um foco crescente em ferramentas de monitoramento específicas de ML que podem detetar a degradação sutil do modelo e o desvio de dados em tempo real. Os LLM (Large Language Models) estão a ser adicionados aos fluxos de trabalho dos MLOps para realizar tarefas de PNL mais avançadas. À medida que a sustentabilidade se torna uma preocupação maior, estão a surgir MLOps ecológicos para otimizar a utilização de recursos e reduzir a pegada de carbono do ML. Estas tendências apontam para um futuro em que os MLOps serão mais automatizados, eficientes, interpretáveis e ecológicos.
FAQs sobre MLOps
- **Para que é que os MLOps são utilizados?
As operações de aprendizagem automática (MLOps) são um conjunto de práticas concebidas para simplificar e automatizar os fluxos de trabalho e os processos de implementação de modelos de aprendizagem automática (ML). Ao incorporar a aprendizagem automática e a inteligência artificial (IA), as empresas podem enfrentar desafios complexos do mundo real e criar soluções valiosas para os clientes.
- **O que é MLOps vs DevOps?
MLOps é uma prática de ciência de dados centrada no teste rápido e na implementação de modelos de aprendizagem automática. O DevOps, no entanto, integra o desenvolvimento e as operações de TI para melhorar a eficiência, a fiabilidade e a segurança do desenvolvimento de software.
- **Qual é a diferença entre MLOps e AIOPs?
As AIOps permitem que as equipas de operações de TI e de ciência de dados implementem a gestão preditiva de alertas, melhorem a segurança dos dados e apoiem os fluxos de trabalho DevOps. As soluções MLOps ajudam as empresas a acelerar a implementação de modelos de aprendizagem automática, a melhorar a colaboração entre as equipas de ciência de dados e de operações e a dimensionar os esforços de IA em toda a organização.
- **O MLOps está a ser procurado?
À medida que as empresas adoptam soluções baseadas em dados, a procura de profissionais de MLOps para implementar e gerir eficazmente modelos de aprendizagem automática está a crescer rapidamente.
- **Que linguagem é melhor para os MLOps?
Python é atualmente a melhor escolha para a aprendizagem automática e os MLOps. A sua popularidade deve-se à vasta gama de ferramentas e bibliotecas disponíveis para a aprendizagem automática, como NumPy, TensorFlow, Keras e PyTorch. Estas bibliotecas facilitam a criação de modelos de aprendizagem automática e o tratamento de tarefas de engenharia de dados, simplificando todo o processo de MLOps dos projectos de aprendizagem automática.
Recursos relacionados
Documentação do Milvus - Documentação oficial do Milvus](https://milvus.io/docs/quickstart.md)
MLOps: Melhores Práticas - Um guia detalhado sobre as melhores práticas do MLOps
LLM-Eval: Uma abordagem simplificada para avaliar conversas LLM
- O que é MLOps?
- Como funciona o MLOps
- Comparação: MLOps vs. DevOps vs. LLMOps
- Métricas de MLOps
- Benefícios e desafios dos MLOps
- Ferramentas e tecnologias em MLOps
- Tendências MLOps
- FAQs sobre MLOps
- Recursos relacionados
Conteúdo
Comece grátis, escale facilmente
Experimente o banco de dados totalmente gerenciado, construído para seus aplicativos GenAI.
Experimente o Zilliz Cloud grátis