Compartilhar via


Conceitos – MLOps (operações de aprendizado de máquina) para fluxos de trabalho de IA e aprendizado de máquina

Neste artigo, você aprenderá sobre o MLOps (operações de aprendizado de máquina), incluindo os tipos de práticas e as ferramentas envolvidas e como isso pode simplificar e acelerar seus fluxos de trabalho de IA e aprendizado de máquina no AKS (Serviço de Kubernetes do Azure).

O que é MLOps?

O MLOps (operações de aprendizado de máquina) abrangem práticas que facilitam a colaboração entre cientistas de dados, operações de TI e stakeholders de negócios, garantindo que os modelos de aprendizado de máquina sejam desenvolvidos, implantados e mantidos com eficiência. O MLOps aplica princípios de DevOps a projetos de aprendizado de máquina, com o objetivo de automatizar e simplificar o ciclo de vida de aprendizado de máquina de ponta a ponta. Esse ciclo de vida inclui treinamento, empacotamento, validação, implantação, monitoramento e retreinamento de modelos.

O MLOps exige várias funções e ferramentas para trabalhar em conjunto com eficiência. Os cientistas de dados se concentram em tarefas relacionadas ao treinamento do modelo, que é chamado de loop interno. Os engenheiros de aprendizado de máquina e as equipes de operações de TI lidam com o loop externo, em que aplicam práticas de DevOps para empacotar, validar, implantar e monitorar modelos. Quando o modelo precisa de ajuste fino ou novo treinamento, o processo volta para o loop interno.

Pipeline do MLOps

O pipeline do MLOps pode aproveitar várias ferramentas e microsserviços que são implantados sequencialmente ou em paralelo. Confira abaixo exemplos de componentes-chave no seu pipeline que se beneficiam da implementação das seguintes melhores práticas para reduzir a sobrecarga e permitir uma iteração mais rápida:

  • Armazenamento de dados não estruturados para novos dados que fluem para seu aplicativo
  • Banco de dados de vetores para armazenar e consultar dados estruturados e pré-processados
  • Estrutura de indexação e ingestão de dados
  • Ingestão de vetor e/ou fluxos de trabalho de novo treinamento de modelo
  • Ferramentas de coleta e alertas de métricas (acompanhamento do desempenho do modelo, volume de dados ingeridos etc.)
  • Ferramentas do gerenciamento do ciclo de vida

DevOps e MLOps

O DevOps é uma combinação de ferramentas e práticas que permitem criar aplicativos robustos e reproduzíveis. A meta de usar o DevOps é entregar rapidamente o valor aos usuários finais. Criar, implantar e monitorar modelos robustos e reproduzíveis para entregar valor aos usuários finais é a meta principal do MLOps.

três processos essenciais no MLOps:

  • Cargas de trabalho de aprendizado de máquina, pelas quais um cientista de dados é responsável, incluindo EDA (análise exploratória de dados), engenharia de recursos e treinamento e ajuste de modelo.
  • Práticas de desenvolvimento de software, incluindo planejamento, desenvolvimento, teste e empacotamento do modelo para implantação.
  • Aspectos operacionais da implantação e manutenção do modelo em produção, incluindo lançamento, configuração de recursos e monitoramento do modelo.

Princípios do DevOps que se aplicam ao MLOps

O MLOps aproveita vários princípios do DevOps para aprimorar o ciclo de vida do aprendizado de máquina, como automação, CI/CD (integração e entrega contínua), controle do código-fonte, planejamento Agile e IaC (infraestrutura como código).

Automação

Ao automatizar tarefas, você pode reduzir erros manuais, aumentar a eficiência e garantir a consistência em todo o ciclo de vida de ML. A automação pode ser aplicada a vários estágios, incluindo coleta de dados, treinamento de modelo, implantação e monitoramento. Por meio da automação, você também pode aplicar medidas proativas no pipeline de IA para garantir a conformidade dos dados com as políticas da sua organização.

Por exemplo, seu pipeline pode automatizar:

  • Ajuste/novo treinamento do modelo em intervalos de tempo regulares ou quando determinado volume de dados novos é coletado no seu aplicativo.
  • Detecção de degradação do desempenho para iniciar o ajuste fino ou novo treinamento em um subconjunto diferente de dados.
  • Verificação de CVE (exposição e vulnerabilidades comuns) em imagens de contêiner base extraídas de registros de contêiner externos para garantir práticas de segurança seguras.

CI (Integração contínua)

A integração contínua abrange os aspectos de criação e verificação do processo de desenvolvimento do modelo. A meta da CI é criar o código e verificar a qualidade do código e do modelo antes da implantação. Isso inclui testes em uma variedade de conjuntos de dados de exemplo para garantir que o modelo seja executado conforme o esperado e atenda aos padrões de qualidade.

No MLOps, a CI pode envolver:

  • Refatoração do código exploratório de notebooks Jupyter em scripts Python ou R.
  • Validação de novos dados de entrada em busca de valores ausentes ou de erro.
  • Teste de unidade e teste de integração no pipeline de ponta a ponta.

Para executar o lint e o teste de unidade, você poderá usar ferramentas de automação como o Azure Pipelines no Azure DevOps ou o GitHub Actions.

CD (Entrega contínua)

A entrega contínua envolve as etapas necessárias para implantar com segurança um modelo em produção. A primeira etapa é empacotar e implantar o modelo em ambientes de pré-produção, como ambientes de desenvolvimento e teste. A portabilidade dos parâmetros, dos hiperparâmetros e de outros artefatos de modelo é um aspecto importante a ser mantido à medida que você promove o código por meio desses ambientes. Essa portabilidade é especialmente importante quando se trata de LLMs (grandes modelos de linguagem) e modelos de difusão estáveis. Depois que o modelo passar nos testes de qualidade e testes de QA (garantia de qualidade), você poderá aprová-lo para implantação no ambiente de produção.

Controle do código-fonte

O controle do código-fonte, ou controle de versão, é essencial para gerenciar as alterações no código e nos modelos. Em um sistema de ML, isso se refere ao controle de versão de dados, ao controle de versão de código e ao controle de versão de modelo, que permitem que as equipes multifuncionais colaborem com eficiência e acompanhem as alterações ao longo do tempo. O uso de um sistema de controle do código-fonte baseado em Git, como o Azure Repos no Azure DevOps ou um repositório GitHub, permite que você mantenha por meio de programação um histórico de alterações, faça reversões para versões anteriores e gerencie branches para diferentes experimentos.

Planejamento ágil

O planejamento Agile envolve isolar o trabalho em sprints, que são curtos períodos para concluir tarefas específicas. Essa abordagem permite que as equipes se adaptem às alterações rapidamente e forneçam aprimoramentos incrementais ao modelo. O treinamento de modelo pode ser um processo contínuo e o planejamento Agile pode ajudar a definir o escopo do projeto e permitir um melhor alinhamento da equipe.

Você pode usar ferramentas como o Azure Boards no Azure DevOps ou os problemas do GitHub para gerenciar seu planejamento Agile.

IaC (infraestrutura como código)

Você usa a infraestrutura como código para repetir e automatizar a infraestrutura necessária para treinar, implantar e fornecer seus modelos. Em um sistema de ML, a IaC ajuda a simplificar e definir os recursos apropriados do Azure necessários para o tipo de trabalho específico no código e o código é mantido em um repositório. Isso permite que você controle a sua infraestrutura e faça alterações para otimização de recursos, relação custo-benefício etc., conforme necessário.

Próximas etapas

Confira os seguintes artigos para saber mais sobre as melhores práticas de MLOps em seus aplicativos inteligentes no AKS: