Machine Learning Operations (MLOps)
MLOps aplica práticas de DevOps ao aprendizado de máquina: dados com controle de versões, pipelines de treinamento automatizados, etapas de verificação de qualidade, implantação e monitoramento de deriva.
As operações de aprendizagem automática (MLOps) são o conjunto de práticas e ferramentas para criar, implementar e manter modelos de aprendizagem automática (ML) em produção de forma fiável e reproduzível. As MLOps alargam o DevOps, que automatiza a forma como o software é testado e lançado, a sistemas cujo comportamento depende tanto dos dados como do código: um modelo pode degradar-se sem que uma única linha mude, porque o mundo que observa mudou. O próprio modelo é apenas uma pequena parte de um sistema deste tipo. O guia de arquitetura MLOps da Google observa que apenas uma pequena fração de um sistema de ML real corresponde a código de ML; a recolha e verificação de dados, a infraestrutura de disponibilização e a monitorização constituem o restante. O artigo da NeurIPS Dívida técnica oculta em sistemas de aprendizagem automática descreveu os custos de manutenção a longo prazo acumulados pelo sistema envolvente.
Práticas fundamentais#
As MLOps ligam a engenharia de dados, o desenvolvimento de modelos e as operações através de algumas práticas, aplicadas tanto aos dados de treino como ao código:
- Versionamento de dados: Cada instantâneo de um conjunto de dados recebe uma versão imutável, permitindo associar qualquer modelo aos dados exatos que o produziram.
- Acompanhamento de experiências: Cada execução de treino regista a versão do código e dos dados, os hiperparâmetros, as métricas e os artefactos, para que os resultados possam ser comparados e reproduzidos.
- Integração contínua e entrega: Os pipelines automatizados testam o código, validam os dados recebidos, voltam a treinar os modelos e bloqueiam qualquer candidato que não passe um controlo de qualidade.
- Registo de modelos: As versões aprovadas dos modelos são armazenadas com os respetivos metadados, linhagem e fase, como preparação ou produção, para que as implementações e reversões indiquem versões exatas.
- Disponibilização de modelos: Os modelos são empacotados, muitas vezes em contentores, e expostos através de APIs ou implementados em dispositivos de edge.
- Monitorização de modelos: As entradas, previsões, latência e precisão em produção são acompanhadas para detetar desvios e decidir quando voltar a treinar.
O guia da Google descreve a maturidade em três níveis. No nível 0, os cientistas de dados treinam e entregam modelos manualmente. O nível 1 automatiza o próprio pipeline de treino, acrescentando treino contínuo (CT), ou seja, o retreino e a disponibilização automáticos de modelos quando chegam novos dados ou é detetado um desvio dos dados. O nível 2 também automatiza a criação, o teste e a implementação do código do pipeline com CI/CD, para que as novas versões do pipeline cheguem à produção com a mesma segurança que os novos modelos. Em conjunto, estas práticas formam um ciclo:
MLOps na prática#
- Inspeção de fabrico: Quando uma fábrica adiciona uma linha de produtos, as imagens de novos defeitos são anotadas e versionadas, um pipeline volta a treinar o modelo de deteção e a versão aprovada é implementada nas câmaras de edge de todas as linhas sem interrupções.
- Monitorização de prateleiras no retalho: As reformulações das embalagens e a iluminação das lojas alteram o que as câmaras captam. A monitorização assinala a descida das pontuações de confiança, as imagens com baixa confiança são encaminhadas para anotação e o modelo retreinado é implementado nas lojas depois de passar a avaliação.
Um controlo de qualidade automatiza a decisão de promoção. O script seguinte treina um modelo candidato de deteção de objetos, avalia-o juntamente com o modelo atual de produção nos mesmos dados de validação e exporta o candidato para ONNX apenas se o seu mAP50-95 for superior:
from ultralytics import YOLO
# Treina um candidato; a execução guarda os pesos, args.yaml e results.csv em project/name
candidate = YOLO("yolo26n.pt")
candidate.train(data="coco8.yaml", epochs=10, project="mlops", name="candidate")
# Controlo de qualidade: avalia o candidato e o modelo de produção com os mesmos dados de validação
candidate_map = candidate.val(data="coco8.yaml").box.map
production_map = YOLO("yolo26n.pt").val(data="coco8.yaml").box.map
# Promove apenas uma melhoria, exportada num formato compatível com a pilha de disponibilização
if candidate_map > production_map:
candidate.export(format="onnx")Num pipeline de produção, um agendador ou uma tarefa de CI executa um script como este sempre que chegam novos dados anotados, e o modelo exportado é registado com a respetiva versão dos dados e métricas. A Ultralytics Platform cobre este ciclo de vida de modelos de visão num único espaço de trabalho, com versões imutáveis de conjuntos de dados, treino na nuvem com métricas em tempo real, exportação para formatos como TensorRT, pontos finais de inferência dedicados e monitorização de modelos implementados.
MLOps vs. termos relacionados#
- DevOps: Automatiza a criação, o teste e o lançamento de software, em que uma alteração ao código aciona o pipeline. As MLOps acrescentam dados e modelos como recursos versionados, para que novos dados ou uma queda na precisão em produção também possam acioná-lo.
- LLMOps: O ramo das MLOps dedicado a aplicações de modelos de linguagem de grande dimensão, centrado em prompts, recuperação, avaliação de texto gerado e custos de tokens.
- Aprendizagem automática automatizada (AutoML): Automatiza a criação de um modelo, por exemplo, ao escolher algoritmos e hiperparâmetros. As MLOps gerem o ciclo de vida em torno do modelo, do versionamento dos dados à monitorização, e muitas vezes recorrem ao AutoML numa das etapas do pipeline.
- MLflow e Weights & Biases: Ferramentas que abrangem partes do ciclo de vida, como o acompanhamento e os registos de modelos. As MLOps são a prática que combina estas ferramentas com pipelines, disponibilização e monitorização.










